Numerous optimizations and dynamic batching
Thanks to many sessions dedicated to optimizing CGE rendering and animation, we have a number of new optimizations (some enabled by default, some experimental — you need to enable them yourself) and new ways to profile your applications.

Various "bottlenecks" (things that noticeably affect the speed) are now drastically optimized. This includes iterating

Configurable FPC and Lazarus location in the editor
The CGE editor now has a "Preferences" window where you can configure the location of FPC / Lazarus.

Basically, if you use the CGE editor, you no longer have to worry about adjusting your environment variables. No need to place FPC / Lazarus in $PATH anymore, and no need to define $CASTLE_ENGINE_PATH. This should make the editor more user-frien

Big improvements to camera API coming soon, and check out our game on Nintendo Switch
If you have Nintendo Switch console, by sure to check out Escape from the Universe on Nintendo Switch, a game released last month by Cat-astrophe Games.

The game uses our Castle Game Engine for everything, of course. It depends on CGE Nintendo Switch support. A Japanese ver

ImageBackground node, Android SDK version bump to 28, Andrzej articles about monotonic clock on Android, FPC 3.3.1 updates
We have implemented a new X3D node ImageBackground (see the documentation). It allows to define a background using a simple image, and may be useful to view3dscene users.

Demos are inside demo-models: ba

Castle Game Engine on Raspberry Pi
Recently I got my Raspberry Pi 4 device, and I am excited by the possibilities (small+cheap device with fully functional Linux). I was happy to see that Castle Game Engine runs perfectly on it :) Here are some screenshots of The Unholy Society running on Raspberry Pi.

If you're interested in using CGE on Raspberry Pi:

Just install FPC using the package repository (apt-get i

Streaming sound tracks, FMOD linking improved
Our sound engine now supports streaming sounds.

"Streaming" means that we decompress the sound (like OggVorbis) during playback, in parts (as needed). This technique allows much faster sound loading (loading sound as "streamed" is almost instant). It adds a small run-time overhead to playing given sound, although in practice it is not noticeable at all

ASTC texture compression, progress of engine Delphi compatibility
Castle Game Engine now supports ASTC, which is a great GPU compresion method available on most modern mobile devices (Android and iOS). You can easily compress your textures, and then use them at runtime, using the appropriate declaration in material_properties.xml file.

The usage is described in details in ASTC c

Improvements to AdMob service, list of engine features added since last release, and more articles about CGE from Andrzej Kilijański
Andrzej Kilijański wrote a few very nice articles about Castle Game Engine recently:

Updates in Castle Game Engine Admob Service (also available in Polish) describing his recent impr

Localization improvements (and a Japanese version of “Escape from the Universe”)
I implemented a new comfortable workflow for localization using the CastleLocalizationGetText unit. It is documented in details in the manual about localization and is demonstrated by a revised examples/localization/gettext/ demo.

It was tested by localizing to Japanese an upcoming relea

Many Animations Improvements: glTF, simultaneous anims, view3dscene panel, optimizations
Animating transformations (translation, rotation, scale) from the glTF format is supported now. Playing, cross-fading and resetting the animations is now optimized, and exposes some new features. New methods available now: TCastleSceneCore.StopAnimation TCastleSceneCore.ResetA

Physics collision detection and new properties
We now support collision detection using our physics engine (Kraft). You can be notified when a particular object collides, and you can check with what it collided. Big thanks for implementing this feature go to Andrzej Kilijański! Collisions can be checked in two ways: By getting a list of colliding TRigidBody objects from TRigidBody.GetCollidingTransfo

May Engine Features – FMOD, warmup cache, FpMake and InstantFPC docs…
First of all, sorry for posting so seldom recently. At Cat-astrophe Games we have been working on our first title on Nintendo Switch, of course using CGE! Many of the new features described below are a result of that, and of course you can use them already, they are part of Castle Game Engine 6.5. […]

New sound features: alternative backends, new demo, aliases

Our sound engine was refactored to support various backends. There are 3 backends available now:

OpenAL (full-featured, with spatial (3D) sound support),

SOX (only useful for testing — executes command-line sox to play files),

and Nintendo Switch sound backend (not open-source, only available for dev

Castle Game Engine 6.5 “Beta” available for download, many editor and release improvements

First of all, notice that big shiny button on the main page to download CGE version 6.5. Try it out!

While we work on making next stable 6.6 (or maybe 7.0?) release perfect, you should enjoy using the latest 6.5 snapshot. It's in practice very stable (at Cat-astrop

Engine news (6.5 release snapshots, improvements to editor, TCastleWindowBase, joysticks and more)

You can now download Castle Game Engine 6.5 "snapshot" (build from the latest GitHub code) from here.

Until I release a stable Castle Game Engine 6.6, this is the easiest way to test the very latest CGE features (including new GUI editor). I'm work

Castle Game Engine supports Nintendo Switch!

Castle Game Engine now supports compiling your games to the Nintendo Switch console ! It is a full integration, really 100% of the engine works on Nintendo Switch. From the developer point of view, you just write cross-platform Pascal code using CGE units, and then you can recompile the application using the Castle Game Engine build tool with --target=ninten

Facebook and AppsFlyer integration on Android

Two new services are now available on Android:

Facebook - allows to connect your mobile application with Facebook application, and report analytics to Facebook. You can also log custom event "level achieved".
Apps Flyer - connects your application to AppsFlyer, which allows to gather statistics how your application was installed.

Android improvements – shadow maps, 64-bit support, upgrades and fixes

Shadow maps work on OpenGLES (Android and iOS) now!

The Android building tools, which are part of our build tool, were updated. We use a new version of Gradle and Android Gradle Plugin under the hood, and by default we compile using Android platform 27. The minimal supported Android version is lower of course — it

Documentation improvements

Because people will read again, I improved various parts of our documentation:

New page about using CastleSettings.xml to easily configure UI scaling and default font, in a way that can be applied in game as well as in the CGE editor.

Our Coding Conventions (and some related notes about contributing code to the engine) are now on our wiki. It's long, so here's a short version: write a

Sprite Demo from Valter Buccina

Valter Buccina made a demo application using sprites in Castle Game Engine.

The demo is available on

Citing from the README:

Demo is divided into two parts:

Road demo

The first shows with extreme precision the direction of the sprite in degrees. Using mouse click coordinates and Player position I apply t

Show more

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!