Latest news:

Castle Game Engine 5.2.0 release
(July 5, 2015)

Enemies and Shadows - screen from Web3d 2015 tutorial
Texture memory profiler in action
Hydra Battles, an isometric RTS game using Castle Game Engine
Dragon Squash - Android game integration with Google Games (title, sign-in)
Dragon Squash - Android game integration with Google Games (leaderboards)
Dragon Squash - Game Over screen, with some new font features

We're proud to present new Castle Game Engine release 5.2.0!

Be sure to also check out the slides and examples (data and code) from a tutorial about our engine given during the recent Web3d 2015 conference. They show (from the ground up) the creation of a simple 3D FPS game and 2D game.

The 5.2.0 release brings various improvements to the engine capabilities and API:

  1. GPU texture memory profiler is now available. This tells you exactly which textures are worth optimizing (maybe scale them down, maybe compress for GPU, maybe remove alpha channel or convert to grayscale...). See TextureMemoryProfiler documentation.

  2. Many improvements related to texture GPU compression (especially important on mobile platforms, where texture memory is precious):

    • New compression formats available: ATITC, PVRTC, ETC (in addition to previous S3TC formats).
    • Many more functions now accept GPU-compressed images.
    • LoadImagePreprocess allows to replace image URLs at runtime, to switch uncompressed texture files with compressed.
  3. New capabilities for font rendering: scaling: TCastleFont.Scale, outline: TCastleFont.Outline, TCastleFont.OutlineColor, print in rect: TCastleFont.PrintRect, TCastleFont.PrintRectMultiline, TCastleFont.PushProperties, TCastleFont.PopProperties.

  4. TUIState to help implementing simple UI mode switching (with possible stack).

  5. New option android_project was added to our build tool to support custom Java and manifest code in your Android project. This allows to integrate your Android game with Google Games (leaderboards, achievements, save games...), biling, ads, analytics and anything else you want:)

  6. Getting and setting fields of X3D nodes has now clean API. Just use LightNode.Intensity := 0.5 instead of ugly LightNode.FdIntensity.Send(0.5).

  7. By default we use fcl-image built-in handling of PNG format. This removes the need to use/distribute extra libraries for handling PNG on any platform.

  8. On Windows GUI applications, we will log to the xxx.log file by default, instead of trying to log to unavailable stderr. See the updated tutorial link about logging for details.

  9. TCastle2DControl component for easily creating 2D games. Already contains a ready T2DSceneManager.

  10. Encrypt/decrypt XML data using BlowFish. In the simplest case, just set TCastleConfig.BlowFishKeyPhrase property. This allows to encrypt your XML data, for example to prevent cheaters from easily modifying your game configuration variables in XML. It assumes that the particular value of BlowFishKeyPhrase you use is kept secret — e.g. it's compiled and maybe obfuscated.

  11. Numerous smaller new features: TGLImage.Draw3x1, TGLImage.Rect, TGLImage.ScalingPossible settable, TCasScriptExpression.AsFloat, TFramesPerSecond.MaxSensibleSecondsPassed, TCastleConfig.GetMultilineText (plus a few helpers for TCastleConfig to get/set RGB and RGBA colors), TRectangle.Align (plus related THorizontalPosition, TVerticalPosition), TCastleSceneCore.AnimationDuration .