I wrote a vertically scrolling space shooter game for Game Contest 2018 unfortunately I can't finish it on the deadline. It only uses TCanvas drawing feature, it has no problem running on my 10 years old Dual Core laptop. Computers nowadays run very fast, you don't need hardware-accelerated graphics library for simple games.
For simple games, you can use
TCanvas:
- Very easy to use
- Zero deployment setup
- Slow, not suitable for graphics intensive games
http://wiki.lazarus.freepascal.org/TCanvasAfter you understand how to use TCanvas, you may want to try
BGRABitmap:
- You can switch to BGRABitmap from TCanvas easily
- CanvasBGRA is slower than TCanvas, but some features are much faster
- Has lots more features than TCanvas
- Zero deployment setup
http://wiki.freepascal.org/BGRABitmapGraphics32 and
Fast Direct Pixel Access:
- Fast
- Zero deployment setup
- A bit difficult for beginners
https://github.com/graphics32http://wiki.freepascal.org/Fast_direct_pixel_accessAllegro.pas- Very fast because it is hardware accelerated
- Offer more than graphics: joystick, keyboard, audio, physics, etc
- Detailed documentation provided by Allegro official website
- Relatively easy to learn because of the detailed documentation
- Need some extra work for deployment your games
http://allegro-pas.sourceforge.net/introduction.phphttps://liballeg.org/api.htmlnxPascal:
- Lightweight but powerful
- Very fast because it is hardware accelerated
- I can't find the documentation nor tutorials
http://wiki.freepascal.org/nxPascalGLScene:
- Very fast because it is hardware accelerated
- Not suitable for 2D application
- Zero deployment setup
http://wiki.freepascal.org/GLSceneCastle Game Engine:
- Probable the most feature-rich
- 2D, 3D, Android, iOS, Web, physics, AI, etc
- Very fast because it is hardware accelerated
https://castle-engine.io/features.phpOpenGL and
DirectX:
- The fastest and the hardest
- Don't use it unless you want to write your own graphics engine
http://wiki.freepascal.org/OpenGL_Tutorialhttp://wiki.freepascal.org/FPC_and_DirectXFor beginners, here has detailed explanations how to write a simple snake game using TCanvas:
http://forum.lazarus.freepascal.org/index.php/topic,38136.msg258381.html#msg258381