What are the pros and cons of different game engines?

Started by Danvzare, 02 Nov 2021, 17:35

« previous - next »

Danvzare

I like AGS, so I've kept using it. But it's occurred to me recently that I've never really considered the benefits and drawbacks of using AGS.
Then I started thinking about how some people will choose a game engine, start working on their game for a while, find a problem with the game engine, choose another game engine, recreate their game up to the same point, find another problem, and just keep doing that over and over until they either give up on the project or settle on a game engine. (Usually the former.)
So then I started thinking about the various pros and cons of every game engine.

For Adventure games alone, you have:

  • The Unity Plugin "Adventure Creator"
  • Adventure Game Studio (of course)
  • Sludge
  • Visionaire
  • And Wintermute
(assuming I haven't forgotten one)

For more generic game engines, you have:

  • Unreal Engine
  • Unity
  • Game Maker Studio
  • Or a custom built engine


So what would you say are the pros and cons of the various engines? Why would someone choose AGS over the others, or reject AGS over the others?
Personally I think a big pro for AGS is that it's completely free and open source, with an active community.
But I think a big con for AGS is that it's really difficult if not downright impossible for multiple coders to work on the game at the same time. It's not really a drawback that affects most of us, since we generally work on games on our own, but I still think it's a major drawback.

Thoughts?  ???

Jared

Well you'd need somebody who has tinkered with all of them to really tell you, and I don't know how many people have done that given the time sink that making an adventure game is.

You're correct that collaborative work on programming is difficult in AGS, not impossible but requires some coordination.  I left a project in a huff when issues with SVN meant I was getting constant compiler errors.  Ideally I wanted guys to write the new code and give me references for where they wanted it copied and pasted but I got ignored.

There are a couple of other things about AGS that to me seem to suggest its hobbyist roots.  Maybe I'm just paranoid but I've always felt as though the global script balloons too quickly and had memory concerns over it. (I understand some devs make characters objects in a scene for this reason) Other than that drawbacks of AGS would be a lack of 3d support, the fiddliness of some of the in-engine tools (I'm thinking particularly about walking areas, I've always found drawing those awkward), no real cross-platform capability in engine (though I understand there are decent third party tools) .

Due to my limited experience with others, I can't say that much.  Sludge, as I recall was very lightweight and used some odd formats, but as it was a hobby from one programmer there wasn't a lot of documentation.  I see there have been some new releases from another programmer, and sludge is also apparently open source now as well as free.

A drawback to Adventure Creator to me is that can't look at screenshots without getting a migraine lol.  There are a lot of menus with a lot of stuff in them, God damn.  But seriously I'm sure pros would include Unity being a highly optimized modern pro engine, the full 3d support, COLOSSAL online support, full cross platform infrastructure, the graphical tools look very flexible, etc. I mean frankly it looks pretty great.  I'd be using it if I had the time to commit to learning from scratch, but as I said the number of menus is intimidating.

Downsides to AC is the entry price point, apparently the licences agreement is that if you make a big profit you give some to Unity, people say there is a general awkwardness to working in 2d in Unity, and my understanding is that AC doesn't support walk-behinds in the same way AGS does.  It may have changed but apparently you needed to create everything you walk behind as an object in the scene.  It's something that can be done very quickly in Photoshop, but it's still a bit of extra busywork.

A free general engine you didn't mention is Godot which seems to have the reputation as the hipsters Unity.  Godot is free and anecdotally has more intuitive features for 2d gaming.  It's very lightweight in terms of design and file size but also surprisingly feature rich.  I played around with it briefly following a platformer tutorial and found it surprisingly intuitive.  3d support as well, no cross platform built in, but apparently there are 3rd party porters.  The amount of engine support and community online seemed pretty healthy.

Crimson Wizard

#2
Quote from: Jared on 02 Nov 2021, 19:25Other than that drawbacks of AGS would be <...> no real cross-platform capability in engine.

What do you mean? AGS engine is working on several platforms for about 10 years now...

I also thought Godot allows to build game for many platforms, at least its in my memory from the time was I checking it out.


Quote from: Danvzare on 02 Nov 2021, 17:35
But I think a big con for AGS is that it's really difficult if not downright impossible for multiple coders to work on the game at the same time.
Quote from: Jared on 02 Nov 2021, 19:25
You're correct that collaborative work on programming is difficult in AGS, not impossible but requires some coordination.  I left a project in a huff when issues with SVN meant I was getting constant compiler errors.  Ideally I wanted guys to write the new code and give me references for where they wanted it copied and pasted but I got ignored.

I wonder what were the problems that people face when code same game together. Obviously it goes down to splitting the tasks between the people, just like in any other programming project. If each person works strictly on their own, and even better in their own module(s) and/or room scripts, I imagine there should not be too many conflicts.

Pax Animo

For Adventure games alone, you have:

  • The Unity Plugin "Adventure Creator"
  • Adventure Game Studio (of course)
  • Sludge
  • Visionaire
  • And Wintermute
(assuming I haven't forgotten one)

For more generic game engines, you have:

  • Unreal Engine
  • Unity
  • Game Maker Studio
  • Or a custom built engine

I'm not sure why AGS isn't on the "For more generic game engines, you have:" list.

I've seen and are personally developing a game in AGS which is not your bread and butter point and click adventure game.
I'm currently having no problems at all. (even if I needed someone else to work on a separate part of a script, I don't see an issue with just having that person send me the script and I'd place it where it's needed. (obviously crimsons solution to this is much better)

Ok so AGS may not be able to handle say, fast paced first person shooters, or maybe it can? maybe it's already been done?  but to assume it can only handle adventure games seems to me to be a misconception which is maybe because it's called Adventure Game Studio.

So to name a few styles which I believe ASG can handle, (tell me if I'm wrong)
RPG
Fantasy
Open World
Puzzle
Casual
Isometric (maybe some pathing issues on this one?)
Platform
Third-Person

I'm in no way experienced in most of this but I wanted to share my thoughts.  ;-D

I'm a slow learner but I like to ask questions.

Crimson Wizard

#4
The current cons of AGS, perhaps from my personal perspective:

- Game editor is frankly subpar; user interface is often awkward and limiting.
- Game project source is difficult to read, let alone work with, outside the editor. Most of the game data is inside a big xml file, and rooms are saved in binary format so you cannot even look what's inside of them without launching AGS. Imported sprites are written into one big file, where again you cannot look into them or replace without running editor. This also makes parts of the project prone to file corruption: anything happens during saving the game may make you loose a whole room, or all of the sprites.
- For the same reason, it's complicated to work with AGS games under a version control tool (svn, git etc): as parts of the game are binary blobs, it is impossible to track the actual history of their changes.
- Lack of Unicode text support.
- Imperfect translation system, where translations may be complicated to update and easy to break. No true support for localizing other parts of the game rather than the texts: such as images, sounds, voices (you have to do this by hand, sometimes using workarounds).
- Building game packages for other platforms than Windows and Linux requires manual labour. No official support for gaming consoles.
- Scripting language is a mix of low-level and high-level concepts, but does not get any of these to the logical conclusion. So on one hand you cannot refer to plain variables and structs using their memory adresses, on another you have "managed" structs but the use of these is limited by incomplete syntax and unsupported features. It's like having bits of both worlds instead of one but complete.
- Script's implementation is slower compared to popular scripting languages. This won't be noticed if you have a regular point and click scene, but may quickly become a problem if you e.g. script a fast paced arcade sequence with physics simulation, etc.
- Most of the things may be only created at the design time. You cannot have dynamically created rooms or objects. This complicates working on anything that is not a standard point and click scene, and forces you to precreate almost everything in the editor, even if you need an object only for some temporary visual effect. If you want a "procedurically generated" scene or game, you have to precreate a number of dummy objects and reuse these.
- Game saves contain practically a virtual memory state, and may be restored reliably only if the game contains exactly same game objects.
- Lack of contemporary visual effect support: e.g. no GPU-based object rotation, no custom shaders, let alone any 3D effects. Any additional effects have to be scripted with the use of the pixel drawing (aka "software drawing") which is significantly slower.
- Engine is not well optimized for high-resolution games: the way it draws things, or loads resources, maybe works well with "classic" low resolutions, but not with higher ones.
- Abscence of debugging and diagnostic capabilities: you cannot tell what's going on inside the engine when it runs your game.

Ali

Also worth looking at is PowerQuest from Powerhoof: https://powerhoof.itch.io/powerquest

It's a name-your-price Unity plugin and I've seen it used in Intergalactic Wizard Force, which certainly feels AGS-y from a player's POV.

Danvzare

Quote from: Jared on 02 Nov 2021, 19:25
A free general engine you didn't mention is Godot which seems to have the reputation as the hipsters Unity.  Godot is free and anecdotally has more intuitive features for 2d gaming.  It's very lightweight in terms of design and file size but also surprisingly feature rich.  I played around with it briefly following a platformer tutorial and found it surprisingly intuitive.  3d support as well, no cross platform built in, but apparently there are 3rd party porters.  The amount of engine support and community online seemed pretty healthy.
I completely forgot about Godot, thanks for bringing that up.


Quote from: Pax Animo on 02 Nov 2021, 22:18
I'm not sure why AGS isn't on the "For more generic game engines, you have:" list.
Mostly because "Adventure" is in the name. But that is a good point. AGS is pretty versatile for an engine that was originally made for just adventure games.
Although while it's definitely easy to make non-adventure games with AGS, you've got to admit that a lot of stuff that AGS does is geared towards adventure games, such as inventory items and the walk to function.
I'm fairly sure every engine I listed in the "Adventure Engine" list could support non-adventure games, and it wasn't meant to discredit AGS as being limited or anything. I was just saying that these engines in particular focus on making adventure games, not that they're only for adventure games.


Quote from: Ali on 04 Nov 2021, 11:56
Also worth looking at is PowerQuest from Powerhoof: https://powerhoof.itch.io/powerquest

It's a name-your-price Unity plugin and I've seen it used in Intergalactic Wizard Force, which certainly feels AGS-y from a player's POV.
Ooh, that looks interesting.

Jared

Quote from: Ali on 04 Nov 2021, 11:56
Also worth looking at is PowerQuest from Powerhoof: https://powerhoof.itch.io/powerquest

It's a name-your-price Unity plugin and I've seen it used in Intergalactic Wizard Force, which certainly feels AGS-y from a player's POV.

Oh wow, I had no idea this existed, this looks great!

SMF spam blocked by CleanTalk