User:Jeko: Difference between revisions

From SpaceElevatorWiki.com
Jump to navigationJump to search
Line 15: Line 15:
[[TorcsOgre WIP]]
[[TorcsOgre WIP]]


[[TorcsDotNet WIP]]
[[OpenRacing WIP]]


== Planning ==
== Planning ==

Revision as of 05:56, 15 February 2009

To Do list

<issues project = "Jeko" search = "false" filter = "false"/>

Discussions

Jeko's General Forum

Jeko's World Simulator Forum

Jeko's C# Forum

Software Wars - French Edition

Work in progress

TorcsOgre WIP

OpenRacing WIP

Planning

I quickly summarize here my availabilities and the work I plan to do.

Week Availability Job
24 Quite busy Answer e-mails -- specification/conception
25 Out of business At Madrid
26 Less busy Specify Simulator API
27 Full time Choosing code base
28 " Learning Mono/Ogre/Torcs
29 " Build Torcs' graphics plugin for C#. Define the new WorldMap interface.
30 " Begin OgreDotNet implementation of the graphic plugin C#, have something being displayed by OgreDotNet on SSG's main screen.
31 " "
32 Quite busy Moving to Lebanon. Keep up working on the rendering engine.
33 Full Time Screenshots should start to be analyzable by vision, export them.
34 " ???
35 " ???
36 " ???
37 " Dead-Line!

Daily journal

The time I spent working on vision project.

Period 1

Date Time Tasks
before 4 hours It is an approximation. I think it is honest, I hope that Keith feel that I am to.
2008-jun-09 5 hours Mails about scripting languages, about world simulator, writing planning, ...
2008-jun-12 4 hours Compile Torcs from CVS. Make it work (black screen problem). Start understanding the 3D engine and make improvements plans.
2008-jun-13 2 hours E-Mail. Understanding the 3D engine (car models and tracks). Make improvements plans.
2008-jun-24 2 hours Improvements plans, net-meeting with Keith about the world simulator framework.
2008-jun-26 2 hours Organize wiki. Answer a few questions. Installed and compiled mercurial's repository on my laptop.
TOTAL FOR JUNE 19 hours
2008-jul-02 4 hours Study OgreODE, Plans for the changes to an Ogre/ODE/Collada architecture., and share my point of view (e-mail meeting).
2008-jul-03 2 hours Install back Torcs / Mercurial after system upgrade. Fixing compilation problems.
2008-jul-04 3 hours Slimming torcs' data directory to 28 MB (te best that can be achieved without changing texture, sound and 3D models storage format. Birthday :-)
2008-jul-05 3 hours Trying hard to install OgreDotNet, I discovered it's a dead project supporting a very outdated version of Ogre... Trying alternatives. : Axiom, OsgDotNet, Irrlicht, Plib?
2008-jul-07 7 hours Ogre and OgreDotNet installed from sources.

Setting up my first Mono Develop Solution which links with OgreDotNet. Starting TorcsDotNet :

  • The track plugin is built as a library (containing all necessary code from Torcs to).
  • The C++ plugin is loaded from C# and initialized.
2008-jul-10 4 hours Learning Ogre3D
2008-jul-12 4 hours C# graphic plugin for Torcs.
2008-jul-13 2 hours C# wrapper for Torcs made a separate project from driving robot.
2008-jul-15 2 hours Torcs' C# graphic plugin added.
2008-jul-16 3 hours Torcs' C# graphic plugin : OgreDotNet initialized.
2008-jul-18 3 hours Torcs' C# graphic plugin :
  • Learning to marshal ansi strings.
  • Trying to convert street-4.acc file to Ogre3D internal format and display it. However even AC3D can't load it properly (and Blender to, logically)
