Hands-on comparison of 2D game engines and editors

LÖVE iconGame Editor iconNovashell iconUnity iconBlender iconScratch iconGameMaker iconGameMaker: Studio iconConstruct 2 iconStencyl iconThe Games Factory 2 iconMonoGame iconXNA icon

There are many free 2D game development environments. Some are whole languages, some are media libraries, some are engines, and some are editors with integrated engines. Which ones are most helpful for game prototyping? How important are previous programming experience and target game style when choosing? Analyzing a zillion similar tools is probably a little silly (see some advice on the topic), but let's take a crack at writing the same minigame in a bunch of them anyway to see if that answers any questions…

Progress as of 02 Apr 2013:

Tools tested:

12

Favorites for…

The test minigame, overall LÖVE
APIs LÖVE, Unity

Thoughts

Essential features of the minigame

Play the Construct 2 version of the minigame


Quick reviews

LÖVE icon

LÖVE (love2d) (engine) is simple, small, and fast. Lua was easy to work with, and the minigame ran smoothly. Writing the minigame went quickly because there were no cameras, maps, or game entities to think about. On the flip side, games that need maps, generalized collision detection, and sprite animations might take more work in LÖVE than in an integrated editor. More…

Game Editor icon

Game Editor (engine, editor) has fast actor creation and destruction times and built-in collision detection, but the limited scripting language and GUI-dependent script editing were inconvenient. It's cool that Game Editor can make games for iOS and Android, but it's not too important for prototyping. I'd rather have a standard, widely-used scripting language. More…

Novashell icon

Novashell (engine, editor) has some cool features, but only a few of them were helpful when making such a simple game. Brains, profiles, multiple maps, cameras, and the mod of a mod style all just slowed me down. I liked it better than Game Editor because it uses Lua and is more programmer-friendly. More…

Unity icon

Unity (3D engine, editor) is noticeably more polished than Game Editor or Novashell across API, documentation, engine, and editor. It's probably the most popular tool I've tested so far, and that is definitely an advantage. On the other hand, it has many more features than needed for this minigame, it's closed source, and it has a comparatively huge install size. Also, setting up a 2D game in 3D space took a little extra work, but that's pretty much just a one-time cost. More…

Blender icon

Blender (3D engine, editor) worked well for this minigame. The API is more compact than Unity's, but not as polished. Despite some rough edges in the engine and documentation, porting the minigame to Blender was pretty easy, and the end result runs smoothly. At least within the limited scope of the minigame, Blender felt about as capable as Unity. More…

Scratch icon

Scratch (engine, editor) differs a bit from the previous tools on the list because it's designed for educational use. Accordingly it has a very small vocabulary, even intentionally lacking procedures (edit: Scratch 2.0 beta includes procedures). This simplicity means that some of the minigame features like the infinite playfield required entirely new solutions. Despite the purely graphical programming language, the code for the Scratch version of the game is in some places more concise and prettier than the other versions. But for prototyping, faster solutions are probably preferable to prettier solutions, so I'll leave Scratch to the educational users. More…

GameMaker icon

GameMaker (for Windows) (engine, editor) likely ranks as one of the most commonly recommended 2D game creation tools. Like Game Editor, GameMaker offers both point-and-click programming as well as textual scripting, but GameMaker has a prettier interface. For example GameMaker shows a folder view of assets, objects, maps, and scripts, while Game Editor hides these various items in nested dialog windows. Also like Game Editor, GameMaker uses a custom scripting language that feels limited compared to real languages. More…

GameMaker: Studio icon

GameMaker: Studio (free) (engine, editor) trades some of the limitations of the old Windows GameMaker Lite version for a different set of restrictions. Thanks to the minigame's simplicity, the limitations on number of sprites, objects, and scripts didn't cause trouble. For more complicated games the limitations could easily be a deal-breaker. More…

Construct 2 icon

Construct 2 (engine, editor) has similar features to GameMaker and Game Editor, so porting the minigame wasn't too much trouble, but the drag-and-drop script editing slowed me down. I like the focus on HTML5, and Playthe exported game seems to work well. More…

Stencyl icon

Stencyl (engine, editor) expands on the snapping block programming style of Scratch with a wider range of block types plus two ways to package complicated block stacks into reusable pieces (Behaviors and Custom blocks). Stencyl's drag-and-drop programming has a decent number of features, and the free version doesn't restrict complexity like GameMaker: Studio or Construct 2. Even so I still prefer textual programming. Stencyl does offer textual (ActionScript 3.0) scripting, but I haven't yet compared that to libraries like Flixel or Flashpunk. PlayThe exported SWF works fine under Ubuntu or the stand-alone Flash Player 10.3, but in recent versions of the Flash plug-in for Windows 7 Firefox, the arrow keys send lots of extra stuck-key key presses. More…

The Games Factory 2 icon

The Games Factory 2 (Newgrounds Edition) (engine, editor) feels quite similar to Construct 2 (not entirely by coincidence), so most of the porting was straightforward copying. Some small complications arose from the lack of sub-events and hash tables and the need to use a special Layer object for scrolling. Construct 2 is newer, more polished, and more actively updated, but The Games Factory 2 doesn't have any limitations on game complexity (probably). More…

MonoGame icon

