We proudly present the Castle Game Engine 4.0.0 release! This is the greatest release of our engine ever for ObjectPascal developers interested in making their own games:
We introduce a high-level game API, to construct a fully-working 3D game really easy. This includes integrated units to manage levels, creatures (with smart AI), items, player, with inventory, management of 3D resources, easy 3D sound, flexible game data layout (you can use XML files to define a lot of things without touching game code), and so on.
Of course, we use VRML/X3D for all the 3D models, so everything can be animated and interactive, and may use features like shadows, mirrors, shaders and such. See our demo 3D models (in particular, check new water/caustics/ demo inside, by Victor Amat, movie showing it is here).
There are a couple new examples in engine sources. First of all, examples/fps_game/ is a must-see: it shows a complete working FPS game, with a lot of comments in the source code and data files.
The engine is very flexible, you can derive new classes and override a lot of methods to customize behavior of everything in ObjectPascal. You can define new level logic, new creatures, new items, and finally you can also use basic 3D classes to easily create any 3D entities suitable for your game. You can also easily create your own viewports, scene managers, 2D controls, use 3D sound and much more. Everything is explained in the new tutorial.
We have a lot of new documentation to show you how to use the engine:
- Tutorial - introduces most concepts of the engine, with example code snippets.
- Classes overview (cheatsheet) - a quick ride through most important engine classes and ideas.
- Guide to creating game data - how to create your 3D models using any 3D modeling software (like open-source Blender), and how to write various configuration files like resource.xml and level.xml.
- As always, there is also a complete API reference.
The full list of changes is definitely too large to fit into a normal news item. In the past I usually tried to list all the important changes in a release announcement, but there's just too many things this time :) New engine units include CastleCreatures, CastleItems, CastleLevels, CastlePlayer, CastleMaterialProperties, CastleResources. There are also countless changes in the rest of the engine to make it better and more integrated. See the news from the whole 2012 year for a complete list of details.
For developers upgrading from engine 3 version: all of our unit names are now prefixed with CastleXxx, see doc/naming_engine_4.0.txt document. So you will almost definitely need to fix your "uses" clauses. Aside from that, the engine is quite compatible with previous version. Of course please ask of the forum if you have any questions about upgrading code from engine 3 to 4 (or about anything else, for that matter :)
We also release a new 3.12.0 version of view3dscene, our VRML/X3D browser and viewer for other 3D model formats. The most important improvements are listed below. Note that improvements 1-8 are actually in the engine, instantly available for all the games/applications using our engine. But most users will probably observe them in view3dscene for the 1st time.
- Navigating in Walk / Fly modes by mouse dragging.
- Using 3D mouse devices.
- Screen-space ambient occlusion (see menu "View -> Screen Effects" menu item, developers: try the ultra-simple TCastleAbstractViewport.ScreenSpaceAmbientOcclusion boolean property).
- All screen effects cooperate now with multi-sampling (anti-aliasing).
- UNIT statement from X3D 3.3 is implemented.
- VisibilitySensor node is supported.
- Many fixes to triangulating concave polygons.
- X3D extension to force Phong shading.
- New "Edit -> Lights Editor" feature.
Many thanks go to Jan Adamec for implementing the 1-3 features above (and more)! Our engine is used as VRML viewer for shareware Room Arranger.
All the other programs and data on our pages were updated to use/show new engine 4.0.0 version: The Castle 1.0.0 (finally!), malfunction 1.2.8, kambi_lines 1.1.7, view3dscene 3.12.0, rayhunter 1.3.4, glViewImage 1.4.1, glplotter 1.2.5, bezier_curves 1.1.9, glinformation 1.2.2, gen_function 1.0.5, demo models 3.2.0.