Recent

Author Topic: Need advice for choosing an engine  (Read 2032 times)

Rege

  • New member
  • *
  • Posts: 5
Need advice for choosing an engine
« on: March 30, 2019, 05:45:37 pm »
Hi everyone,

I plan to at some point in time construct a video game. At the moment I am simply looking around for information.

Computer programming, even if I have learnt certain basics and principles, and even if I used to program for a hobby, not for money, is not my main thing. I would not consider myself at this moment a very good or very experienced programmer, let alone one who has had official formal training in it. I know that one can learn pretty much anything (in fact, I was granted to learn many things), but circumstances, for example a lack of time, may prevent me from actually being a very good or experienced programmer.

With that written, I find myself in this context of game-making and programming more in artistically minded areas.

So, as I have looked around and, since the game will have 2D gameplay and 2D (sprites) or 3D graphics, and since I am not a very good programmer -- and perhaps there are more reasons -- it will probably be best to use an easy game engine which has no or only little programming requirements (in the typical sense, to put it like that, of actually writing code). I came across all sorts of options, and what follows is an enumeration of pieces of software standing out:

•   Godot;
•   Unity;
•   Castle;
•   Game Maker Studio;
•   RPG Maker;
•   some others.

Godot, because it is multiplatform and should easily compile to all sorts of platforms, and because it seems to have a very good workflow with an easy script or visual language, while being fast. Furthermore, Godot is totally free for any purpose, and may be used with C++ for performance-critical parts. It also immediately supports internationalization.

Castle, because it uses Pascal (or OPascal) and because it probably has good workflow too, but to me at the moment it seems more difficult as an engine compared to Godot (and I might be wrong about that). I suspect that its installation and quickly getting simple projects done may be somewhat problematic. I could be wrong about this. I think I need some advice in this area.

Game Maker Studio, because it is pretty much a no-hassle or a not-so-much-hassle experience, with custom assets still needed, though I did read and in some cases heard reports of many crashes and corruptions (even after many years of existence). Therefore I will probably avoid this one.

RPG Maker, because it should be easy, with many ready-made objects and tools, and has optional Javascript and import possibility of custom assets to get more serious. I also don't mind turning the game into an RPG which might just work with some adaptations.

At the moment I am tending towards Godot, Castle or RPG Maker. Suppose now, for the sake of argument, that we exclude RPG Maker from the list, leaving Godot and Castle. Can and would you describe concisely their essences, strengths and weaknesses, considering my post and my needs? (Also, are there any up-to-date books on Castle?)

Are there furthermore any other options to consider?

(Pascal is by the way the programming language I have used the most, which is why I have some interest in Castle. But learning a new one should not be much of a problem.)


Thanks.
« Last Edit: March 30, 2019, 05:51:57 pm by Rege »

lainz

  • Hero Member
  • *****
  • Posts: 3313
    • Lainz
Re: Need advice for choosing an engine
« Reply #1 on: March 30, 2019, 06:25:10 pm »
2d is not the same as 3d. Define that first.

I recommend nothing since is a matter of taste and what you want or not to learn.

But I don't recommend castle game engine, go for something bigger in my opinion.

Rege

  • New member
  • *
  • Posts: 5
Re: Need advice for choosing an engine
« Reply #2 on: March 30, 2019, 08:05:48 pm »
2d is not the same as 3d. Define that first.

I recommend nothing since is a matter of taste and what you want or not to learn.

But I don't recommend castle game engine, go for something bigger in my opinion.
What are you talking about? I am very well aware of the fact that 2D is not 3D. What part of my post are you referring to?

Rege

  • New member
  • *
  • Posts: 5
Re: Need advice for choosing an engine
« Reply #3 on: March 30, 2019, 08:25:27 pm »
2d is not the same as 3d. Define that first.

I recommend nothing since is a matter of taste and what you want or not to learn.

But I don't recommend castle game engine, go for something bigger in my opinion.
And what do you mean by "matter of taste" or some kind of subjectivism? Is there something unclear about the term "easy"? That is to say, things have an objective difficulty level (obviously), and so you may understand what is meant by the term "easy". Must I use an example? For example, it is objectively easier for all to merely drive a car to destination A, than for all to drive a car to destination A, and to use a mobile phone to have a conversation, and to make calculations of higher mathematics in your head, and to put on your sunglasses, and to take of your pants because it's hot summer weather, while preserving safety.