2008-jul-19 4 hours Work on Torcs' C# interface and graphic plugin.
2008-jul-21 2 hours Cleaning up C# code.
2008-jul-28 0 hours Reinstalled everything.
2008-jul-29 4 hours C# plugins now displays something. I finally discovered (after hours of debugging) that custom window creation interferes with resources loading, which was the reason I got strange exceptions.
2008-jul-31 2 hours AC3D track file converted to Ogre Mesh, experimentally displayed with buggy textures.
TOTAL FOR JULY 49 hours
2008-aug-01 2 hours Fixed the texturing problems, switched texture format to JPG and PNG.
2008-aug-10 4 hours Fixed AC3D->Ogre conversion problems, work on the alpha channel problem.
2008-aug-11 3 hours Fixed double faced faces problem (have to be made by hand unfortunately), test of texture-based shadows.
2008-aug-20 4 hours Fixed alpha-channel textures, try to make shadows which work with this.
2008-aug-21 4 hours Solved texture shadow problem, initial work on car display.
2008-aug-22 3 hours Work on car display, fixed the aspect ratio bug, big commit to mercurial.
2008-aug-23 4 hours Continue with cars management (now called Avatars for generalization purposes). Switch to shader based materials.
2008-aug-25 2 hours Continue with cars management, discovered the Ogre picture is not dynamic (SSG steal it the OpenGL context after the 1st frame)
2008-aug-26 3 hours Investigate the Ogre + SSG OpenGL Context problem... No solution for the moment, posted questions on forums.
2008-aug-27 6 hours Solved the OpenGL Context problem. Fixed car position tracking correctly (there was a misalignment in C->C# data structures).
2008-aug-31 2 hours Work on the car orientation problem.
TOTAL FOR AUGUST 37 hours
2008-sept-5 2 hours Solved the car orientation problem. Camera can now track a car.
2008-sept-8 4 hours Fixed stencil shadow problem (by spliting the models), activate per-vertex ambiant coef, imported an high-quality skybox, start making some 3D models manifold.
2008-sept-10 4 hours Trying to add lightmaps to the track model.
TOTAL FOR SEPTEMBER 10 hours
2008-oct-5 2 hours Looking for OgreDotNet render-to-texture way of doing screenshots for multiple cameras.
2008-oct-6 3 hours Conception and start implementing the screenshot feature.
2008-oct-8 5 hours Code clean-up and refactoring, continue with the screenshot feature.
2008-oct-9 3 hours Manage the list of user defined cameras. [Keith paid for all hours (128) through now * 2]
TOTAL FOR OCTOBER (1) 13 hours

TOTAL FOR PERIOD 1 : 128 hours [PAID]

Period 2

Date Time Tasks
2008-oct-21 3 hours Configure and generate Doxygen for Monographic. Continue the camera stuff and some code re-arangement.
2008-nov-24 2 hours Getting back to the code, end of refactoring.
2008-dec-01 2 hours Commit to mercurial, try to fix the hack who force the 406 to be loaded (can't be fixed until we're more advanced, since it require the whole drivers XML files to be parsed).

Render the user-requested cameras to files (for easy sharing point of views requested by the vision engine).

2008-dec-02 4 hours Solved a Monodevelop bug (I wasn't able to compile anymore...). Work on "TorcsDotNet", the Track is loaded using the C++ plugin from a C# application.
2008-dec-04 4 hours Work on "TorcsDotNet", the Ogre graphic module is initialized and displays the Track, start investigating the creation of a tSituation (found raceman.h / raceinit.cpp).
2008-dec-08 3 hours Work on "TorcsDotNet", wrapping the raceengine for creation of drivers and situation.
2008-dec-09 2 hours Wanted to know what robots exactly need to drive (C version and SharpyCS one). SharpyCS uses nothing different than C robots (ie torcs C interface).

Decision is to wrap the C robots so we'll have all drivers available.

2008-dec-10 2 hours Work to wrap raceinit's InitCars, which initialize olethros. It bugs... Trying to figure out why.
2008-dec-13 2 hours Compile Olethros within Monodevelop project. Wrapped GfParm to load torcs' parameters files from C# RaceEngine.
2008-dec-15 3 hours Olethros loaded and initialized. Now we go to another big part : initialize a race.
2008-dec-16 4 hours Better wrapping of a few core classes. Start loading the car structure (tCarElt).

Study of Torcs source code to understand all the informations available/needed for cars simulation and driving.

2008-dec-17 3 hours Including SimuV2 and SOLID-2.0 into TorcsDotNet. Fighting against a Monodevelop bug...

Trying to figure out how I can monitor my activity inside Monodevelop (for precise time management).

2008-dec-18 4 hours Starting to wrap in C# SimuV2

Fixed all C# <-> C++ structure alignment bugs using __attribute__((__packed__)) on C++ side and [StructLayout (LayoutKind.Sequential, Pack=1)] on C# side...

It crashed.. Hardcore debugging.. Finally discovered a bug in Mono!

Under some circonstances C# Packed structures are not duplicated correctly (miss a few bytes at the end). I need to reproduce it on a simple example to submit a bug report.

Removed the dependency over PLIB by including in the project the very few functions used by Torcs core.

2008-dec-19 1 hour Reproduce the mono bug on a small example, filling bug report: https://bugzilla.novell.com/show_bug.cgi?id=460608
2008-dec-20 4 hours My bug is said to be solved in mono's SVN, so I got it and am compiling mcs from source to check this.

Writing unit tests to make sure all C# <-> C++ data structure conversions are bugless (since those bugs are *very* hard to track, as I made the experience).

Adding a check for the 'Pack=1' bug: which warns if it occurs. Latest version of mono do not have this bug so I'm now gonna change my all source code... just presume users have a non-buggy compiler.

2008-dec-23 2 hours Install/compile Torcs, Mono, Monodevelop and OgreDotNet on my eeePC. Solve Torcs' GCC 4.3 compile errors.
2008-jan-8 3 hours Work on C# Simu wrapper. Initialize the CarElt array of tSituation. Thinking about C#/C++ data synchronization for dynamic structures.
2008-jan-12 3 hours Initialize TCarElt fields (by porting the raceinit.cpp code to C#). Facing a strange exception thrown by the mono runtime (the JIT precisely). I suspect it doesn't like my unmanaged memory allocations.
2008-jan-13 2 hours Investigate proper ways to implement C#/C++ interoperability. Reading MSDN and papers.
2008-jan-14 3 hours Investigate SWIG. Torcs C interface described. SWIG generated code integrated into the project. Making previous version (TorcsItf) obsolete.
2008-jan-15 3 hours Make nice SWIG wrapper for Torcs interface, clean existing code accordingly.
2008-jan-16 2 hours Improve Robot and Car wrapper, learn more deeply SWIG in order to extend its generated interfaces..
2008-jan-17 3 hours Improve Track, ModInfo and Situation. Create an object oriented version of GfParm using SWIG. Rename variables so they starts with uppercase in C#.
2008-jan-20 4 hours Fix GfParm wrapper, learned own to customize SWIG generated code.
2008-jan-21 3 hours Finish to fix all compilation bugs related to the changes in the interface, so we're now back to previous state but with a much cleaner code.

Getting back to initialization of car structures (tCarElt) -- which doesn't segfault anymore (yeepee!).

2008-jan-22 4 hours Apply some polish to Car and Track interfaces. Write the C# version of InitStartingLine(). Move some code from Main() to the RaceManager.
2008-jan-23 4 hours End of the initialization stuffs. The simulation run, car positions are updated... but get random values.

Some important structure members might be uninitialized. Need to do some debugging.

2008-jan-24 7 hours Completed SwigTorcs. Learned how to wrap array structure members to C# array. Wrote lots of Swig Macros.

Been through all torcs interface headers to rename all variables and wrap all arrays cleanly.

Splitted Swig wrapper into several files: simulator/interface/*.i

Wrote a script which compiles the code, so I do not always need to launch Monodevelop (compile.sh at torcsdotnet's root).

2008-jan-26 2 hours C# simulation manager reached a working state. Plugins are initialized correctly, the car runs smoothly around the track.
2008-jan-27 4 hours Registered the project on sharesource.org. Preparing a package which compiles with autotools, check for dependencies and everything (in progress).
2008-jan-28 5 hours Projet accepted by sharesource.org. Packaging source with autotools complete (I need to package data now).

Removed some hard coded path in the graphic engine code by reading appropriate variables. Improved OgreDotNet renderer's management of resources (textures and stuffs).

2008-feb-01 4 hours Commited project to ShareSource. Adding little document on project wiki for installation. Fixing installation bugs.

Cleaning the data folder (3D models are now stored in zip files together with their textures and shaders).

Installing user-mode-linux in order to test compilation/installation. On various systems and from an empty system, to write a clean "how-to-install" documentation.

2008-feb-02 7 hours Finishing to clean every hacks. Now ./configure && make && make install do everything for you!

Updating "how-to-install". Preparing the interface for C# robots. Creating a stupid SharpyRobot.cs which drives straight to the wall as an example.

If WD like to ports Sharpy to OpenRacing, I'll start writing minimal GUIs for selecting Robots and Tracks, or start working on user inputs.

2008-feb-03 6 hours Exploring GUI libraries. Many things available for Ogre but just a few have C# interface, and most them are dead projects...

I got MyGUI working, the example is nice looking and the API simple so I wrote minimalist C# wrapper for basic functions.

I'm now trying to have something working with this inside OpenRacing.

2008-feb-04 6 hours I improve MyGUI# (I found my C# DLL wasn't working), now it's clean! Continue with the wrapper (as well as learning how MyGUI works).

Created an example OgreDotNet + MyGUI# application for demo and experimentation purposes.

OpenRacing now initialise MyGUI and add widgets on screen (just useless buttons, images and windows for now).

Some conception for integrating GUIs in OpenRacing had to be made: the graphic plugin is now in charge of rendering GUIs.

(because as we seen in Torcs, rendering of GUIs and 3D stuffs inside the same window with two different engines is not a good idea)

2008-feb-06 3 hours GraphicModule can now be initialized without being given Track and Cars, so we can load only the GUI. Starting input support using OIS through SWIG's framework.
2008-feb-08 3 hours Initial input support is working, wrapper dispatches EXIT events. Contacting MyGUI's guy to see if they are interested by a SWIG wrapper.

(problem is that they've already written a Managed C++ wrapper but Managed C++ isn't supported by Mono).

2008-feb-10 3 hours Minimal GUI is now working (with mouse and keyboard, using SWIG directors to specify C# callbacks to a C++ API).

Analysing torcs-ng mailing list. Working on the email for Torcs-NG guys.

TOTAL FOR PERIOD 2 : 128 hours [PAID]

Period 3

Date Time Tasks
2008-feb-11 4 hours Finish GUI. Clean-up scene after a race (so a new one can be launched). Sent the mail to Torcs-NG (and Torcs). Chat with Keith.
2008-feb-12 3 hours Working on Torcs-NG installation manual, trying to "de-hack" the GUI wrapper so I depend on MyGUI's SVN unmodified. Moving the minimalist SWIG wrapper for MyGUI within OpenRacing.
2008-feb-14 3 hours Sending mails (and brainstorming about it) to Torcs-NG. Installing OpenRacing and dependencies from scratch to be sure the installation manual will be good.

TOTAL FOR PERIOD 3 : 10 hours

Goom

Low-priority task.

Date Time Tasks
2008-dec-01 1 hour Install dependencies needed to compile Totem.
Total 1 hour

Goom