Castle Game Engine 6.0 release!

Posted on

View3dscene "Lights Editor" at work setting shadow maps
HTML text
Savegames in the cloud using Google Play Games
Dragon Squash title screen and it's game balance equation designed in CastleScript
Curve drawn as enemy "swarm" trajectory
Tiled Sample Map rendered using our engine
Normalmaps - lizardman front in Blender
Normalmaps - lizardman front in our engine (view3dscene)
Normalmaps - lizardman back in Blender
Normalmaps - lizardman back in our engine (view3dscene)

We’re proud to release Castle Game Engine 6.0, a major upgrade to our open-source 3D and 2D game engine for Object Pascal!

Download it from our main page.

This release is the result of more than a year of intensive engine development. The main feature is that almost every part of the engine got significant improvement:) Throughout 2016 I was using the engine intensively to make some cool games, and it resulted in numerous major improvements.

The most important new features are:

User interface and 2D

  1. All UI classes now support automatic UI scaling, parents and anchors. The new manual page about user interface documents these features.

  2. New components: TCastleTimer (demo in examples/2d_standard_ui/timer_test), TCastleScrollView (demo in examples/fonts/html_text), TCastleFlashEffect, TCastleInspectorControl.

  3. TCastleLabel supports now basic HTML (rich text) (demo in examples/fonts/html_text).

  4. Render animation from a sprite sheet in 2D using TSprite (by Tomasz Wojtyś).

Build tool

See the build tool documentation and CastleEngineManifest.xml examples for more details about these features.

  1. Automatic generation of GPU-compressed and downscaled textures. They can also be automatically used by loading the same material_properties.xml in game, so you have a single place where you control which textures are compressed / downscaled.

  2. Valgrind compilation mode (--mode=valgrind), new subcommands "run" and "simple-compile".


  1. A large number of Android package components that provide an instant integration with various 3rd party Android libraries: Google Play Games, in-app purchases, sound, ads, analytics, vibrations and more.

  2. Savegames in the cloud. See ShowSaveGames, SaveGameSave, SaveGameLoad.

  3. UserConfig supported for easy persistent data (local savegames).

Game assets – new formats, extensions, conversions

  1. New castle-anim-frames format, with a Blender exporter. This can export any animations from Blender to our engine (armature, shape keys, physics simulations, particles….), and it can be loaded to TCastleScene, and played by our simple PlayAnimation method.

  2. New X3D extensions: Shape.shading = “WIREFRAME”, fields “slices”, “stacks”, “divisions”, using normal maps from a MovieTexture, Shape.render, many shadow maps and shadow volumes improvements.

  3. Tiled maps support (by Tomasz Wojtyś).

  4. sprite-sheet-to-x3d utility, to convert Starling and Cocos2D spritesheets to X3D (by Trung Le).

More stuff!

  1. CastleRandom unit – fast, wrapped in a class random generator. Use when the speed of random generation is paramount, or you want to use a couple of the generators in parallel (by Eugene Loza).

  2. Design a 2D curve using the “castle-curves” tool, and use it in your programs.

  3. Not integrated with the engine yet, but do check it out: 2D particle system for our engine! (by Trung Le).

  4. Demo models 3.7.0: many new demos, e.g. for castle-anim-frames, bump_mapping, more path tracer demos in lights_materials/raytracer.

  5. Alpha bleeding option in glViewImage 1.6.0.

  6. view3dscene 3.16.0: easily set gravity “up” vector to +Y or +Z, numerous “Lights Editor” improvements.

  7. The engine development has moved to GitHub. The Castle Game Engine repository is here, and a lot of related projects and examples are part of our organization. One of the practical advantages of this is that anyone can submit improvements more comfortably through GitHub: you can fork the engine, commit stuff, and then submit a pull request. This is a cool advantage of Git and GitHub.

  8. Somewhere in the middle of it all, Michalis also wrote a small book about the modern Object Pascal language.

Last but not least, I wanted to mention our new Patreon page. You can support the engine development, help me add great features to the engine, and get some real rewards — I’m devoting a weekend per month exclusively to the features requested by Patrons, you can get access to the cloud build server (continuous integration) for your game projects, and I will have a 24h gamejam every month making a demo game requested by Patrons. Please check out our Patreon page:

Suppport the engine on Patreon

At the end, I wanted to thank many people who helped in this release. In particular, my warmest thanks go to Trung Le, Eugene Loza and Tomasz Wojtyś for contributing a lot of engine improvements. There’s nothing more rewarding than to see other people actually using your engine to do cool stuff, so you really made a difference in my happiness!:) Please continue to contribute!

And a special thanks go to Paweł Wojciechowicz for relentlessly designing fantastic graphic stuff for a color-blind, stubborn programmer!

Thank you!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.