Forum > Games
How does Castle Game Engine compare with engines like Unity, Godot and Unreal?
vfclists:
I assume it may not be on the level as Unity and Unreal, but is it comparable to Godot?
FWIW I don't know much about the gaming scene and not in a position to make any meaningful judgments.
What other engines are there with good pascal compatibilitiy?
Eugene Loza:
Well, I must admit most likely I'll be very biased - I program in Pascal since mid-90s, plus myself have made a few small contributions to Castle Game Engine. But personally for me "the same feature" takes roughly twice less time to implement in Pascal/Castle Engine than in C#/Unity3D. It even sounds like a joke: after work I return to my hobby project in CGE and I get genuinely surprised that I don't have to wait for 1-2 seconds after each click in Editor and don't have to wait for 20 seconds after switching from code editor to Editor.
Of course the amount of features may not be as impressive, lacking Asset Store and a huge number of tutorials in the first place, or some platform/OS-specific tools like AR Foundation or DirectX renderer. But as an inartistic programmer I make more logic-heavy games, and currently mostly in 2D, and up to now Castle Engine has only benefits compared to Unity for my hobby projects. Personally for me it's important to "be in control" - with both CGE and Pascal offer me both high-level and low-level tools equally conveniently.
I'm not familiar with Godot engine or Unreal, so cannot compare those. One big recent feature of Godot is an Editor that runs on Android devices, not sure of its capabilities but this fact alone is very impressive.
As for Pascal engines, unfortunately I didn't try any of those myself, but the first one that comes to my mind is GL Scene; I believe it is no longer under active development. Some time ago there was also Terra Engine, but to my knowledge it is now abandoned. I see several active topics on this forum dedicated to ZenGL, seems like it's a 2D-only engine. There is also Apus Engine - in active development.
I also believe there are good Pascal headers available for some popular game development frameworks, like SDL2 and Allegro. That's on top of the fact that depending on the game genre even bare FPC can be used for game development (true roguelikes use ASCII for graphics :)) or some bigger components like BGRA can be used for game development without any additional engines, if the game doesn't require more complex features.
michalis:
( Disclaimer: I'm the author / project lead of Castle Game Engine, and it's practically a project of my life, so naturally I'm not objective :) But I'll try to be objective, and actually point out some bigger missing things in CGE -- and what do we plan to do do address them. )
Some relevant links:
* List of CGE features: https://castle-engine.io/features .
While it's a long list :), it also implies some things we lack in CGE compared to some others.
Looking at platforms: In CGE we support a lot of platforms (desktops - Windows, Linux, FreeBSD, macOS, mobile - Android, iOS, consoles - Nintendo Switch), but not everything.
E.g. VR platforms, WebGL, consoles like XBox and PS. We have plans to add all these platforms, see e.g. Web plans, Oculus post, I also own now both Xbox and PS5 dev kits (and I have knowledge how I did the port to Nintendo Switch).
On the upside, in regards to platforms, CGE supports fully Raspberry Pi, Pine64 products based on Aarch64, and generally we put quite some effort to support even rather old hardware. Not all other engines support them :) That's of course thanks to FPC supporting them without any issue.
* Our roadmap also contains a number of TODOs of CGE too. Some of those are already present in other engines.
* We have a documentation Castle Game Engine Overview For Unity Developers that outlines some correspondence (and some differences) between Unity and CGE API. Long story short, there are quite a lot of differences, but also at a high level we do expose a similar feature set. We are both "general" game engines (for any kind of 2D, 3D game), we both feature an editor, in both our cases you need to actually do some coding in OOP language to achieve anything non-trivial.
( Though e.g. Unity is pushing much more the number of things you can do "without coding", with https://unity.com/features/unity-visual-scripting . Same with Unreal and blueprints. We don't have such thing in CGE. Maybe one day -- but that's a more distance future. For sure, for a long time, you will need to know Pascal to do anything non-trivial. But practically, that's also how it is in Unity in my experience -- almost all Unity projects I've seen rely on C# coding, there's limit to what you can (reasonably) do by just clicking in the editor. )
* We don't have an equivalent of asset store / packages for CGE. Our closest equivalent are
* Additional Components page, manually maintained now
* Sketchfab integration, to easily download gfx assets from Sketchfab
* List of sites with open-source gfx assets you can just download and use in CGE projects. We focus a lot of standard formats (glTF,X3D) so a lot of "stuff on the Internet" can be just used with CGE.
Note: I'm speaking about CGE at some conferences, https://castle-engine.io/conferences . I think my recording from GIC 2022 presents nicely a bit of my "world view" -- https://www.youtube.com/watch?v=Ad3UywYyRGU , why we develop "yet another game engine", what are the challenges and gains :)
Handoko:
I tried both Castle Game Engine and Godot but that was long ago. Things have changed, as Castle Game Engine has been improved fast, many new features have added recently. But still, I believe Godot is much better.
Castle Game Engine's features summary:
* Windows, Linux, macOS, FreeBSD, Raspberry Pi, Android, iOS, Nintendo Switch ... checked.
* glTF, X3D, sprite sheets, Spine ... checked.
* Text, fonts, shaders, bump mapping, animation blendind/cross-fading, physically-based rendering, shadow maps, shadow volumes, gamma correction, fog, occlusion culling, OpenGL ES 3.0 ... checked.
* Visual editor, networking, sound, physics, particles ... checked.
* Optimization and profiling, native and fast code using modern Pascal, build tool ... checked.Those sound impressive, right? But this was my experience with Godot:
My experience with Godot
I downloaded and tried Godot. I opened one of their sample project, that was a 3rd person isometric-view demo, something similar to Diablo. It run without any issue on my Linux computer. I followed the instruction to download/install an extension for exporting the project to Android. With some clicks that project that run on Linux now run on my Android phone. Cross-platform, screen resolution/aspect/orientation and all the headache issues that a game programmer needs to solve, all had been handled by Godot. That was really jaw-dropping.
--- Quote from: vfclists on February 21, 2024, 09:38:57 pm ---What other engines are there with good pascal compatibilitiy?
--- End quote ---
As far as I know Godot invented their own scripting language and there is no Pascal extension available. If one is good in Pascal language, Castle Game Engine should be a good choice.
And these are less-featured options:
GLScene
It can be installed on Lazarus using Online Package Manager. I tried it, no complaint about the engine. Unfortunately more than half of the demos couldn't run on Linux, mostly because file-naming issues. It is clear GLScene's developers are using Windows.
ZenGL
This project had been halted for a while. A fellow in the forum, made many improvements recently. It can be used to build Android games, of course the steps for generating Android binaries aren't so easy compare to Godot. ZenGL currently has no 3D support. ZenGL started as 2D engine but recent versions now have full functionality of OpenGL/ES.
https://forum.lazarus.freepascal.org/index.php/topic,66337.msg508286.html#msg508286
Allegro.pas
I tried it, it had no 3D feature. The documentation was impressive. If you're good in Pascal, you should have no problem using it. After days of studying it, I was able to create Furious Paladin:
https://forum.lazarus.freepascal.org/index.php/topic,35313.msg253114.html#msg253114
SDL
I haven't tried it. But I know a member here, who was 13 if I remember correctly, could make simple game using Pascal+SDL, which is similar to Google's Dinosaur Game after days of studying it.
Not popular but it is worthwhile to mention:
ZGameEditor
It is built using Delphi and their scripting language is very Pascal-like, maybe it uses PascalScript.
nxPascal
It's development is slow but their demos look good.
https://wiki.freepascal.org/Choosing_a_Game_Engine#nxPascal
speter:
Handoko, very interesting, thanks!
You gave a feature summary of CGE; could you please do the same for Godot!?
Also, why do you believe Godot is much better than CGE!? From your text it sounds like you found it easier to use, is that your view?
cheers
S.
Navigation
[0] Message Index
[#] Next page