Difference between revisions of "OpenRacing WIP"

From SpaceElevatorWiki.com
(The facts)
(Driver)
 
(26 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
= Tasks & Plans =
 
= Tasks & Plans =
  
== Achieving OTI ==
+
== Achieving UTI ==
  
This is little thinking about torcs/openracing interdependencies...
+
[[Achieving UTI]]
The goal of this thinking is to simplify the code, by getting rid of as much C++ as possible, especially if it is useless.
 
  
=== The facts ===
+
== Tasks ==
  
* The only ''hard'' dependency that OR does have on Torcs' C++ code is simuv2 ('''simuv2 works with tTrack, tCarElt and tSituation''').
+
=== Ogre renderer ===
** This in turn create a dependency over '''torcs track plugin''', which is required '''to load a tTrack''' properly.
+
* Automatic car 3D model conversion. (can be called "automatic AC3D to Ogre conversion").
* The '''robot interface depends on tCarElt''' for compatibility with Torcs AI, this '''can be dropped''' for now (we have C# robots), and we can find a cleaner solution later on.
+
* Automatic track 3D model conversion from Torcs-NG's data (starting from trackgen). Should warn about unsupported geometry and such.
** The robot itself is responsible for loading the car informations (via an XML GfParm file).
+
===  Driver ===
* '''RaceManager inits tCarElt''' using informations given by the Robot's XML, then associate the car with the robot (see '''Q1''').
+
* Load sharpy's driver, make it run a car
* '''RaceManager inits tSituation'''.
 
  
=== Quick remainder ===
+
=== User interface ===
 +
* Make a GUI designed for our needs (load a track, evaluate drivers, run simulation in background, ...) : ''WIP''
 +
* Work on the installation process
  
* tTrack is the logical track as stored and manipulated in C++ by Torcs (i.e. track trajectory and width basically as a list of segments)
+
== Screenshots ==
* tCarElt is the information about a car. positions of elements, wheels, fuel, driving commands, etc... (hundreds of fields in the structs)
 
* tSituation describe the situation of a race. List of cars, the track, some global infos.
 
  
=== The questions ===
+
Bellow, you'll find some screenshots showing work in progress of Ogre renderer and GUIs.
  
'''Q1''': Should the robot decide the features of his car?
+
<gallery caption="OpenRacing gallery" widths="200px" heights="150px">
 
+
Image:WIP-TorcsOgre-12.jpg|2008-sep-08, high-quality skybox, back to stencil shadows
It seems more natural to me to build a car then put a driver into the car (instead of the opposite). Maybe some AI are very specific to drive a particular car, let's forget about that first: we simplify!
+
Image:WIP-TorcsOgre-13.jpg|2009-feb-12, minimalist main menu
 +
Image:WIP-TorcsOgre-14.jpg|2009-feb-25, chasing camera
 +
Image:WIP-TorcsOgre-15.jpg|2009-mar-14, speedometer, tachometer, detect and remove alpha-blended objects
 +
Image:WIP-TorcsOgre-16.jpg|2009-mar-18, free-ride</gallery>
  
 
== Old tasks ==
 
== Old tasks ==
  
== Ogre renderer ==
+
=== Ogre renderer ===
* Automatic car 3D model conversion. (can be called "automatic AC3D to Ogre conversion").
 
* Automatic track 3D model conversion from Torcs-NG's data (starting from trackgen). Should warn about unsupported geometry and such.
 
 
* <strike> Make a camera follows a car (from behind)</strike> : ''DONE''.
 
* <strike> Make a camera follows a car (from behind)</strike> : ''DONE''.
== Core engine ==
+
=== Core engine ===
 
* <strike>Load a complete track using C++ plugin</strike> : ''DONE''.
 
* <strike>Load a complete track using C++ plugin</strike> : ''DONE''.
 
* <strike>Initialize OgreDotNet graphic plugins to display the track</strike> : ''DONE''.
 
* <strike>Initialize OgreDotNet graphic plugins to display the track</strike> : ''DONE''.
 
* <strike>Load cars / physics engine</strike> : DONE.
 
* <strike>Load cars / physics engine</strike> : DONE.
 
* <strike>Load a C++ driver / create C# interface</strike> : ''DONE''.
 
* <strike>Load a C++ driver / create C# interface</strike> : ''DONE''.
==  Distribution ==
+
===  Driver ===
* Compile libsimulator from unmodified Torcs-NG repository. ''No hurry for this. They aren't going to start using our code soon, anyway.''
 
==  Driver ==
 
 
* <strike>Implement user controlled vehicle</strike> : ''DONE''.
 
* <strike>Implement user controlled vehicle</strike> : ''DONE''.
* Load sharpy's driver, make it run a car : ''Keith will do''
+
===  User interface ===
==  User interface ==
 
* Make a GUI designed for our needs (load a track, evaluate drivers, run simulation in background, ...) : ''WIP''
 
 
* <strike>Port to MyGUI's C# interface</strike> : ''DONE''.
 
* <strike>Port to MyGUI's C# interface</strike> : ''DONE''.
* Work on the installation process
+
=== Merging Imre's work ===
== Merging Imre's work ==
 
DONE
 
 
 
 
<strike>Order:
 
<strike>Order:
 
* Identify hardcoded stuffs : ''WIP''
 
* Identify hardcoded stuffs : ''WIP''
Line 60: Line 52:
 
* Full merge
 
* Full merge
 
* Clean</strike>
 
* Clean</strike>
 
== Screenshots ==
 
 
Bellow, you'll find some screenshots showing work in progress of Ogre renderer and GUIs.
 
 
<gallery caption="OpenRacing gallery" widths="200px" heights="150px">
 
Image:WIP-TorcsOgre-12.jpg|2008-sep-08, high-quality skybox, back to stencil shadows
 
Image:WIP-TorcsOgre-13.jpg|2008-feb-12, minimalist main menu
 
Image:WIP-TorcsOgre-14.jpg|2008-feb-25, chasing camera
 
Image:WIP-TorcsOgre-15.jpg|2008-mar-14, speedometer, tachometer, detect and remove alpha-blended objects
 
Image:WIP-TorcsOgre-16.jpg|2008-mar-18, free-ride</gallery>
 

Latest revision as of 20:13, 5 March 2011

Tasks & Plans

Achieving UTI

Achieving UTI

Tasks

Ogre renderer

  • Automatic car 3D model conversion. (can be called "automatic AC3D to Ogre conversion").
  • Automatic track 3D model conversion from Torcs-NG's data (starting from trackgen). Should warn about unsupported geometry and such.

Driver

  • Load sharpy's driver, make it run a car

User interface

  • Make a GUI designed for our needs (load a track, evaluate drivers, run simulation in background, ...) : WIP
  • Work on the installation process

Screenshots

Bellow, you'll find some screenshots showing work in progress of Ogre renderer and GUIs.

Old tasks

Ogre renderer

  • Make a camera follows a car (from behind) : DONE.

Core engine

  • Load a complete track using C++ plugin : DONE.
  • Initialize OgreDotNet graphic plugins to display the track : DONE.
  • Load cars / physics engine : DONE.
  • Load a C++ driver / create C# interface : DONE.

Driver

  • Implement user controlled vehicle : DONE.

User interface

  • Port to MyGUI's C# interface : DONE.

Merging Imre's work

Order:

  • Identify hardcoded stuffs : WIP
    • openracing.in -> LD_LIBRARY_PATH=/home/mulder/projects/openracing/cleaned/src/libsimulator/.libs
    • src/ode/OdeLoader.cs -> mCtx.RegisterResourcePath("/home/mulder/projects/trunk/track/Barcelona/");
    • my_config doesn't have to be in the repository
    • src/core/RaceManager.cs -> InitStartingGrid
    • src/graphic/OScene.cs -> mCtx.RegisterResourcePath("/home/mulder/projects/openracing/cleaned/data/tracks/road/icy");
    • src/ode/OdeMesh.cs -> XmlTextReader reader = new XmlTextReader("/home/mulder/projects/openracing/cleaned/data/tracks/road/icy/Mesh.mesh.xml");
  • Full merge
  • Clean