Development: new engine: levels, items, player, tutorial, class diagram, more
The work on the next Castle Game Engine version continues :) Looking at the size of the improvements, next version will deserve the new major number 4.0.0 (even though last version was 3.0.0). We have almost finished new engine features planned for the next version, and we have a lot of new documentation.
Diagram (as a text file...) of the most important "Castle Game Engine" classes is available.
I may try to squeeze this into a real image (maybe just the important boxes, and add the text on a normal HTML page). If you have experience with some diagram-drawing tools (like Dia or other open-source tool) I would appreciate contributions here (send them through forum or e-mail to Michalis).
"Castle Game Engine" draft tutorial is getting larger and larger (15 chapters now).
Short documentation for index.xml files used by "Castle Game Engine" to define levels, creatures and items is also available. Tutorial and classes diagram describe in details how these index.xml files work. People interested in creating MODs for your games will appreciate them, as they allow to add levels, creatures and items by simply adding subdirectories to game data.
New engine units since last news:
CastleLevelunit to find game levels (
index.xmlfiles), load them, scanning 3D level file for placeholders defining initial creatures/items, and integrating with player.
CastlePlayerunit to manage a central player object, with an inventory, footsteps sound, swimming and so on. This unit will probably shrink a little in the future, as most of it's functionality should also be available for creatures.
CastleItemsunit to define items (things that you can use in a game, like a sword or a life potion or a key). Item is a
TIteminstance, that refers to a corresponding
TItemKindinstance, referenced by
TItem.Kind. This is similar to how you define creatures (see previous news post about
CastleCreaturesunit), in that we have a separate class for an item and for item kind. A little complication here is that
TItemis not a 3D object (it cannot be directly added to the level), instead you have to use
CastleInputsunit, centralized keymap handling, detecting key conflicts and such.
beamWidth, and gives precise conversion from VRML 1.0
dropOffRate-> VRML 2/X3D
beamWidth. See engine internals doc about OpenGL rendering (sorry, just DocBook source now) for details.
writeln()can be used in games to make notifications. Also CastleScript
shortcut()is now available, to show user the value of some key shortcut. See CastleScript SVN docs for details. This allows "The Castle" levels (and future Castle2) levels to make notifications using more standard X3D mechanisms: they now use
ProximitySensor+ CastleScript to show hints, instead of our custom <area> invention. See e.g. cages level X3D source to see how it looks like.
CastleLevel, as a first demo (besides the castle1 game).
Oh, and since I just don't have any interesting screenshots for this news item (mostly code changes, interesting for developers...), the side of this news post contains just some best movies from the previous news in this year, possible thanks to Jan Adamec (RoomArranger, 3D mouse, SSAO) and Victor Amat (water with caustics). Thanks again!