Don't worry about taste. Tell me about the facts of them and how they relate to what I wrote.

But then still for some reason you recommended not Castle, but something bigger. Why? And how can the "matter of taste" and your recommendation (seemingly meant in the objective sense) go together?

lucamar

  • Hero Member
  • *****
  • Posts: 2145
Re: Need advice for choosing an engine
« Reply #4 on: March 30, 2019, 08:54:36 pm »
There are quite a lot more (Pascal) engines than those you cite: see the wiki page Game Engines or, as entry point, the Game Development Portal.

As for recommneding one, that's a difficult task without knowing quite a lot more. The best recommendation is to look them all to discover their strenghts and weaknesses, try some examples, etc. and then decide for yourself.

IMHO, that's the only real path to success. And it can be quite funny :)

Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus 2.0.4/2.0.6  - FPC 3.0.4 on:
(K|L)Ubuntu 12..16, Windows XP SP3, various DOSes.

Handoko

  • Hero Member
  • *****
  • Posts: 3237
  • My goal: build my own game engine using Lazarus
Re: Need advice for choosing an engine
« Reply #5 on: March 30, 2019, 08:57:28 pm »
Hello Rege,
Welcome to the forum.

Lazarus/FPC can be used to create video games if have the time and you're willing to spend some of your time to learn programming. Nothing wrong with Pascal/Lazarus/FPC, but if you only have limited time or you are more in the creativity things and want to focus on productivity you should choose the tool that requires less programming, some call it game builders. Don't use Lazarus nor Pascal.



Here is the list of free game builders I ever tried:

GDevelop
https://gdevelop-app.com/
It is super easy to use. Programming skills is not required, you still need some basic understanding about logic. The default installation has many working simple games.
+ Easy to use built-in scene editor, physics engine, particle emitters, collision detection, pathfinding, etc
+ Target multi platforms: Windows, Linux, Mac, Android, iOS, web, Facebook Messenger
+ Good demos and documentation
- 2D games only


Construct

https://www.scirra.com/
Similar to GDevelop, it is free, super easy, target to multiple platforms, lots of bundled demos. Unfortunately the version 2 and 3 are not totally free, the free editions have many limitations. Only the version 1 is really free, they called it Construct Classic.
+ Powerful and has easy to use visual editor
+ Target multi platforms
+ Good demos and documentation
- 2D games only
- Only Construct Classic is really free without restrictions




If you willing to spend some money, you should consider the non-free options. They can be expensive, but their high price is not without reasons. I never tried them but I know these are the best tools in the field:

Unreal Engine
My friend uses Unreal Engine to create 3D graphics (not games), the quality is awesome. If you have an high end computer, it can make use of all the power you can provide. As far as I know Unreal Engine has very good license term, you can use the free version to make money, but with some limitations and conditions.

Unity

I don't know much about it but I heard it a lot.
Why do you remove it from your consider list?



These are other free engines I ever tried:

Godot

https://godotengine.org/
This is the best free engine I ever tried. With some simple steps I can make the bundled example games that run on desktop to run on my Android phone too. I never knew creating Android games can be so simple! It uses their own-invented scripting language, which is similar to Python.
+ Easy to use visual editor
+ Target multi platforms: Windows, Linux, Mac, Android, iOS, web
+ Good demos and documentation
+ Can create both 2D and 3D games
- Requires some programming skills


Game Editor

http://game-editor.com/
If you have some programming knowledge, this 2D game engine is relative easy for you. Unfortunately, I heard the programmer later was hired by a big company so Game Editor now is outdated and abandoned.
+ Create games for Windows, Linux, Mac, iPhone, iPad, Pocked PC
+ They use easy to understand event and action concept
+ Built-in script editor
+ Has some basic 3D capability

- Requires some programming skills
- Outdated and abandoned


Blender Game Engine

