Difference between revisions of "Game Engine"

From Lazarus wiki
Jump to navigationJump to search
(48 intermediate revisions by 20 users not shown)
Line 1: Line 1:
== Overview ==
+
{{Game_Engine}}
A game engine is a library that simplifies creation of games. It could include any and all functionality from the following:
+
{{Menu_Game_Development}}
* just creating easy-to-use wrappers over system interfaces such as graphics API
 
* user control inputs and audio (SDL, ZenGL)
 
* adding additional interfaces to create and control the game content environment (as e.g. done by Castle Game Engine)
 
  
[http://en.wikipedia.org/wiki/Game_engine You can read more here]
+
A '''game engine''' is a software development environment designed to create [[Games|games]].  It distinguish from [[Game framework|game libraries]] in that:
 +
* Implements the ''game loop'', resource managers and other complex subsystems as networking communications, user interfaces and configuration systems.
 +
* Implements complex data structures, such as maps, particle systems and actors.
 +
* Implements tools as editors and data managers.
 +
All these subsystems would affect in gameplay aspects as movement, scoring or even genre. You can read this [http://en.wikipedia.org/wiki/Game_engine Wikipedia page] for more information.
  
 
== Game Engines ==
 
== Game Engines ==
Line 15: Line 16:
 
! Usage
 
! Usage
 
! Notes
 
! Notes
|-
 
| [[FPC_and_SDL|SDL]]
 
| [http://www.libsdl.org www.libsdl.org]
 
| Bindings
 
|
 
|-
 
| [[SDL2]]
 
| [http://sourceforge.net/projects/sdl2fpc/?source=directory sdl-2-for-free-pascal-compiler]
 
| FPC
 
|
 
|-
 
| [[GLScene]]
 
| [http://glscene.sourceforge.net/ sourceforge.net]
 
| FPC/Delphi
 
| It's not really a game engine, but rather 3D rendering engine.
 
 
|-
 
|-
 
| [[Castle Game Engine]]  
 
| [[Castle Game Engine]]  
| [http://castle-engine.sourceforge.net/ sourceforge.net]
+
| [https://castle-engine.io/ castle-engine.io]  
| FPC
 
|
 
|-
 
| [[ZenGL]]
 
| [http://www.zengl.org/ www.zengl.org]  
 
 
| FPC/Delphi
 
| FPC/Delphi
|
+
| 2D & 3D, all platforms supported
 
|-
 
|-
 
| Quad-Engine
 
| Quad-Engine
 
| [http://quad-engine.com/ quad-engine.com]  
 
| [http://quad-engine.com/ quad-engine.com]  
 
| Delphi/FPC/C#/C++
 
| Delphi/FPC/C#/C++
|  
+
| v0.9.0 (Diamond) 2018-01-15
 
|-
 
|-
 
| TERRA Game Engine  
 
| TERRA Game Engine  
| [https://github.com/Relfos/TERRA-Engine github.com/Relfos/TERRA-Engine]
+
| [https://github.com/Relfos/TERRA-Engine GitHub]
 
| Delphi/FPC/Oxygene
 
| Delphi/FPC/Oxygene
 
| 2D & 3D, all platforms supported
 
| 2D & 3D, all platforms supported
 +
|-
 +
| [http://www.tilengine.org Tilengine]
 +
| [https://github.com/turric4n/PascalTileEngine GitHub]
 +
| FPC/Delphi OOP Pascal Wrapper and bindings
 +
| Cross-platform 2D graphics engine for creating classic/retro games with tilemaps, sprites and palettes. Last update May 2020.
 
|-
 
|-
 
| [[nxPascal]]
 
| [[nxPascal]]
| [https://github.com/Zaflis/nxpascal github.com]
+
| [https://github.com/Zaflis/nxpascal GitHub]
 
| FPC/Delphi
 
| FPC/Delphi
|
+
| For now only OpenGL is supported. No android or other mobile support yet.
 
|-
 
|-
| Dan Jet X
+
| g2mp
| [http://wiki.mirgames.ru/danjetx wiki.mirgames.ru/danjetx] (Rus)
+
| [https://github.com/MrDan2345/g2mp GitHub]
| Delphi
+
| FPC
| Alive?
+
| Ideologically replaced Dan Jet X, multiplatform, editor- and code-based development
 
|-
 
|-
 
| Andorra 2D
 
| Andorra 2D
| [http://andorra.sourceforge.net/ sourceforge.net]
+
| [http://andorra.sourceforge.net/ SourceForge]
 
| Delphi
 
| Delphi
|  
+
| Last update 2008
 
|-
 
|-
 
| CAST II Game Engine
 
| CAST II Game Engine
| [http://www.casteng.com/ http://www.casteng.com/]
+
| [http://www.casteng.com/ www.casteng.com]
 
| Delphi
 
| Delphi
 
| Alive? last update 2011
 
| Alive? last update 2011
Line 80: Line 66:
 
| FPC/Delphi
 
| FPC/Delphi
 
|  
 
|  
|-
 
| Allegro
 
| [http://alleg.sourceforge.net/ sourceforge.net]
 
| [http://allegro-pas.sourceforge.net/ Bindings Allegro-pas]
 
|
 
|-
 
| Phoenix
 
| [https://code.google.com/p/phoenixlib/ code.google.com]
 
| FPC/Delphi
 
|
 
 
|-
 
|-
 
| Brtech1
 
| Brtech1
Line 99: Line 75:
 
| [http://www.yoyogames.com/ www.yoyogames.com]  
 
| [http://www.yoyogames.com/ www.yoyogames.com]  
 
| N/A  
 
| N/A  
| Yes, it's not really a game engine library. But it's a game engine and studio written in Delphi. Special Pascal proud.  
+
| Yes, it's not really a game engine library. But it's a game engine and studio written originally in Delphi. Special Pascal proud.
 +
|-
 +
| MinGRo
 +
| [https://www.sf.net/p/mingro SourceForge]
 +
| FPC
 +
| Designed for old-school style games.  Still work in progress.  Build with [[FPC_and_Allegro|Allegro.pas]].
 
|-
 
|-
 
| ZGameEditor
 
| ZGameEditor
 
| [http://www.zgameeditor.org/ www.zgameeditor.org]  
 
| [http://www.zgameeditor.org/ www.zgameeditor.org]  
 
| FPC/Delphi
 
| FPC/Delphi
|  
+
| use OpenGL for graphics and a real time synthesizer for audio
|}
+
|-
 
+
| SO Engine
==Pascal Ported Games==
+
| [https://github.com/dimsa/ShadowEngine GitHub]
This list contains ported games and libraries. Licenses vary.
+
| Delphi/FMX
{| class="wikitable sortable" width="100%"
+
| Small Crossplatform (Win, Android, iOs) indy engine with formatters, animations, intersections and etc.
! Name
+
|-
! Site
+
| DGLE
! Usage
+
| [https://github.com/DGLE-HQ/DGLE GitHub]
! Notes
+
| Delphi/FPC/C#/C++
 +
| Powerful free open source cross-platform game engine.
 +
|-
 +
| raylib
 +
| [https://github.com/tazdij/raylib-pas GitHub]
 +
| FPC
 +
| A simple and easy-to-use raylib library
 
|-
 
|-
| Delphi Doom
+
| PGF
| [http://sourceforge.net/projects/delphidoom/ Delphi Doom]
+
| [https://github.com/GuvaCode/PGF GitHub]  
| Delphi
+
| FPC/Lazarus
| Feeling nostalgia :)
+
| The Phoenix Game Framework is a set of classes for helping in the creation of 2D and 3D games in pascal.
|-
 
| Quake to Delphi
 
| [http://sourceforge.net/projects/delphiquake/ Sourceforge]
 
[http://www.geocities.ws/jimmyvalavanis/applications/delphiquake.html Old Version]
 
| Delphi
 
| Sourcefoge is the active one. The old-site appears to be quite dead now. Though the source code can still be downloaded.
 
 
|-
 
|-
| Quake II Delphi  (Quake 2 Delphi)
+
| ZenGL
| [http://www.sulaco.co.za/quake2/default.asp www.sulaco.co.za] [http://sourceforge.net/projects/quake2delphi/ sourceforge.net]
+
| [http://www.zengl.org ZenGL] [https://github.com/goldsmile/zengl GitHub mirror] [https://github.com/Seenkao/New-ZenGL A new version]
| Delphi
+
| FPC/Lazarus/Delphi
|  
+
| Cross-platform game development library written in Pascal.
 
|-
 
|-
| Civilization 2
+
| Apus Game Engine
| [http://www.c-evo.org/ www.c-evo.org]
+
| [https://github.com/Cooler2/ApusGameEngine GitHub]
| Delphi
+
| FPC/Delphi
| It was spotted on [http://forum.lazarus.freepascal.org/index.php/topic,7914.0.html the forum] back in 2009. The engine used is not the original Civilization II engine. So as long as graphical resources are different, it's quite good TBS engine.
+
| 2D (with some 3D effects) engine
|}
 
 
 
==Games==
 
Games written with Free Pascal. Currently active projects commercial, closed or open source. Some more [[Projects_using_Lazarus#Games|here]].
 
 
 
{| class="wikitable sortable" width="100%"
 
! Name
 
! Site
 
! Open Source
 
! Notes
 
|-
 
| Darkest Before the Dawn
 
| http://castle-engine.sourceforge.net/darkest_before_dawn.php [https://play.google.com/store/apps/details?id=net.sourceforge.castleengine.darkestbeforedawn Google Play (Android version)]
 
| {{Yes}}
 
|
 
|-
 
| Castle
 
| http://castle-engine.sourceforge.net/castle.php
 
| {{Yes}}
 
|
 
|-
 
| Diablo Roguelike
 
| [http://diablo.chaosforge.org/ doom.chaosforge.org] [http://sourceforge.net/projects/diablorl/ Sourceforge.net]
 
| {{Yes}}
 
|
 
|-
 
| Doom Roguelike
 
| [http://doom.chaosforge.org/ doom.chaosforge.org]
 
| {{No}}
 
|
 
 
|-
 
|-
| HedgeWars
+
| Ray4Laz
| [http://www.hedgewars.org/ www.hedgewars.org]
+
| [https://github.com/GuvaCode/Ray4Laz GitHub]
| {{Yes}}
+
| FPC/Lazarus
|
+
| is a simple and easy-to-use library to enjoy videogames programming
|-
 
| Project "W"
 
| [http://www.pascalgamedevelopment.com/showthread.php?3594-Projekt-quot-W-quot PascalGameDevelopment.com ]
 
| {{No}}
 
|
 
|-
 
| Scrabble 3D
 
| [http://sourceforge.net/projects/scrabble/ sourceforge.net]
 
| {{Yes}}
 
|
 
|-
 
| UltraStar Deluxe
 
| [http://sourceforge.net/projects/ultrastardx/ sourceforge.net]
 
| {{Yes}}
 
|
 
|-
 
| Minimon 3D
 
| [http://www.minimon3d.com http://www.minimon3d.com]
 
| {{No}}
 
|
 
|-
 
| Shu
 
| [http://sourceforge.net/projects/rr-rr sourceforge.net]
 
| {{Yes}}
 
| Interesting looking RPG - in progress
 
|-  
 
| Project Helena
 
| [https://sourceforge.net/projects/projecthelena/ sourceforge.net]
 
| {{Yes}}
 
| A game by Eugene Loza
 
 
|}
 
|}
  
Line 211: Line 132:
 
|-
 
|-
 
| TundAx
 
| TundAx
| [https://github.com/JordiCorbilla/thundax-delphi-physics-engine github.com]
+
| [https://github.com/JordiCorbilla/thundax-delphi-physics-engine GitHub]
 
| FPC/Delphi
 
| FPC/Delphi
 
|  
 
|  
Line 221: Line 142:
 
|-
 
|-
 
| Box2D-Delphi
 
| Box2D-Delphi
| [https://code.google.com/p/box2d-delphi/ code.google.com]  
+
| [https://sourceforge.net/projects/box2d-delphi/ SourceForge]  
 
| FPC/Delphi
 
| FPC/Delphi
| This is Delphi implementation of [http://code.google.com/p/box2d/ Box2d] library
+
| This is Delphi implementation of [https://github.com/erincatto/Box2D Box2D] library.
 
|-
 
|-
 
| Kraft
 
| Kraft
| [https://github.com/BeRo1985/kraft github.com]
+
| [https://github.com/BeRo1985/kraft GitHub]
 
| FPC/Delphi
 
| FPC/Delphi
| Pascal native physics engine by Benjamin Rosseaux.  
+
| Pascal native physics engine by Benjamin Rosseaux.
|-
 
| PAPPE - PAscal Powerful Physics Engine
 
| [https://sourceforge.net/projects/pappe/ sourceforge.net]
 
| FPC/Delphi
 
| Pascal native physics engine by Benjamin Rosseaux. The engine was deprecated by Kraft
 
 
|}
 
|}
 
 
[[Category:Games]]
 
[[Category:Multimedia]]
 
[[Category:Comparisons]]
 
[[Category:Game Development]]
 
[[Category:Libraries]]
 

Revision as of 17:29, 24 September 2022

English (en) français (fr)

Game Development

A game engine is a software development environment designed to create games. It distinguish from game libraries in that:

  • Implements the game loop, resource managers and other complex subsystems as networking communications, user interfaces and configuration systems.
  • Implements complex data structures, such as maps, particle systems and actors.
  • Implements tools as editors and data managers.

All these subsystems would affect in gameplay aspects as movement, scoring or even genre. You can read this Wikipedia page for more information.

Game Engines

Here's a list of game engines that are Pascal/Delphi based or have Pascal binding libraries.

Name Site Usage Notes
Castle Game Engine castle-engine.io FPC/Delphi 2D & 3D, all platforms supported
Quad-Engine quad-engine.com Delphi/FPC/C#/C++ v0.9.0 (Diamond) 2018-01-15
TERRA Game Engine GitHub Delphi/FPC/Oxygene 2D & 3D, all platforms supported
Tilengine GitHub FPC/Delphi OOP Pascal Wrapper and bindings Cross-platform 2D graphics engine for creating classic/retro games with tilemaps, sprites and palettes. Last update May 2020.
nxPascal GitHub FPC/Delphi For now only OpenGL is supported. No android or other mobile support yet.
g2mp GitHub FPC Ideologically replaced Dan Jet X, multiplatform, editor- and code-based development
Andorra 2D SourceForge Delphi Last update 2008
CAST II Game Engine www.casteng.com Delphi Alive? last update 2011
Delphi X www.micrel.cz/Dx Delphi
Afterwarp www.afterwarp.net FPC/Delphi
Brtech1 PascalGameDevelopment.com FPC Not really available as an engine or library. Many videos can be found on youtube though.
GameMaker: Studio www.yoyogames.com N/A Yes, it's not really a game engine library. But it's a game engine and studio written originally in Delphi. Special Pascal proud.
MinGRo SourceForge FPC Designed for old-school style games. Still work in progress. Build with Allegro.pas.
ZGameEditor www.zgameeditor.org FPC/Delphi use OpenGL for graphics and a real time synthesizer for audio
SO Engine GitHub Delphi/FMX Small Crossplatform (Win, Android, iOs) indy engine with formatters, animations, intersections and etc.
DGLE GitHub Delphi/FPC/C#/C++ Powerful free open source cross-platform game engine.
raylib GitHub FPC A simple and easy-to-use raylib library
PGF GitHub FPC/Lazarus The Phoenix Game Framework is a set of classes for helping in the creation of 2D and 3D games in pascal.
ZenGL ZenGL GitHub mirror A new version FPC/Lazarus/Delphi Cross-platform game development library written in Pascal.
Apus Game Engine GitHub FPC/Delphi 2D (with some 3D effects) engine
Ray4Laz GitHub FPC/Lazarus is a simple and easy-to-use library to enjoy videogames programming

Physics Engines

These engines simulate the physical world (collisions, trajectories etc). Not really game engines per se, but could certainly be used in games.

Name Site Usage Notes
TundAx GitHub FPC/Delphi
Newton www.saschawillems.de Bindings
Box2D-Delphi SourceForge FPC/Delphi This is Delphi implementation of Box2D library.
Kraft GitHub FPC/Delphi Pascal native physics engine by Benjamin Rosseaux.