Sign in Join
Wiki copytemporary

Choosing a Game Engine: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Choosing a Game Engine

OldNewLine
1+## ZGameEditor
2+
3+**Website:** <http://www.zgameeditor.org/>
4+
5+This game builder is created using Delphi and its game scripting language is very similar to Pascal (a simplified version of Pascal). Pascal lovers should check this one first. I managed to create a simple vertical scrolling spaceship game in the first few hours of my trying it.
6+
7+| Advantages | Disadvantages |
8+|----|----|
9+| Multi platform support: Windows, Linux, macOS, Android | The editor runs on Windows only |
10+| Can create both 2D and 3D games | Requires some programming skills |
11+| Can create Windows screensavers | |
12+| Easy to use built-in audio synthesizer | |
13+| The generated stand-alone executable is very small | |
14+| Its scripting language is very similar to Pascal | |
15+
16+## Castle Game Engine
17+
18+**Website:** <https://castle-engine.io/>
19+
20+A powerful Pascal game engine for FPC/Lazarus and Delphi.
21+
22+- For 3D and 2D games.
23+
24+- Supports a lot of model formats, like glTF, X3D, Spine, sprite sheets etc.
25+
26+- The engine has a [visual editor for games](https://castle-engine.io/manual_editor.php) and command-line build tool.
27+
28+- Editor allows to start making games from easy templates (click "New Project" in the editor and you will have a working 3D or 2D game, that instantly builds for all platforms).
29+
30+- A lot of [examples](https://github.com/castle-engine/castle-engine/tree/master/examples), [documentation](https://castle-engine.io/manual_intro.php), [videos](https://www.youtube.com/c/CastleGameEngineX3d).
31+
32+| Advantages | Disadvantages |
33+|----|----|
34+| Multi platform support: Windows, Linux, FreeBSD, macOS, Android, iOS, Nintendo Switch | Requires good programming skills in Pascal |
35+| Import models form many formats, graphics effects, physics, AI, etc | |
36+| Can create both 2D and 3D games | |
37+| Good demos and documentation | |
38+
39+## GLScene
40+
41+**Website:** <http://glscene.sourceforge.net/wikka/>
42+
43+This 3D graphics library is very powerful. I thought I'd build some cool 3D games and applications using it. Unfortunately their development focus is mainly on Windows. I monitored it for years but there was not much progress for Linux. It didn't run well on my Linux computer so I abandoned it.
44+
45+| Advantages | Disadvantages |
46+|----|----|
47+| Multi platform support: Windows, Linux, macOS | Focus is mainly on Windows |
48+| Full featured 3D graphics engine | Does not run well on Linux |
49+| Good demos | Where is the documentation? |
50+| Zero deployment setup | Requires good programming skills in Pascal |
51+
52+## Allegro.pas
53+
54+**Website:** [[FPC and Allegro]]
55+
56+Allegro.pas is a wrapper for the Allegro game framework. Learning a game framework is hard, luckily the official website of Allegro provides detailed documentation so learning it is relatively easy. After only a few days learning it, I managed to create my demo game Furious Paladin.
57+
58+Furious Paladin's binary: <http://graphicslearning.com/furious-paladin-tutorials/>
59+
60+And this is the source code: <https://sourceforge.net/p/allegro-pas/code/HEAD/tree/TRUNK/demos/>
61+
62+| Advantages | Disadvantages |
63+|----|----|
64+| Multi platform support: Windows, Linux, macOS, iPhone, Android | Relies on OpenGL or Direct3D to create full 3D games |
65+| Audio, font, video playback, some 3D basic drawing, joystick, keyboard, physics | How do you use Allegro.pas to create Android games? |
66+| Detailed documentation | Requires good programming skills in Pascal |
67+
68+## Simple Directmedia Library
69+
70+**Website:** [[FPC and SDL]]
71+
72+I never really tried it. But I know a kid (who was a member here) created a simple 2D horizontal scrolling game using FPC + SDL only weeks of learning it. Read more about [[FPC and SDL|SDL here]]
73+
74+## nxPascal
75+
76+**Website:** [[nxPascal]]
77+
78+Not as famous as the others and it lacks of documentation. But it has potential. Read more in the Forums: <https://forum.lazarus.freepascal.org/index.php/topic,35313.msg253463.html#msg253463>
79+
80+## BGRABitmap or TCanvas
81+
82+If you want to create simple 2D games like Tetris, Snake, Pong, Arkanoid, TCanvas and BGRABitmap is totally capable of doing it. I wrote a 2D scrolling spaceship game using only TCanvas line drawing and it's working well. I then tried to switch the graphics library to use BGRABitmap, it works. Any TCanvas program can easily switch to using BGRABitmap, which offers more graphics features. Read more:
83+
84+- <https://lazarus-ccr.sourceforge.io/docs/lcl/graphics/tcanvas.html>
85+- [[TCanvas]]
86+- [[BGRABitmap]]
87+- [[BGRABitmap tutorial]]
88+
89+| Advantages | Disadvantages |
90+|----|----|
91+| Multi platform support: Windows, Linux. macOS | |
92+| Relatively simple and easy to learn than the others | They handle graphics only |
93+| BGRABitmap can draw simple 3D objects | Not suitable for graphics intensive games |
94+| Zero deployment setup | Requires good programming skills in Pascal |
95+
96+## LAMW + jCanvasES2
97+
98+I am now exploring the possibility of creating Android games using LAMW + jCanvasES2. I already managed to create my Windows/Linux 2D graphics engine using OpenGL. Maybe I'm too ambitious, I want it to also run on Android. LAMW + jCanvasES2 is the combination to make Lazarus produce Android binaries that allow us to use OpenGL ES2. Unfortunately, it crashes too often. I'm examining it, hope I can fix the crashes.
99+
100+## Acknowledgement
101+
102+This content was extracted from [Handoko's](https://forum.lazarus.freepascal.org/index.php?action=profile;u=39078) post in the [Games sub-forum](https://forum.lazarus.freepascal.org/index.php/topic,44855.msg315698.html#msg315698). Some minor grammar edits have been made and formatting added.
103+
104+Note: *Castle Game Engine* section have been edited by Michalis ([[User talk:Michalis|talk]]), because the original content was outdated IMHO. It was praising the engine but also saying CGE is only a *game framework*. Since the original post was written, CGE got visual editor, new templates that build out-of-the-box for all platforms, lots of videos and introductory documentation... I feel CGE is now a great game engine, suitable also for beginners, too. You're welcome to challenge me on this, just try CGE :)
105+
106+---
107+*From the Free Pascal wiki, page "Choosing a Game Engine", as it stood on 2022-01-30 after a change by Michalis, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
108+Category: Game Development
109+Category: Games

Back to history