Game Engines

From Mario Fan Games Galaxy Wiki
Revision as of 21:11, 3 March 2013 by Onpon4 (talk | contribs)

There are some serious practical flaws with Game Maker, namely:

  • With greedy executives in control of it, you might have to keep paying YoYo Games to keep it up-to-date.
  • Whether or not you do have to keep paying, if YoYo Games goes under or otherwise stops developing Game Maker, it will fall behind and eventually become unusable.
  • No support for GNU/Linux or BSD at all, unless you pay $100 for the HTML5 option.
  • You can't change its internals; you depend on YoYo Games to do this since it is proprietary.

On the other hand, there are some obvious advantages to a game engine like Game Maker which can all be simplified to: it's much easier to use than a regular programming language with a graphics library, like C++/SFML.

This page attempts to list notable alternatives to Game Maker. It is taken from this forum topic.

Free/Libre/Open-Source Alternatives

The following alternatives are free/libre/open-source software, as defined by the Free Software Definition and the Open Source Definition. This does not necessarily mean that they are non-commercial.

Game Editor

Link: http://game-editor.com

Game Editor is a game engine much like Game Maker, but different in its interface and also different in that it is free software (GNU GPL) and cross-platform, supporting Windows (all the way back to '95, apparently!), Mac OS X, GNU/Linux, iPhone, iPad, Windows Mobile, Pocket PC, and GP2X. Being free software, support for other systems is perfectly possible if someone compiles it (and, if necessary, tweaks it so it will run correctly). This has been done for the OpenPandora, for instance.

Advantages:

  • Cross-platform (see above).
  • Free/libre/open-source software (GNU GPL), which means you can make any changes you like to the source code, and you are not dependent on the Game Editor developers' benevolence.
  • Includes several easy to follow interactive tutorials that will get you started.
  • Very easy to use event-driven system, based on menus (as opposed to drag and drop).
  • Easy to understand basic scripting language with C-style syntax, and then a much more powerful scripting language heavily based on C (the latter is described as "C", with quotes, in the documentation).
  • Delta timing is supported out-of-the box by simply ticking an option box, which causes speeds to increase if the frame rate is low (making games always run at full speed at the cost of being choppier).
  • Gratis for GPL-licensed games and noncommercial games, no restrictions (the noncommercial license only applies to the binary version, which has a short splash screen but no other disadvantages).

Disadvantages:

  • It is difficult to develop platformers with Game Editor; only precise collision detection is supported, which can easily result in glitches in a platformer. This can probably be worked around by using a separate "mask" actor; needs investigation.
  • There are currently no image transformation features (such as rotation and scaling).
  • To distribute proprietary (closed-source) commercial games, you must pay an annual license fee:
    • $99 to distribute proprietary commercial games with a brief Game Editor splash screen at the game's startup.
    • $1499 to distribute proprietary commercial games without the Game Editor splash screen.

Misc:

  • Game Editor doesn't have a rooms concept like Game Maker does. Instead, any game has a (theoretically) infinitely-sized grid. Multiple levels can be done by having the levels at different locations in this grid or by combining multiple games into one. On one hand, this means you need to handle keeping the camera inside the designated level zone yourself, but on the other hand, you have more control and can even in theory have non-rectangular rooms.

Blender

Link: http://www.blender.org

Blender is a popular free/libre/open-source 3D modeling program with a 3D game engine called the Blender Game Engine. Yo Frankie! is an example of a game created with this engine.

Advantages:

  • Free/libre/open-source software (GNU GPL), which means you can make any changes you like to the source code, and you are not dependent on the Blender developers' benevolence.
  • Cross-platform; works on Windows, Mac OS X, GNU/Linux, and BSD.
  • Designed for 3D, so it might be less clumsy than Game Maker for this purpose.
  • The Blender Game Engine can be easily extended with Python.

Disadvantages:

  • Being designed for 3D, it might not work well for 2D games.

Python

Link: http://www.python.org

Python is not a game engine, but rather a regular programming language which is easy to use. For game development, it would normally be used with Pygame or Pyglet, depending on exact needs.

Advantages:

  • The interpreter is free/libre/open-source software (GNU LGPL), which means you can make any changes you like to the source code (though you really shouldn't as that would cause confusion and is unnecessary), and you are not dependent on the Python developers' benevolence.
  • Platform-independent; works on just about any platform, the only exceptions I know of being iOS and Android (directly; you can probably get it to work by using Jython, though library support can vary). Like Java, no recompilation (or compilation at all, in this case) is needed.
  • Offers complete control over your game.
  • Danamically typed, and uses duck typing, much like GML.
  • Can be easily extended with C.

Disadvantages:

  • There is currently not a complete game engine for it. There is the Retro Game Library (http://www.pygame.org/project-Retro+Game+Library-1065-.html), which is cool, but essentially limited to NES and Gameboy style games and does not include a graphical level editor of any sort. There is at least one in development, however, called Stellar, so this problem may be fixed in the future.

Misc:

  • Windows is about the only major platform that doesn't include a Python interpreter, so if you're using Pyglet, supporting all other platforms is a simple matter of bundling your game's code with Pyglet and telling users what to run in a README (Pygame is not that simple since it's actually a wrapper for SDL, which needs to be compiled, but you can just tell users in the README that they need to install Pygame). Then there are programs for packaging Python programs up for Windows, including py2exe and cx_Freeze (cx_Freeze will also work on other platforms).

ENIGMA

Link: http://enigma-dev.org

ENIGMA is a project to replace the Game Maker with a free/libre/open-source Game Maker compiler. It is paired with LateralGM, an alternative editor for Game Maker files written in Java.

Advantages:

  • Free/libre/open-source software (GNU GPL), which means you can make any changes you like to the source code, and you are not dependent on the ENIGMA developers' benevolence.
  • Easy to migrate to from Game Maker, being almost exactly the same in syntax and overall how it works.
  • Can be extended with C++.

Disadvantages:

  • Incomplete, and development is slow.
  • If it gets to the point where it is actually able to replace Game Maker, there's no telling what YoYoGames' response will be.

Construct Classic

Link: http://sourceforge.net/projects/construct/

Advantages:

  • Free/libre/open-source software (GNU GPL), which means you can make any changes you like to the source code, and you are not dependent on the Construct developers' benevolence.
  • Apparently similar to popular Clickteam products.

Disadvantages:

  • Windows-only due to dependence on DirectX. The developers have no intention to fix this.

Proprietary Alternatives

The following alternatives are proprietary, i.e. they are not free/libre/open-source software. This does not necessarily mean that they are commercial.

Unity

Link: http://unity3d.com