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
| Old | New | Line | |
|---|---|---|---|
| 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 |
