More engine 2.0 news: all examples and "The Castle" use scene manager
Nearly all existing programs (examples and normal games) are now happily converted to the new scene manager approach. Scene manager interface got a lot of improvements by the way, check the docs. This means that engine 2.0.0 is coming along nicely and will soon be released :)
In particular, The Castle source code is converted to use the scene manager. This means that finally you can construct "The Castle" interactive levels by VRML/X3D events, using VRML/X3D time, touch sensors, key sensors, proximity sensors (see X3D specification for sensor nodes docs), scripts in KambiScript and such. To celebrate this, I plan to add a little eye-candy to castle's "Fountain" level, and then officially release the final "The Castle 1.0.0" along with engine 2.0.0. After that, work on "The Castle 2" may begin :)
More teasers about the Castle 1.0.0 release and plans for Castle 2 in later post hopefully next week.
Getting back to the engine work, one important news for developers: I renamed one of the most important new classes: what was
TBase3D is now called "T3D". (Reasoning: this is a shorter and better name. "Base" prefix was just uncomfortable, esp. since descendants were no longer "base" 3D objects but they were have to be called "TBase3D" in many places.)
Also, some other classes (
T[Custom]Translated/List3D) renamed to follow
T3DXxx pattern, like T3DList and T3DTranslated. That is, I moved the "3D" part of the name to the beginning. (Reasoning: looks just better, and is consequent with usage of other common prefixes like TKamXxx and TVRMLXxx classes. General rule is that "common part should be the prefix, not suffix", as this is easier to see (and presents itself better when identifiers are sorted alphabetically in API docs etc.).)
These renames concern only new classes, not released anyway yet (and we know anyway that engine 2.0.0 will break some compatibility, so let's take this opportunity and "get" the important classes names right, Ok? :) ).
Note: I edited the previous news post (the one ~2 weeks ago) to reflect these renames. I don't usually edit my news posts after publishing :), but in this case it was important to fix it. Otherwise some classes and code mentioned in the previous news article would not exist.