What this means:
- Timeline: every change to the code is archived and documented on a line-by-line basis.
- Roadmap: the various milestones we’ve set for the development process.
- SVN hosting: everyone can download the code via a SVN client.
- Ticket and Bug report systems: Submit bugs, ideas or changes for us to review.
- And lots more …
Commits have been slow lately due to the following reason:
- Resource management in the code was a complete mess. No real relation between elements in the code. Thus, a SceneGraph was developed to help clear the mess. It was not commited to the main code base due to memory leaks and improper handling of FlyWeight object creation and shading assignment.
- The ResourceManager class was rewritten to create objects based on a ResourceDescriptor that contains the future object’s name, physical location on the disk (i.e. model files, textures etc. if they exists), flags for various conditions on create (i.e. flipped textures, no-material geometry). Not committed due to the same FlyWeight problem.
- The Material system needs a rewrite. Switching between shaders all the time isn’t a good idea. Also creation/destruction is a complete mess.
- Other minor bugs/improvements.
These changes are massive. They will reflect object management in scenes and proper loading/unloading of resources. Rendering large batches of geometry should be faster (forests?) and the whole scene setup easier to understand (SceneGraph defined/dumped in XML format?). Once this commit is in the main codebase, a lot of smaller ones will follow adding features: Shader/Material based batch rendering, Advanced lighting based on material properties, Deferred Lighting, Speed improvements etc.
If you look at the videos available on the main site in the media gallery, the time difference from the “OBJ importer” video and the “Grass generation” one is of about 6 months. From the last video until now (as of writing this post), it’s been well over a year. The changes ARE that massive. Hope future videos will prove that 😉 Until then … check for changes, and feel free to study the code and give feedback if you feel like it.