Forum > Games
Programming games in Pascal - FAQ
Paul_:
Libraries/Framework - "All what do you need for creating application under OS with OpenGL/DirectX support, loading and drawing graphics, text, playing sounds, videos, timers, networking, game physics etc."
Game engine - "Framework + game loop + texture and sound managers + own tools for 3D modeling, creating scenes, fonts, particle editors.."
Game engines: (Pascal)
Castle Game Engine (OOP) - https://castle-engine.sourceforge.io/
Info: The free open-source 3D and 2D game engine using modern Object Pascal!
Status: under development
NxPascal - https://github.com/Zaflis/nxpascal
Info: nxPascal is a free 3D game engine that tries to remain lightweight and portable.
Status: ?
Mingro - https://sourceforge.net/projects/mingro/
Info: An old-school game engine, much like good old ID and Apogee games as Duke Nukem, Commander Keen and Biomenace,
slightly inspired by Diana Gruber's "Action Arcade Adventure Set". Made with Allegro.pas and programmed in Pascal.
Status: under development
ZenGL (Structured) - http://www.zengl.org/download.html, http://www.zengl.org/forum/
https://code.google.com/archive/p/zengl/
Info: Cross-platform game development library written in Pascal, designed to provide necessary functionality for rendering 2D-graphics,
handling input, sound output, etc.
Status: Project is stopped, but author (Andru) is answering questions on forum
Frameworks:
Allegro - Bindings - http://liballeg.org/ (C)
http://allegro-pas.sourceforge.net/
Info: Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows,
accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform.
Status: maintained
Asphyre - http://asphyre.net/products/pxl (Pascal)
Info: Platform eXtended Library (PXL) is a cross-platform framework for developing 2D/3D video games, interactive and scientific applications. It aids the developer with mathematics,
hardware control, resource management, displaying real-time graphics and text, handle user input and network communication capabilities.
Status: under development
BGRABitmap - https://bgrabitmap.github.io/ (Pascal, LCL)
Info: BGRABitmap is a package designed to modify and create images with transparency. Direct pixel access allows fast image processing. The library has been tested on Windows, Ubuntu and Mac.
Status: under development
SDL2 - bindings - https://www.libsdl.org/ (C)
https://github.com/ev1313/Pascal-SDL-2-Headers
https://sourceforge.net/projects/lazsdl2/
Info: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick,
and graphics hardware via OpenGL and Direct3D.
Status: maintained
SFML - bindings - https://www.sfml-dev.org/ (C++)
CSFML-FPC (Structured) - https://github.com/DJMaster/csfml-fpc, https://forum.lazarus.freepascal.org/index.php/topic,33877.0.html
Status: maintained
PasSFML (OOP) - https://github.com/CWBudde/PasSFML, https://forum.lazarus.freepascal.org/index.php/topic,39209.0.html
Info: SFML provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications.
It is composed of five modules: system, window, graphics, audio and network.
Status: maintained
Next engines or frameworks:
Bare game - https://www.baregame.org/#topic_welcome (Lazarus / FPC)
TERRA Engine - https://github.com/Relfos/TERRA-Engine (Object Pascal)
Luna Game Library - http://www.pascalgamedevelopment.com/showthread.php?32560-Luna-Game-Library-Simple-amp-Elegant-Game-Programming (Delphi)
Bigger games with source code:
Knights & Merchants Remake - https://github.com/Kromster80/kam_remake (Full game, Delphi)
Hedgewars - http://www.hedgewars.org/download.html (Full game, FPC)
Pascal related links:
Why use Pascal - http://wiki.freepascal.org/Why_use_Pascal
FPC Wiki - http://wiki.freepascal.org/Game_Engine
PGD - http://www.pascalgamedevelopment.com/forum.php
Universal sources based on gamedev:
Reddit - https://www.reddit.com/r/gamedev/
Gamedev.net - https://www.gamedev.net/
Indiegamer - http://forums.indiegamer.com/
Tig Source - https://forums.tigsource.com/
Stackoverflow - https://stackoverflow.com/
What is the "best"? - It depends what do you prefer.. but some hints:
* What makes sense: SDL2, SFML, Castle Game engine, maybe Allegro
* For inspiration, best from Pascal world was ZenGL - simple structure, structured source code, easy to learn, optimized. Andru made great job here
* You can also learn from all projects like nxPascal, Asphyre ..
* I recommend using frameworks which have big user base in general - SDL2, SFML, Allegro. They are documented, you can read or watch tutorials. They are used also for commercial games like Factorio (Allegro), FTL: Faster Than Light (SDL). Programming a game loop is not such a problem (I will give some example later).
* If you can render output from framework or game engine inside LCL Form it's big plus, because you can create a level editor really fast and use all features, components etc. from LCL
* With BGRABitmap you can make games inside LCL Form, it's quite accessible. On other hand it lacks performance because game loop has no priority. Anyway for simple games it does not matter, also it have OpenGL support etc.
skalogryz:
a similar page: http://wiki.freepascal.org/Game_Engine
lainz:
--- Quote from: Paul_ on December 28, 2017, 08:59:20 pm ---BGRABitmap - https://bgrabitmap.github.io/ (Pascal, LCL)
http://allegro-pas.sourceforge.net/
Info: BGRABitmap is a package designed to modify and create images with transparency. Direct pixel access allows fast image processing. The library has been tested on Windows, Ubuntu and Mac.
Status: under development
--- End quote ---
You have 2 links. Remove the allegro one.
eny:
--- Quote from: skalogryz on December 28, 2017, 09:15:15 pm ---a similar page: http://wiki.freepascal.org/Game_Engine
--- End quote ---
Yeah this is typical Wiki material.
turrican:
--- Quote from: Paul_ on December 28, 2017, 08:59:20 pm ---Libraries/Framework - "All what do you need for creating application under OS with OpenGL/DirectX support, loading and drawing graphics, text, playing sounds, videos, timers, networking, game physics etc."
Game engine - "Framework + game loop + texture and sound managers + with own tools for 3D modeling, creating scenes, fonts, particle editors"
Game engines: (Pascal)
Castle Game Engine (OOP) - https://castle-engine.sourceforge.io/
Info: The free open-source 3D and 2D game engine using modern Object Pascal!
Status: under development
NxPascal - https://github.com/Zaflis/nxpascal
Info: nxPascal is a free 3D game engine that tries to remain lightweight and portable.
Status: ?
Mingro - https://sourceforge.net/projects/mingro/
Info: An old-school game engine, much like good old ID and Apogee games as Duke Nukem, Commander Keen and Biomenace,
slightly inspired by Diana Gruber's "Action Arcade Adventure Set". Made with Allegro.pas and programmed in Pascal.
Status: under development
ZenGL (Structured) - http://www.zengl.org/download.html, http://www.zengl.org/forum/
https://code.google.com/archive/p/zengl/
Info: Cross-platform game development library written in Pascal, designed to provide necessary functionality for rendering 2D-graphics,
handling input, sound output, etc.
Status: Project is stopped, but author (Andru) is answering questions on forum
Frameworks:
Allegro - Bindings - http://liballeg.org/ (C)
http://allegro-pas.sourceforge.net/
Info: Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows,
accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform.
Status: maintained
Asphyre - http://asphyre.net/products/pxl (Pascal)
Info: Platform eXtended Library (PXL) is a cross-platform framework for developing 2D/3D video games, interactive and scientific applications. It aids the developer with mathematics,
hardware control, resource management, displaying real-time graphics and text, handle user input and network communication capabilities.
Status: ?
BGRABitmap - https://bgrabitmap.github.io/ (Pascal, LCL)
Info: BGRABitmap is a package designed to modify and create images with transparency. Direct pixel access allows fast image processing. The library has been tested on Windows, Ubuntu and Mac.
Status: under development
SDL2 - bindings - https://www.libsdl.org/ (C)
https://github.com/ev1313/Pascal-SDL-2-Headers
https://sourceforge.net/projects/lazsdl2/
Info: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick,
and graphics hardware via OpenGL and Direct3D.
Status: maintained
SFML - bindings - https://www.sfml-dev.org/ (C++)
CSFML-FPC (Structured) - https://github.com/DJMaster/csfml-fpc, https://forum.lazarus.freepascal.org/index.php/topic,33877.0.html
Status: maintained
PasSFML (OOP) - https://github.com/CWBudde/PasSFML, https://forum.lazarus.freepascal.org/index.php/topic,39209.0.html
Info: SFML provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications.
It is composed of five modules: system, window, graphics, audio and network.
Status: maintained
Pascal related links:
Why use Pascal - http://wiki.freepascal.org/Why_use_Pascal
FPC Wiki - http://wiki.freepascal.org/Game_Engine
PGD - http://www.pascalgamedevelopment.com/forum.php
Universal sources based on gamedev:
Reddit - https://www.reddit.com/r/gamedev/
Gamedev.net - https://www.gamedev.net/
Indiegamer - http://forums.indiegamer.com/
Tig Source - https://forums.tigsource.com/
Stackoverflow - https://stackoverflow.com/
What is the "best"? - It depends what do you prefer.. but some hints:
* What makes sense: SDL2, SFML, Castle Game engine, maybe Allegro
* For inspiration, best from Pascal world was ZenGL - simple structure, structured source code, easy to learn, optimized. Andru made great job here
* You can also learn from all projects like nxPascal, Asphyre ..
* I recommend using frameworks which have big user base in general - SDL2, SFML, Allegro. They are documented, you can read or watch tutorials. They are used also for commercial games like Factorio (Allegro), FTL: Faster Than Light (SDL). Programming a game loop is not such a problem (I will give some example later).
* If you can render output from framework or game engine inside LCL Form it's big plus, because you can create a level editor really fast and use all features, components etc. from LCL
* With BGRABitmap you can make games inside LCL Form, it's quite accessible. On other hand it lacks performance because game loop has no priority. Anyway for simple games it does not matter, also it have OpenGL support etc.
--- End quote ---
What about : https://github.com/Relfos/TERRA-Engine
Seems outdated but the main engine is working. Can be a good solution at all.
Navigation
[0] Message Index
[#] Next page