https://en.wikipedia.org/wiki/Blender_Game_Engine
Blender 3D is a famous free 3D software but not many people know Blender can be used to create games. I ever tried, but never interested. I don't know why.
+ Power engines for 3D games
- Blender is known as very hard to learn




All the mentioned above are not related with Pascal programming. Below is the list of free game engines/libraries that allow you to use your Pascal skills for creating games:

ZGameEditor

http://www.zgameeditor.org/
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 my first some hours of trying it.
+ Target multi platforms: Windows, Linux, Mac, Android
+ Can create both 2D and 3D games
+ Can create Windows screensavers
+ Easy to use built-in audio synthesizer
+ The generated stand-alone executable is very small
+ Its scripting language is very similar to Pascal
- The editor can be run on Windows only
- Requires some programming skills


Castle Game Engine

https://castle-engine.io/
It's probably the most powerful Pascal game engine. It is a game framework not a game builder, you have to integrate it into your Lazarus/FPC to use it. Learning Castle Game Engine it is much harder than ZGameEditor and the result binaries are much bigger too. I wish I can have more time so I can explore or even use it, Castle Game Engine is really an interesting project.
+ Target multi platforms: Windows, Linux, Mac, Android, iOS, Nintendo Switch
+ Import models form many formats, graphics effects, physics, AI, etc
+ Can create both 2D and 3D games
- Good demos and documentation
- Requires good programming skills in Pascal
- It is a game framework, learning a game framework is hard


GLScene
http://glscene.sourceforge.net/wikka/
This 3D graphics library is very powerful. I ever thought to build some cool 3D games and applications using it. Unfortunately their development is mainly focus on Windows, I monitored it for years but no much progress for Linux. It doesn't run good on my Linux computer so I abandon it.
+ Full featured 3D graphics engine
+ Good demos
+ Zero deployment setup
- Run bad on Linux
- Where is the documentation?

- Requires good programming skills in Pascal

Allegro.pas
http://allegro-pas.sourceforge.net/
Allegro.pas is a wrapper for Allegro game framework. Learning a game framework is hard, luckily the official website of Allegro provides detailed documentation so learning it is relatively easy. Only some days of learning it, I managed to create my demo game Furious Paladin.
Furious Paladin's binary: http://graphicslearning.com/furious-paladin-tutorials/
And this is the source code: https://sourceforge.net/p/allegro-pas/code/HEAD/tree/TRUNK/demos/
+ Multi platforms support: Windows, Linux, Mac, iPhone, Android
+ Audio, font, video playback, some 3D basic drawing, joystick, keyboard, physics
+ Detailed documentation
- Cannot be used to create full 3D games
- How to use Allegro.pas to create Android games?

- Requires good programming skills in Pascal

Simple Directmedia Library
I never really tried it. But I know a kid (who was a member here) can create simple 2D horizontal scrolling game using FPC + SDL only weeks of learning it. Read more about SDL:
http://wiki.freepascal.org/FPC_and_SDL

nxPascal
http://wiki.freepascal.org/nxPascal
Not as famous as the others and it lacks of documentation. But it has potential. Read more:
https://forum.lazarus.freepascal.org/index.php/topic,35313.msg253463.html#msg253463

BGRABitmap or TCanvas
If you want to create simple 2D games like Tetris, Snake, Pong, Arkanoid, TCanvas and BGRABitmap is totally capable for it. I ever wrote 2D scrolling spaceship game using only TCanvas line drawing, it's working good. I then tried to switch the graphics library to use BGRABitmap, it works. Any TCanvas program can easily to switch to use BGRABitmap, which offer more graphics features. Read more:
https://lazarus-ccr.sourceforge.io/docs/lcl/graphics/tcanvas.html
http://wiki.lazarus.freepascal.org/TCanvas
http://wiki.freepascal.org/BGRABitmap
http://wiki.freepascal.org/BGRABitmap_tutorial
+ Relatively simple and easy to learn than the others
+ BGRABitmap can draw simple 3D objects

+ Zero deployment setup
- They handle graphics only
- Not suitable for graphics intensive games
- Requires good programming skills in Pascal

LAMW + jCanvasES2
I am now exploring the possibility to create 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 also can run on Android. LAMW + jCanvasES2 is the combination to make Lazarus to produce Android binaries that allow us to use OpenGL ES2. Unfortunately, it crash too often. I'm examining it, hope I can fix them.

