Castle Game Engine
banner
castle-engine.io
Castle Game Engine
@castle-engine.io
Cross-platform (desktop, mobile, console) 3D and 2D game engine. Powerful visual editor. Support for glTF, X3D, Spine and more. Fast clean code using modern Pascal. Free and open-source. https://castle-engine.io/
Various October Improvements – VS Code and VS Codium, Google Play 16k requirement, Nintendo Switch update

We released a new version (1.6) of our extension to integrate with VS Code: We fixed how it detects OS on win64. This in turn fixes Code Completion, jumping to declaration and other LSP…
Various October Improvements – VS Code and VS Codium, Google Play 16k requirement, Nintendo Switch update
We released a new version (1.6) of our extension to integrate with VS Code: We fixed how it detects OS on win64. This in turn fixes Code Completion, jumping to declaration and other LSP features on Win64. In addition to the VS Code marketplace, we're now also in OpenVSX marketplace. This means that you can use our extension in…
castle-engine.io
November 2, 2025 at 8:20 AM
KTX support improvements, ability to load images faster

Our support for the KTX image format was greatly improved, to make it the best format for images (in some cases -- when you don't care about image size on disk, but care about loading time). Note that the post below discusses various details,…
KTX support improvements, ability to load images faster
Our support for the KTX image format was greatly improved, to make it the best format for images (in some cases -- when you don't care about image size on disk, but care about loading time). Note that the post below discusses various details, but you don't really to do anything special to benefit from these improvements. Just use KTX, as any other image, for your textures / images.
castle-engine.io
October 25, 2025 at 5:07 PM
Demo how to distribute web application with encrypted data

We present a demo showing how you can keep your web application data encrypted (with decryption key embedded in your application code). By default, when you build a web application, the data is packed into a ZIP file, and a person that…
Demo how to distribute web application with encrypted data
We present a demo showing how you can keep your web application data encrypted (with decryption key embedded in your application code). By default, when you build a web application, the data is packed into a ZIP file, and a person that wants to access your data can download this ZIP and unpack the data on their own system (and e.g.
castle-engine.io
October 18, 2025 at 10:07 PM
IFC support in Castle Game Engine

We've been extending in recent months our IFC support. I talked about it at conference in Germany and I will talk about it at conference in Poland next week 🙂 General overview of what IFC is about: You can open, save and manipulate 3D models in the IFC format.…
IFC support in Castle Game Engine
We've been extending in recent months our IFC support. I talked about it at conference in Germany and I will talk about it at conference in Poland next week 🙂 General overview of what IFC is about: You can open, save and manipulate 3D models in the IFC format. This is the standard 3D format used by the BIM (
castle-engine.io
October 5, 2025 at 2:36 PM
September engine progress: IFC, web, CastleHttps, VS Code debugging, zen mode, X3D 4.0 4.1, downloads mirror

This was a busy month, with lots of engine work and also a great conference in Germany organized by Sorpetaler. Let me then announce a bag of engine improvements and news all across the…
September engine progress: IFC, web, CastleHttps, VS Code debugging, zen mode, X3D 4.0 4.1, downloads mirror
This was a busy month, with lots of engine work and also a great conference in Germany organized by Sorpetaler. Let me then announce a bag of engine improvements and news all across the board from last month (and more): We've been working a lot in recent months on our IFC support. More details about the IFC improvements will be announced later this week.
castle-engine.io
October 2, 2025 at 3:16 PM
Castle Model Viewer available on iOS, Android version updated too

We have released Castle Model Viewer Mobile on iOS (iPhone, iPad) and you can get it right now from the App Store! Open this link to the AppStore on your iPhone/iPad, or just search for "Castle Model Viewer" in the AppStore. We're…
Castle Model Viewer available on iOS, Android version updated too
We have released Castle Model Viewer Mobile on iOS (iPhone, iPad) and you can get it right now from the App Store! Open this link to the AppStore on your iPhone/iPad, or just search for "Castle Model Viewer" in the AppStore. We're available in all AppStore regions (including US and EU). You can open a number of built-in models (in…
castle-engine.io
September 13, 2025 at 11:00 PM
Ton of mobile (iOS, Android) improvements: iOS + OpenGL3, Google Play Biling upgrade, shadow maps precision, more

As we're preparing to release Castle Model Viewer on iOS, we've done a number of improvements to our mobile support for both iOS and Android: With big thanks to Jan Adamec, we have:…
Ton of mobile (iOS, Android) improvements: iOS + OpenGL3, Google Play Biling upgrade, shadow maps precision, more
As we're preparing to release Castle Model Viewer on iOS, we've done a number of improvements to our mobile support for both iOS and Android: With big thanks to Jan Adamec, we have: Upgraded our OpenGLES usage on iOS to OpenGES 3 (if only your system supports it; otherwise we still fallback to OpenGLES 2). This brings features like shadow maps to iOS rendering.
castle-engine.io
September 7, 2025 at 11:37 AM
Enjoy new examples: 3d_games/walking_adventure, 3d_games/dungeons_and_skeletons_fight and more

We did some rearrangement of our examples, to showcase better engine features and some good demos. First of all, we now have 3d_games and 2d_games subdirectories in our engine examples. The names…
Enjoy new examples: 3d_games/walking_adventure, 3d_games/dungeons_and_skeletons_fight and more
We did some rearrangement of our examples, to showcase better engine features and some good demos. First of all, we now have 3d_games and 2d_games subdirectories in our engine examples. The names 2d_games, 3d_games are alphabetically first -- which is a nice bonus, we want them to be noticeable. Example 3d_games/walking_adventure has been added to the engine repository.
castle-engine.io
August 31, 2025 at 12:17 AM
New example: get random image using Unsplash REST API

We have a new example in our repository: examples/network/random_image_from_unsplash. This shows using our to access Unsplash API and ask for a random image matching a given search term (like a "cute fox"). The main part of the example is the…
New example: get random image using Unsplash REST API
We have a new example in our repository: examples/network/random_image_from_unsplash. This shows using our to access Unsplash API and ask for a random image matching a given search term (like a "cute fox"). The main part of the example is the unit gameunsplash.pas with a reusable class to download images from Unsplash. There are 2 ways how this can be useful:
castle-engine.io
August 30, 2025 at 4:11 AM
Android: Updated applications (Castle Model Viewer, Platformer…) in Google Play, on the engine side: upgraded Google Play Services to v2 and Android SDK to 35

Castle Model Viewer for Android version 2.8 has been released! This brings: Support for IFC format right in our mobile viewer. Small UI…
Android: Updated applications (Castle Model Viewer, Platformer…) in Google Play, on the engine side: upgraded Google Play Services to v2 and Android SDK to 35
Castle Model Viewer for Android version 2.8 has been released! This brings: Support for IFC format right in our mobile viewer. Small UI improvements: better button order (left-most changes model), show more built-in files. Opening ZIP files underneath doesn't create temp directory on your device. Internally, this is achieved by using to open ZIP files. The class also makes code simpler, and compatible with both FPC and Delphi.
castle-engine.io
August 8, 2025 at 3:09 PM
Lazarus packages: moved, renamed

We did a few moves and renames to our Lazarus packages. After upgrading to the latest engine version, be sure to run again "Register Lazarus Packages" button (from the "Preferences -> FPC and Lazarus" in our editor, as documented in our Lazarus docs). Note that the…
Lazarus packages: moved, renamed
We did a few moves and renames to our Lazarus packages. After upgrading to the latest engine version, be sure to run again "Register Lazarus Packages" button (from the "Preferences -> FPC and Lazarus" in our editor, as documented in our Lazarus docs). Note that the existing applications will continue to work even without you doing the above, because new packages…
castle-engine.io
August 2, 2025 at 12:31 PM
14 engine improvements from June/July — window sizing docs, TCastleAbstractPrimitive and TCastleImageTransform extensions, cubemaps and 3D textures in all texture slots, VS Code integration improved, rendering optimizations…

Presenting a big batch of engine improvements done last ~month. Lots of…
14 engine improvements from June/July — window sizing docs, TCastleAbstractPrimitive and TCastleImageTransform extensions, cubemaps and 3D textures in all texture slots, VS Code integration improved, rendering optimizations…
Presenting a big batch of engine improvements done last ~month. Lots of small things. Everyone, pick what you like 🙂 Upgrade to the latest engine version and enjoy them all! If you like what you see, we appreciate your support on Patreon (we also have other ways to donate). We added a new documentation page Window size and fullscreen…
castle-engine.io
July 29, 2025 at 4:31 PM
More scenes are shadow casters for shadow volumes out-of-the-box, because of the auto-detection of 2-manifold scenes

(Yes, it's a 3rd news about Castle Game Engine in 3 days. More to come -- we have a backlog of things to announce! Brace yourselves 🙂 ) We introduced an algorithm to detect…
More scenes are shadow casters for shadow volumes out-of-the-box, because of the auto-detection of 2-manifold scenes
(Yes, it's a 3rd news about Castle Game Engine in 3 days. More to come -- we have a backlog of things to announce! Brace yourselves 🙂 ) We introduced an algorithm to detect 2-manifold scenes better, meaning that all scenes that are really 2-manifold (even if not all shapes inside are 2-manifold) are automatically shadow casters for shadow volumes…
castle-engine.io
July 27, 2025 at 3:42 PM
Register for the upcoming Pascal Conference in Germany (Early Bird price until 31.07)

I will be at the Pascal Conference 2025 in Germany, on September this year. And you can be there too 🙂 The schedule is announced at the conference site. A number of great people, influential in both FPC and…
Register for the upcoming Pascal Conference in Germany (Early Bird price until 31.07)
I will be at the Pascal Conference 2025 in Germany, on September this year. And you can be there too 🙂 The schedule is announced at the conference site. A number of great people, influential in both FPC and Delphi development, are going to give a talk, so this is going to be very interesting. I will also present. On Friday I will talk about a real use-case of our…
castle-engine.io
July 26, 2025 at 5:51 PM
Delphi advancements: groundwork for more platforms (Android, macOS, iOS), Castle Model Viewer + Delphi, cli Delphi tools on macOS, fixes for C++ Builder, Delphi 64-bit IDE

We have a few treats for Delphi users in this post: Base engine units (but not yet rendering!) are now compatible with more…
Delphi advancements: groundwork for more platforms (Android, macOS, iOS), Castle Model Viewer + Delphi, cli Delphi tools on macOS, fixes for C++ Builder, Delphi 64-bit IDE
We have a few treats for Delphi users in this post: Base engine units (but not yet rendering!) are now compatible with more Delphi platforms. To opens the door to make our engine compatible with more platforms with Delphi. This means we have a "groundwork" to add support for more targets with Delphi: Android (tested both "Android 64-bit" and "Android 32-bit"
castle-engine.io
July 25, 2025 at 5:03 PM
Support for new Tangent node in X3D, with vectors as 4D, better aligned with glTF

The short version of this post, if you don't want to go into technical details, is that one aspect of using bump mapping is now better in Castle Game Engine. Our data transfer and logic is more efficient and more…
Support for new Tangent node in X3D, with vectors as 4D, better aligned with glTF
The short version of this post, if you don't want to go into technical details, is that one aspect of using bump mapping is now better in Castle Game Engine. Our data transfer and logic is more efficient and more aligned with glTF and latest X3D specifications. And if you still don't want to go into technical details, you can…
castle-engine.io
July 9, 2025 at 3:55 PM
URL improvements: castle-config:/ protocol, use UriExists and FindFiles on any URL (including e.g. zip), TCastleMemoryFileSystem

We present a number of improvements to our URL system, which is the basis for all engine resource loading and saving: We introduced castle-config:/ URL protocol, to save…
URL improvements: castle-config:/ protocol, use UriExists and FindFiles on any URL (including e.g. zip), TCastleMemoryFileSystem
We present a number of improvements to our URL system, which is the basis for all engine resource loading and saving: We introduced castle-config:/ URL protocol, to save files in a system-specific place (directory) that is "persistent" for given user. It points to a specific directory that is by convention writeable and should be used to save user data. For example, something like…
castle-engine.io
June 28, 2025 at 10:17 PM
Slides and example from Delphi Day 2025 presentation and after-thoughts (Afterwarp, shadow maps, BGFX and deferred rendering)

I'm traveling back home after enjoying Delphi Day 2025 in Piacenza. I think I've made a nice presentation about the engine features. Slides are available here and one new…
Slides and example from Delphi Day 2025 presentation and after-thoughts (Afterwarp, shadow maps, BGFX and deferred rendering)
I'm traveling back home after enjoying Delphi Day 2025 in Piacenza. I think I've made a nice presentation about the engine features. Slides are available here and one new (simple and fun 🙂 ) example is part of the engine now: examples/physics/physics_throw_chickens. During the talk, I also showed a number of existing projects, including platformer, fps_game, …
castle-engine.io
June 21, 2025 at 11:45 AM
Shaders! Large new documentation how to use shaders with Castle Game Engine, and new “shader libraries” (for now: to convert worldeye space comfortably), and new SetEffects methods

We've done a number of improvements to our shaders support, and it starts with one big thing: We have a new…
Shaders! Large new documentation how to use shaders with Castle Game Engine, and new “shader libraries” (for now: to convert worldeye space comfortably), and new SetEffects methods
We've done a number of improvements to our shaders support, and it starts with one big thing: We have a new documentation how to use shaders with Castle Game Engine. Recommended reading! This documentation shows the most recommended way to use shaders in Castle Game Engine, combining simplicity with power: It starts with up-to-date explanation of why we recommend to use "shader effects" () to express your shaders.
castle-engine.io
June 14, 2025 at 10:05 AM
Game controllers (gamepads, joysticks) – new comfortable API, and example of walking and talking using gamepad from Delphi Summit 2025

We're proud to present a completely new comfortable API to handle game controllers (which includes gamepads, joysticks and similar devices). Everything is…
Game controllers (gamepads, joysticks) – new comfortable API, and example of walking and talking using gamepad from Delphi Summit 2025
We're proud to present a completely new comfortable API to handle game controllers (which includes gamepads, joysticks and similar devices). Everything is documented, with links to examples, in the dedicated manual page about game controllers. Highlights of the new support: You receive information about pressing / releasing gamepad buttons by overriding and methods. Usually you define these overridden methods in your…
castle-engine.io
June 8, 2025 at 2:37 PM
Meet me in Netherlands (Amsterdam), Italy (Piacenza), Germany (Sundern) at the upcoming Pascal conferences

As many of you know, I looove talking about Castle Game Engine and our many features. But my wife, though she loves me dearly, eventually says "enough" 🙂 So I learned to travel around the…
Meet me in Netherlands (Amsterdam), Italy (Piacenza), Germany (Sundern) at the upcoming Pascal conferences
As many of you know, I looove talking about Castle Game Engine and our many features. But my wife, though she loves me dearly, eventually says "enough" 🙂 So I learned to travel around the world and speak at various conferences. Catch me at these upcoming events: I will be at the Delphi Summit, in Amsterdam (Netherlands)
castle-engine.io
May 30, 2025 at 5:14 PM
Web target progress: editor on web (proof of concept), OpenUrl, right mouse button, many new demos (creature AI, 3D model viewer, physics shooting, auto-tests…), Kraft and Vampyre Imaging on web, wasm-opt, embedded fonts

We've been busy in the last months developing our web target! If you haven't…
Web target progress: editor on web (proof of concept), OpenUrl, right mouse button, many new demos (creature AI, 3D model viewer, physics shooting, auto-tests…), Kraft and Vampyre Imaging on web, wasm-opt, embedded fonts
We've been busy in the last months developing our web target! If you haven't already, check out our video about web support and also a free web game linked in this post 🙂 The new web developments: Let's start with something big: We have developed proof-of-concept portable version of Castle Game Engine editor that has some of our real editor's…
castle-engine.io
May 24, 2025 at 4:43 AM
April improvements: physics upgrade, sphere casting, layers filtering, easy factory, iOS fixes, image improvements, and more

We have a number of improvements to announce, so welcome to another "bag of improvements all around the engine" news post! Take a look around, see if you find something you…
April improvements: physics upgrade, sphere casting, layers filtering, easy factory, iOS fixes, image improvements, and more
We have a number of improvements to announce, so welcome to another "bag of improvements all around the engine" news post! Take a look around, see if you find something you like 🙂 As usual, all the announced improvements are already part of the latest downloads. is now a non-visual component registered in the editor, so it's easier to use it.
castle-engine.io
May 1, 2025 at 7:25 PM
Pascal Cafe 2025 presentation: web (play Unholy Society on the web for free!), IFC, 3D scanning, mORMot integration

There's a gift at the end of this news post 🙂 Almost a month ago (time flies fast!), I did a presentation at Pascal Cafe 2025, an annual FPC / Lazarus conference organized by Blaise…
Pascal Cafe 2025 presentation: web (play Unholy Society on the web for free!), IFC, 3D scanning, mORMot integration
There's a gift at the end of this news post 🙂 Almost a month ago (time flies fast!), I did a presentation at Pascal Cafe 2025, an annual FPC / Lazarus conference organized by Blaise Pascal Magazine. This time, I didn't pick one topic for my talk, I decided to showcase a number of cool engine features. The common theme is…
castle-engine.io
April 25, 2025 at 2:26 PM
Modern Pascal course examples and slides, updates to modern Pascal book to fully support both Delphi and FPC

Last week I made a course teaching modern Pascal, organized by BSC (Embarcadero branch in Poland). We started from basics (structural and imperative programming, classes) and went on to…
Modern Pascal course examples and slides, updates to modern Pascal book to fully support both Delphi and FPC
Last week I made a course teaching modern Pascal, organized by BSC (Embarcadero branch in Poland). We started from basics (structural and imperative programming, classes) and went on to advanced things (TComponent, various ways to deal with memory management, class references, generics, and more). It total, it was 2 days * 6 hours. Mostly lectures, i.e. "Michalis talking and showing"
castle-engine.io
April 14, 2025 at 11:42 AM