Recent

Author Topic: List of game frameworks, libraries to use in 2021 and beyond?  (Read 13407 times)

ddabrahim

  • New Member
  • *
  • Posts: 11
List of game frameworks, libraries to use in 2021 and beyond?
« on: October 16, 2021, 11:28:00 am »
Hi.

I'm new to Lazarus and I was wondering what are my options if I wanted to make desktop and mobile games.
I've seen the list on the wiki but many of the projects are dead, haven't been updated for years.
https://wiki.freepascal.org/Portal:Game_Development

I did find the following worth considering as they were recently updated:

Castle Game Engine
https://castle-engine.io

ApusGameEngine
https://github.com/Cooler2/ApusGameEngine

New-ZenGL
https://github.com/Seenkao/New-ZenGL

Phoenix Game Framework
https://github.com/GuvaCode/PGF

Ray4Laz (Raylib binding)
https://github.com/GuvaCode/Ray4Laz

Allegro.pas (Allegro binding)
https://github.com/niuniomartinez/allegro-pas

PascalTileEngine (TileEngine wrapper)
https://github.com/turric4n/PascalTileEngine

So I was wondering if is there any other less known framework, library, binding or wrapper that is worth considering in 2021 and beyond?
Not that I am not happy with the options above, just wondering what else is hiding out there that is actively developed and well documented before I make my choice.
I'm also happy to hear your experiences, which one would you and would you not recommend and why.

Thanks.

PierceNg

  • Sr. Member
  • ****
  • Posts: 369
    • SamadhiWeb
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #1 on: October 16, 2021, 12:31:53 pm »
There is libretro: http://www.libretro.com/
Both built and ran with RetroArch on my Ubuntu 20.04 x86_64.

The project template is a bit wonky, with Lazarus not recognizing the generated .lpi as a proper project file. Just needed some minor fixes. No game example, only a static-ish demo showing how to take input and update screen using libretro. But with libretro it is possible to get hints from games implemented in other languages.
« Last Edit: October 16, 2021, 12:39:44 pm by PierceNg »

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2020
  • Former Delphi 1-7, 10.2 user
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #2 on: October 16, 2021, 11:38:03 pm »
See that Game Development Portal on the See the Wiki.

ddabrahim

  • New Member
  • *
  • Posts: 11
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #3 on: October 17, 2021, 01:13:45 pm »
Thank you for the suggestion.

As I mentioned the list on the game dev portal is full of dead projects haven't been updated for many years. I would much prefer something that is active as of today, and the ones I listed above are the ones seems to be more alive.

Libretro is interesting though I'm not sure if I like the idea to make games to run inside some sort of VM or Emulator. But I'll consider it.

I can see the game dev portal also mention Lazarus TCanvas as a solution. Wondering how crazy the idea would be to make my own animated sprites, tiled sprites using TCanvas. But then still need a way to playback audio and not sure about keyboard and joystick input.

Eugene Loza

  • Hero Member
  • *****
  • Posts: 656
    • My games in Pascal
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #4 on: October 17, 2021, 01:23:27 pm »
I can see the game dev portal also mention Lazarus TCanvas as a solution. Wondering how crazy the idea would be to make my own animated sprites, tiled sprites using TCanvas. But then still need a way to playback audio and not sure about keyboard and joystick input.
Quite a few years ago I've made one game with TCanvas, unfortunately it's very slow to render. Got like 5-10 FPS on a tiled map (first of all because I rendered "smoke" as dozens of randomized short lines), luckily the game was turn-based, so I didn't really care about the FPS.
I'm not sure about sounds - very long time ago I think I had a successful experience with https://wiki.lazarus.freepascal.org/Multimedia_Programming#BASS in Delphi. But that was too long ago to remember for sure.
Now using Castle Game Engine and don't bother about those issues :D
My FOSS games in FreePascal&CastleGameEngine: https://decoherence.itch.io/ (Sources: https://gitlab.com/EugeneLoza)

PierceNg

  • Sr. Member
  • ****
  • Posts: 369
    • SamadhiWeb
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #5 on: October 17, 2021, 02:45:13 pm »
Libretro is interesting though I'm not sure if I like the idea to make games to run inside some sort of VM or Emulator. But I'll consider it.

