The status of the White Box version, i.e. the status of the code made available here, is simple: It's a mess. What is here is what was used to complete the first, very crude phase of The Open Engine. It has not been refined and cleaned properly, there is a lot of redundant code and incomplete functions that are simply unused. And most of all, there is very little documentation.

Needless to say, that is not a good thing. If serious work is to be made on the engine, people need to have an easy way to get into the code. The reason why this is tolerated is simply that either resources can go into cleaning up and documenting code that is already being changed massively for the next update, or resources can go into that update. I chose the latter, this time around.

The goal is to get some solid, long-term code in place now. Collision detection is going to be completely removed and redesigned, because the current code for it is horribly, well, horrible. It's bad, and it will not work on anything really complicated. The underlying math for, well, everything is also being redesigned, in order to use the far more flexible matrix math (which is a complicated branch of mathematics, NOT a simulated reality to keep humans trapped in stasis, by the way), but that math is a lot more complicated to get working, so it has been put of until now. Many other things are going to be completely redone.

However, what is not likely to be redone is the overall structure of the code. The seperations into different function categories (rendering, item use, file import, etc.) seems fairly solid, and so do many of the ways functions are called (lists of item uses by type, many categories having a main function that handles task distribution in that category, and such). Among other things, that means that a) by getting a general picture of the current code layout, you can get the general picture of most future layouts, as well, and b) the kinds of functions included now will reflect a lot of the ones used later, so picking one specific set of functions to think about will probably not be wasted time (the whole "RenderByColors" line of functions may be the exception, assuming the new collision detection system can do their job better).

So while the code is a mess and much will be completely replaced, it still provides a fair picture of how future code will be put together. Same time, same channel, same show. Most actors will just be updated for better versions :-)

And the C++/OpenGL code has been put together in the wx-DevCpp IDE, while the Blender Python exporter is included both as a detached txt file and within the model files used. Some model files may hold old code, though. Doing them this way is not required, since code is easily copied (of course), but the file setup may need changing for your preferred coding environment. C++ and OpenGL are permanently chosen for the task, while Python may be swapped for something else if there is good reason for it. Anything OS-dependent is isolated as much as possible, so that the future Mac and Linux versions of the code will be easier to keep up-to-date.

Download the full code