MonoGame (engine) is a cross-platform, open source implementation of XNA Game Studio. MonoGame uses a popular programming language (C#), meaning that suites like Visual Studio and Xamarin Studio provide advanced IDE features for it. Now that I've seen how these features work, I'm tempted to go back and take a closer look at the other IDEs. As for the engine itself, MonoGame might not be quite as friendly as LÖVE or Unity, but it has many of the same advantages: speed, flexibility, and an organized API. More…


Links to all the individual pages

Screenshots, source code, pluses and minuses, and hints

External Links

GPWiki game engines page
Includes some engines that have integrated editing environments
GPWiki list of game authoring tools
Only some overlap with the game engines page. Does not include a comparison table.
ModDB's list of game engines
Wikipedia's list of game engines
Ludum Dare
Rapid game making competition. Tallies of tools used (example, example) and discussions about the tools (example, example) seem relevant.

Found a mistake?

Submit a comment or correction


Technical details

Tool Language Distribution platforms Open source Categories Version tested Testing OS Minimum install size (Windows, approx., non-essential files deleted)
LÖVE Lua Windows, Linux, Mac Y engine 0.7.2 Ubuntu Oneiric (amd64) < 5 MB
Game Editor C-like or GUI scripting Windows, Linux, Mac, Android, iOS Y Integrated: engine, map editor 1.4.0 Ubuntu Oneiric (i386 libs, amd64 kernel) < 5 MB
Novashell Lua Windows, Linux (not maintained), Mac Y Integrated: engine, map editor 22 Oct., 2011 Windows build Windows 7 (32-bit) < 5 MB
Unity JavaScript-like, C#, or Boo Windows, Mac, Android, iOS, and more N Integrated: engine, 3D map editor 3.5.2f2 Windows 7 (32-bit) > 350 MB
Blender Python or GUI scripting Windows, Linux, Mac Y Integrated: engine, 3D map editor, 3D modeler 2.62, 2.63a, 2.64 Ubuntu Precise (amd64), Windows 7 (32-bit) < 70 MB
Scratch GUI scripting Windows, Linux, Mac, web player Y Integrated: engine, map editor, sprite editor 1.4 Windows 7 (32-bit), Ubuntu Precise (amd64) < 10 MB
GameMaker GameMaker Language or GUI scripting Windows N Integrated: engine, map editor, sprite editor 8.1 Lite Windows 7 (32-bit) < 15 MB and requires .NET 2.0
GameMaker: Studio GameMaker Language or GUI scripting Windows, Mac, Android, iOS, HTML5 N Integrated: engine, map editor, sprite editor 1.1.164 Free Windows 7 (32-bit) < 25 MB and requires .NET 2.0
Construct 2 GUI scripting HTML5 N Integrated: engine, map editor, sprite editor 108.2 Free Windows 7 (32-bit) < 35 MB
Stencyl GUI scripting or ActionScript 3 Flash N Integrated: engine, map editor 2.1.0 Windows 7 (32-bit), Ubuntu Precise (amd64) < 150 MB, including 85 MB for the JRE
The Games Factory 2 GUI scripting Flash N Integrated: engine, map editor, sprite editor 2.0 Newgrounds Edition Windows 7 (32-bit) < 13 MB
MonoGame C# Windows, Mac, Linux, Android, iOS, Windows Phone Y engine 3.0.1 Windows 7 (32-bit), Ubuntu Precise (amd64) < 5 MB and requires .NET or Mono
XNA Game Studio C# Windows, Windows 7 Phone N engine 4.0 Refresh Windows 7 (32-bit) < 3 MB and requires .NET and DirectX

Underlying languages and libraries

Tool Source language Physics or Collisions Input Windowing Graphics Audio
LÖVE C++ Box2D SDL SDL OpenGL OpenAL
Game Editor C++ Kyra (v. 1.4.0) and Box2D (v. 1.5, in development) SDL SDL Kyra, OpenGL SDL_mixer
Novashell C++ Box2D ClanLib ClanLib ClanLib ClanLib
Blender C++ Bullet Xlib, SDL, User32 (Windows), Carbon (OS X), or Cocoa (OS X) Xlib, SDL, GDI (Windows), Carbon (OS X), or Cocoa (OS X) OpenGL
Unity PhysX
Scratch Squeak Smalltalk Built-in (ScratchSpriteMorph touchingColor:) Squeak Morphic Squeak
GameMaker Delphi (citation) DirectX 8.0 (citation)
GameMaker: Studio Delphi and C++ (citation) Box2D
Construct 2 Box2DWeb (citation)
Stencyl Java Box2D Flixel Flixel
The Games Factory 2
MonoGame C# Simple built-in collisions (Rectangle, BoundingBox) OpenTK, MonoMac, SharpDX, Xamarin.iOS, Xamarin.Android
MonoGame, additional depending on platform Tao.Sdl Windows Forms Windows.Graphics.Display Tao.Sdl
XNA Game Studio C# Simple built-in collisions (Rectangle, BoundingBox) DirectX

Updates

03 Jul 2013 Alternating light–dark table rows
29 Jun 2013 A little proofreading
23 Apr 2013 XNA and MonoGame minimal install sizes
04 Apr 2013 Page was getting unwieldy, so moved detailed assessments of the tools to individual pages
02 Apr 2013 MonoGame/XNA Game Studio
10 Mar 2013 The Games Factory 2. Removed Novashell as favorite map editor because I haven't been testing the map editors much.
03 Mar 2013 Stencyl, underlying languages and libraries table, and some other small updates
21 Jan 2013 Blender bug reported
08 Jan 2013 Comments link, play icons, some rewording
09 Dec 2012 GameMaker, GameMaker: Studio, Construct 2
14 Nov 2012 Corrections: Unity does not require .NET. TilePics do work for the minigame in Novashell.
08 Nov 2012 Added Scratch
17 Oct 2012 Longer quick reviews
07 Oct 2012 Added Blender
23 Sep 2012 Posted