Libretro is indeed interesting. It defines an API. One side of the API is the front-end, with RetroArch being the reference implementation. The front-end takes care of gamepad/keyboard input, audio/video output, and running the game loop. The back-end, which is your game, reads input from libretro's abstract input devices (receiving actual input supplied by the front-end) and writes audio/video to libretro's abstract output devices (with actual output done by the front-end). This happens every frame.

Your game, implemented in Pascal, runs as a libretro backend executed by the front-end. On x86_64 Linux and Windows, your game is built as a native DLL/so, for  loading and running by RetroArch as a native executable. (Haven't tested on Mac myself.) There is no emulator or VM involved.

Now, because of the flexibility given by libretro's front/back-end separation of duties, many game emulators have been implemented as libretro backends. There is even an Oberon-on-RISC backend.

If you are looking at publishing your games commercially, then considerations like packaging etc come into play.

Guva

  • Jr. Member
  • **
  • Posts: 82
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #6 on: October 17, 2021, 06:28:44 pm »
Afterwarp Framework v2.0.0 - SDK (April 12, 2021)
The package includes framework binaries, library files, C/C++ include header files, samples, pre-compiled sample executables, media files, tools and documentation of the API functions.
In this package Delphi and FreePascal/Lazarus headers, high-level framework wrappers, examples and related documentation are provided.

https://afterwarp.io/downloads

Seenkao

  • Hero Member
  • *****
  • Posts: 546
    • New ZenGL.
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #7 on: October 17, 2021, 09:03:48 pm »
Вам нужно определится что вы хотите делать. Если вы новичок, то лучше всего забыть о создании игр для разных систем и создавать игры для одной системы. Хотя бы для тренировки. Для понимания что происходит в игре, с какими проблемами вы столкнётесь в процессе разработки.

Всё что можно посоветовать, это используйте понятный для вас движок. Который будет прост в использовании и чтоб результат можно было увидеть достаточно быстро. Вы погасните, если начнёте вдаваться в сложные движки и сделать очень много. Всегда надо начинать с простого!
Вы можете разрабатывать игры и без игровых движков. Посредством LCL. Есть достаточно немало примеров таких игр.

Когда у вас будет достаточно опыта, тогда вы можете выбирать игровые движки. Или создавать всё самим. Почитайте Ламота когда у вас будет достаточно опыта, но и новичку эта информация будет интересна. Он написал несколько книг по созданию игр/игровых движков. Там достаточно полезная информация.

Я лично для разработок использую ZenGL. Но я его использую в своих целях и дорабатываю его. При хороших навыках с OpenGL его можно использовать чтоб не задаваться вопросом по созданию окна и контекста для него, а сразу использовать функции OpenGL. А так же дополнительные средства ZenGL.

Но это не означает, что другие движки этого не предоставляют! ZenGL позволяет создавать минимальные приложения. Этим он меня и завлёк.

Успехов!

Yandex translate:
You need to decide what you want to do. If you are a beginner, it is best to forget about creating games for different systems and create games for the same system. At least for training. To understand what is going on in the game, what problems you will face in the development process.

All that can be advised is to use an engine that is understandable to you. Which will be easy to use and so that the result can be seen quickly enough. You will burn out if you start going into complex engines and do a lot. You should always start with a simple one!
You can develop games without game engines. By means of LCL. There are quite a few examples of such games.

When you have enough experience, then you can choose game engines. Or create everything yourself. Read Lamothe when you have enough experience, but even a beginner will be interested in this information. He has written several books on creating games/game engines. There is quite useful information there.

I personally use ZenGL for development. But I use it for my own purposes and refine it. With good skills with OpenGL, it can be used so as not to ask questions about creating a window and context for it, but to immediately use OpenGL functions. As well as additional ZenGL tools.

But this does not mean that other engines do not provide this! ZenGL allows you to create minimal applications. That's what he lured me in.

Good luck!
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1186
    • Burdjia
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #8 on: October 20, 2021, 09:00:36 pm »
As Allegro.pas developer I must say that today Allegro.pas would not be the best option.  It is a bit outdated, some fixes and new stuff are in the SVN but I haven't had the time to complete it and make a new release.

I hope I can find some time soon and complete the next version some day before next year, mostly because I need it for my own projects that are on hold because Allegro.pas isn't complete.  :-[
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

ddabrahim

  • New Member
  • *
  • Posts: 11
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #9 on: October 23, 2021, 12:53:24 am »
Thank you for the replies, really appreciate it.

What platform to target is a difficult decision. I am developing on a Mac, so I would like to be able to build and test on macOS but I don't really know what platform to target. Mobile is more popular for causal games I guess but with the Steam Deck coming, Linux maybe also worth considering for a portable/mobile experience.

I don't actually plan to make a commercial game but I would like to have the option available just in case. I prefer not to be locked in to a free license that does not allow commercial use.

At the moment I don't really know what I want, I was just wondering what are my options if I were using Pascal/Lazarus.

Thanks.

funlw65

  • Full Member
  • ***
  • Posts: 148
    • Visual Pin Configurator for Nucleo 64pin boards
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #10 on: October 23, 2021, 04:35:00 am »
The best bet would be Godot engine, with a scripting language and GUI controls similar to Lazarus. Personally, I was interested in GUI ability and 2D lights (for a fancy user interface) ... I started to port one of my apps from Lazarus to Godot engine (see some screen shots here to see what you can achieve with it when a GUI is involved https://stm32vpc.blogspot.com/2021/09/the-remake-work-in-progress.html ), but you know immediately that you run a game engine by the noise the laptop fan is making. So, I dropped it for that reason (as a student that programs microcontrollers you don't want your laptop to shutdown in the middle of your project), but as a pure game engine is awesome (cross platform too).
FreePascal 3.2.2, C 10.2.1, D 1.24 under Linux(init,musl,glibc), DragonflyBSD, NetBSD
gui: gtk2, qt5, raylib4.x+raygui3.x, nanovg 
tui: freevision, tvision2, termbox2+widgets, finalcut
db: typhoon-1.11...

Eugene Loza

  • Hero Member
  • *****
  • Posts: 656
    • My games in Pascal
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #11 on: October 23, 2021, 09:59:32 am »
Quote
I am developing on a Mac, so I would like to be able to build and test on macOS
About Castle Game Engine: Unfortunately I can't tell for sure about MAC - I see there are no ready binaries for MAC, so, you'll have to build those from sources, see https://castle-engine.io/macosx_requirements.php for details. But as far as I remember some users successfully managed to run it there - ask around Engine Discord channel if you run into any issues.

You can build a mobile executable (APK, AAB, XCode project -> IPA) out of the box, and of course Windows/Linux + also Nintendo Switch and a few more exotic platforms (I know about Raspberry Pi, AFAIR launching everything on BSD also was successful).

Also LGPL license allows you to make commercial games. E.g. those were made in Castle Game Engine: https://www.nintendo.com/games/detail/escape-from-the-universe-switch/ https://store.steampowered.com/app/746750/The_Unholy_Society/ https://play.google.com/store/apps/details?id=com.digitalkarabela.cge.colorpick

So it's definitely worth at least a try ;)
My FOSS games in FreePascal&CastleGameEngine: https://decoherence.itch.io/ (Sources: https://gitlab.com/EugeneLoza)

ddabrahim

  • New Member
  • *
  • Posts: 11
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #12 on: October 23, 2021, 12:53:30 pm »
Quote
The best bet would be Godot engine
Thank you for the recommendation, Godot is indeed looks very capable however the only Pascal binding I can find is no longer maintained:

https://github.com/BenediktMagnus/godot-object-pascal

Of course there are other languages I can use but at that point I could consider any engine. For now I am interested to see what options are out there for Pascal and Lazarus specifically that is worth even considering.

Quote
About Castle Game Engine: Unfortunately I can't tell for sure about MAC
I have tried Castle Game Engine because it is seem the most robust option at the moment but unfortunately I am getting compile errors when I try to compile from source. The fact there is no binary for Mac suggest the developer either does not have a Mac or not interested in developing the engine for Mac. In either case, even if I can get it to compile with some help I am afraid down the line if I hit any Mac specific bugs the developer won't be able to fix it....

What I really would like to find is either an engine written entirely in Pascal that I can open in Lazarus and just compile and build as simply as it sounds or individual modules I can include in my project to create a window, render graphics and text in the window, playback audio, handle keyboard, mouse input and that's it. Or a package I can install in Lazarus and then simply able to create a game project right from Lazarus and then compile and build at least on the development platform which is a Mac in my case, I know if I want to target mobile I definitely need to install additional SDK's but for now I would like to find something simple to get started with.

So far Ray4Laz seems to be the most promising in this regard because I can install it from the Online Package Repository and after installation I get an option in Lazarus to create a Raylib project. After creating a project, I should in theory be able to compile and build games using Raylib at least for the Mac. However when I try to build the project, I am getting linking errors, most likely because Raylib itself is missing I guess but I can't find any info what to do about it.

If I go to the Raylib website I can download Raylib but I get no instruction what to do with it, where to put it. if I go to the Raylib documentation it does not mention anything about the lib I can download but explain how to install it from Homebrew and build from source.
If I go to the Ray4Laz page it is only mention that to download Raylib from the official page and that's it does not say what to do with it.
If I put the lib in to the Raylib project folder anywhere it does not work. Again I don't know what to put and where, how to include it in the project.

This is where lack of documentation (and lack of experience) comes in to play.

I did not have time to look at the other options yet or to register and post on the forums of the engines I am having trouble with but just wanted to provide some info what I have tried so far.

Thank you all!


Eugene Loza

  • Hero Member
  • *****
  • Posts: 656
    • My games in Pascal
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #13 on: October 23, 2021, 02:12:13 pm »
Quote
The fact there is no binary for Mac suggest the developer either does not have a Mac or not interested in developing the engine for Mac. In either case, even if I can get it to compile with some help I am afraid down the line if I hit any Mac specific bugs the developer won't be able to fix it....
Not exactly :) As far as I know Michalis has his own (very old) MAC, and at work we're using a remote MAC to build Castle Game Engine projects every day. Indeed, I recall some of the users had problems with the Engine on MAC, but I remember they were solved.
Quote
but unfortunately I am getting compile errors when I try to compile from source.
If you have any problems, you may simply ask in Discord (or in Forum - but in forum it's slower). I myself used Castle Game Engine on remote MAC - though I've already been working in a properly set up environment, and only command-line, so I don't consider myself an expert here - but I know it's perfectly possible.
If you have Lazarus running and building some basic apps (that's what I believe is the trickiest part, next one will be setting up cross-compilation) - then you most likely are very close to have everything working out of the box, at least to have local builds. Maybe you simply need to install some library or add some $PATH variable. - Fixing those settings will be much faster than learning a new programming language.
Unless you already gave up trying Pascal :D
Then of course you may just go with GoDot - AFAIK it's the most popular and easy-to-use FOSS engine out there. I don't know if it works properly on MAC, but I know that Unity does, even on remote one ;)
My FOSS games in FreePascal&CastleGameEngine: https://decoherence.itch.io/ (Sources: https://gitlab.com/EugeneLoza)

ddabrahim

  • New Member
  • *
  • Posts: 11
Re: List of game frameworks, libraries to use in 2021 and beyond?
« Reply #14 on: October 23, 2021, 03:08:18 pm »
Quote
If you have Lazarus running and building some basic apps.. then you most likely are very close to have everything working out of the box
I have no problem with that, Lazarus works great. It is only the game engines and frameworks throwing errors at me at the moment.

Quote
at work we're using a remote MAC to build Castle Game Engine projects every day.
In that case, there is still hope :D I should try again and ask for some help on Discord.

Quote
Unless you already gave up trying Pascal
Not at all, I certainly want to try Pascal and Lazarus to develop some desktop applications. Only need to find a solution for games.

Thanks.

 

TinyPortal © 2005-2018