---

All mentioned above are capable to create video games. Which one to use is depends on how much time and money you're willing to spend and what kind of the games you want to create.

I heard a lot Game Maker Studio and RPG Maker but they are never in my list.
« Last Edit: March 31, 2019, 09:48:10 pm by Handoko »

lainz

  • Hero Member
  • *****
  • Posts: 3313
    • Lainz
Re: Need advice for choosing an engine
« Reply #6 on: March 30, 2019, 09:49:59 pm »
2d is not the same as 3d. Define that first.

I recommend nothing since is a matter of taste and what you want or not to learn.

But I don't recommend castle game engine, go for something bigger in my opinion.
And what do you mean by "matter of taste" or some kind of subjectivism? Is there something unclear about the term "easy"? That is to say, things have an objective difficulty level (obviously), and so you may understand what is meant by the term "easy". Must I use an example? For example, it is objectively easier for all to merely drive a car to destination A, than for all to drive a car to destination A, and to use a mobile phone to have a conversation, and to make calculations of higher mathematics in your head, and to put on your sunglasses, and to take of your pants because it's hot summer weather, while preserving safety.

Don't worry about taste. Tell me about the facts of them and how they relate to what I wrote.

But then still for some reason you recommended not Castle, but something bigger. Why? And how can the "matter of taste" and your recommendation (seemingly meant in the objective sense) go together?

Pascal is harder than for example JavaScript that can be used to build a game as well.

I tried castle game engine and first it had bad 3d graphics, Godot has better for 3d.

I said define what do you want to build 2d or 3d. That can help you to decide which tool you will use. For example there are easy to use and good 2d JavaScript libs to try that are just 2d not 3d.

Bigger in terms of 3d quality. A better scene editor.

I don't know because you don't choose Unity that's free and easy. twogentlemensoftware.gitlab.io check my site all done with unity and few lines of code.




lainz

  • Hero Member
  • *****
  • Posts: 3313
    • Lainz
Re: Need advice for choosing an engine
« Reply #7 on: March 30, 2019, 10:04:33 pm »
And yes it is a matter of taste because you're choosing free tools instead of Unity (it has free and pro) and RPG Maker (pro). You decided to do the comparison castle - Godot by yourself. These have in common being open source and nothing more. You're comparing 2 worlds that has nothing to do one with the other. Not same language not the same kind of tool.

User137

  • Hero Member
  • *****
  • Posts: 1791
    • Nxpascal home
Re: Need advice for choosing an engine
« Reply #8 on: March 31, 2019, 08:49:40 am »
Speaking of Unity, they put out a new feature trailer not long ago. This isn't pre-rendered like all the cinematics you see in games, it's actual game footage with the framerate you see live:
https://www.youtube.com/watch?v=34K8YJOMDRY

Thaddy

  • Hero Member
  • *****
  • Posts: 9293
Re: Need advice for choosing an engine
« Reply #9 on: March 31, 2019, 09:48:15 am »
I would start with a simple canvas and something like a physics engine like box2D before using one of the fully fledged game libraries.
also related to equus asinus.

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 918
    • Burdjia
Re: Need advice for choosing an engine
« Reply #10 on: April 01, 2019, 11:35:08 am »
Maybe you want to join the Pascal Game Development community. We'll be glad to help you too. :)
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

Paul_

  • Full Member
  • ***
  • Posts: 130
Re: Need advice for choosing an engine
« Reply #11 on: April 02, 2019, 06:11:14 pm »
Game Maker have similar syntax as Pascal. But if you will make 3D games, then Unity/Unreal/Godot maybe.

I would start with a simple canvas and something like a physics engine like box2D before using one of the fully fledged game libraries.

Canvas in current game development terminology = frameworks like SDL2, SFML, Allegro.. (OpenGL, DirectX), all have Pascal bindings. Physics engines like Box2D or Chipmunk are problematic, too complex and confusing for basic implementation, they are rather used as layer in game engines like Unity with visual frontend.
« Last Edit: April 02, 2019, 06:18:35 pm by Paul_ »