• Recent Tutorials

  • Castle Game Engine 4.0.0 Release

    I'm proud to announce a release of Castle Game Engine 4.0.0, an open-source 3D game engine for FPC/Lazarus. This release adds a lot of features to make the engine really comfortable for game developers.

    We introduce a nice API to make 3D games, with out-of-the-box intelligent creatures, items, levels, nice game data layout and more. Finally it's really easy to make a complete 3D game using our engine.

    Everything is also very flexible under the hood, everything can be extended by overriding appropriate methods in classes, new types of creatures/items/other 3D objects can be defined, with specialized behavior.

    We have a couple of new examples, in particular examples/fps_game/ (in engine sources) shows how to easily make a fully-working FPS game using our game. It has a lot of comments in the code describing how things work.



    FPS Game Demo using Castle Game Engine


    We also add a lot of new documentation in this release:


    I have put a lot of work into this documentation and hopefully it will be useful to new developers that want to try our engine.

    You can read the full news announcement right here.

    Engine overview, with all the links to downloads and documentation are right here.


    Engine features at a glance:
    • Reads many 3D model formats, focusing on VRML/X3D standards (so you can make 3D models in pretty much every 3D modeling software), but also supporting Collada and other popular formats.
    • We use OpenGL for graphics, and we have many eye-candy features (shadows, mirrors, bump mapping, screen effects, shaders etc.).
    • The engine is basically integrated into Lazarus (you can drop TCastleContol on Lazarus form, and a couple of non-visual controls, on the form), although it can also be used without LCL (we have our own TCastleWindow).
    • The engine is open-source, license is modified LGPL (same license as FPC RTL and Lazarus LCL), so you can make both open- and closed-source games with it.
    • More features listed on engine page found here.



    Have fun! We welcome people that want to use our engine, and/or want to contribute to it of course. If you want to make a game using our engine, give it a try!
    Comments 2 Comments
    1. Ingemar's Avatar
      Ingemar -
      It looks very nice. How is portability? Is it tightly connected to Lazarus or can other development systems be used?
    1. michalis's Avatar
      michalis -
      How is portability?
      It's basically portable to any modern system having OpenGL. The code is 100% clean Object Pascal (no assembler etc.). Actually tested on Linux, Windows, Mac OS X, FreeBSD, both 32-bit and 64-bit (i386 and x86_64). Porting it to anything similar (like any modern Unix supported by FPC) should be trivial.

      Port to Android is also possible and planned. We use a modern subset of OpenGL, so it's designed to run also on OpenGL ES, so an Android port will definitely happen some day. But there are various issues to actually test and finish things for Android. Same for iOS (iPhone etc.).

      Is it tightly connected to Lazarus or can other development systems be used?
      We do have components that you can place on Lazarus form, in particular TCastleControl.

      We also have our own class (not depending on Lazarus LCL) to create a window for games, TCastleWindow. You can use it without Lazarus/LCL, only pure FPC installation is needed.

      Basically, you can use whichever you prefer (TCastleControl with Lazarus form, or TCastleWindow without any Lazarus dependencies, you could also make a custom OpenGL context using whatever method you want). And from there, you can use the engine in the same way (all these methods give you an OpenGL context where you can place OpenGL-drawn 2D controls and scene manager and so on).

      See the tutorial, in particular section about creating OpenGL context