Hello everyone,
Before I start, I just want to say, this post is reflecting my own opinions about different game engine and it is not intended to be taken beyond that scope.
I had a chat with Dan (a friend of mine at the Game Innovation Lab) about how many new game developers don’t know a lot about different game engines. Once the discussion ended, he asked me to post about game engines, and rate them according to difficulty and complexity. Nowadays there are more game engines than in the early days of indiegame development. The funny thing is only a few of them are popular such as Unity, Unreal Engine, and Game Maker.
To list all engines, I am going to divide them into categories: Educational (made for children), Specialized (for a single genre/type of games), and Generic engines. This categorization is just to help you find the best tool for what you are doing, but really any tool that allows you to add some programming, either by writing code or using logic trees (logic trees are a way of programming by building a tree of conditions), can be used to create any game. The problem is using any of these tools outside its intended scope is harder than using an other tool. Engines vary in popularity. Popular game engines have a big user base which helps a lot when you have bugs. While using unpopular engine can be a good thing as you work very close to the developers themselves and you can request changes easier from them. Also, these developer can help you in promoting your game more than popular engines because the success of your game is also reflect the success of their engine.
Warning, this is a long post and if you don’t have time, you can jump to a summary table that outlines them all at the end of the post (link).
Educational Engines:
These are tools designed to encourage people to design games and to help them to learn how to do it.
- Bitsy (http://ledoux.io/bitsy/editor.html): is a simple browser based game editor that doesn’t need any coding or even logic. The tool itself has predefined types of sprites and actions. The user needs only to draw different images and define dialogues for each game character, connect everything together, and TADAAAAAA, you finished a simple html game. All games created by it are topdown story based games where the player can talk to different objects.
- Dungeon Decorator (https://lorenschmidt.itch.io/dungeon-decorator): is similar to Bitsy, except it designs platformers. The user needs to design the map, some dialogues, and they have a game. All games created by the tool are platformer story based games where the player can talk to different objects.
- Scratch (https://scratch.mit.edu/): is an MIT tool that helps children to create stories, animation, and games. The tool allows you to program your own logic, by designing logic trees and attaching them to different objects in the scene. Scratch is more generic than you can expect, but it is hard to design very complicated games using it. Scratch produces html games to be played in the web, and all the created games are hosted on their website. You can check their top games here (https://scratch.mit.edu/studios/121998/)
Specialized Engines:
These are tools designed to prototype certain game genres/types in a very fast/efficient way.
- Twine (http://twinery.org/): is one of the most famous interactive story tools. You can design your text based adventure game, interactive stories, and etc. Twine is a very easy to use tool where you build a story branching tree and link it together. Twine exports html and javascript games, so adding any javascript code works fine in the game. Here are some known games made with Twine:
- This Book is a Dungeon (http://store.steampowered.com/app/404690/)
- Depression Quest (http://www.depressionquest.com/)
- Bureau (http://www.akhalifa.com/bureau/)
- ChoiceScript (https://www.choiceofgames.com/make-your-own-games/choicescript-intro/): same as the previous tool in creating interactive stories. The output game is played in different way than games developed by Twine. Examples of games done with it:
- Runt of the Litter (http://store.steampowered.com/app/594660)
- Empyrean (http://store.steampowered.com/app/557700)
- Choice of the Pirate (http://store.steampowered.com/app/476490)
- The Hero Project: Redemption Season (http://store.steampowered.com/app/459310)
- Ink (http://www.inklestudios.com/ink/): same as the previous tools in creating the same genre. One of the features of Ink is its can be easily integrated in Unity (will talk about it later). Examples of games done with it:
- Sorcery! (http://www.inklestudios.com/sorcery/)
- 80 Days (http://www.inklestudios.com/80days/)
- Inform (http://inform7.com/): is similar to Twine where it is used to create interactive stories or text adventure games.
- Adventure Game Studio (http://www.adventuregamestudio.co.uk/): used to create point click adventure games like Monkey Island. I didn’t use this tool for a very long time, but I remember how easy it was to design a game using it. Here are some examples of games designed by it:
- Ben There, Dan That! (http://www.sizefivegames.com/games/ben-there-dan-that/)
- Resonance (http://resonance-game.com/)
- Heroine’s Quest: The Herald of Ragnarok (http://crystalshard.net/?g=16)
- RPG in a Box (http://www.rpginabox.com/): is a game engine to create topdown voxel based RPG/Adventure games. The tool use logic trees to add the logic and game flow, but you can write the code yourself if you want. Examples of games created by this tool:
- VloxelWorld (https://ofihombre.itch.io/vloxelworld)
- A Road to Awe (http://lectronice.com/a-road-to-awe/)
- Nekromega (http://nekromega.lectronice.com/blog)
- Seeker-17 (http://www.indiedb.com/games/seeker-17)
- RPG Maker (http://www.rpgmakerweb.com/): is a game engine powered by Ruby/JavaScript. This engine helps you design Japanese RPG games easily. It has many functionalities that can help you make a game without writing any line of code, but to do more complex stuff, you need to learn a little bit of Ruby/Javascript. Examples of games done using it:
- Lisa (http://store.steampowered.com/app/335670/)
- To the Moon (http://store.steampowered.com/app/206440/)
- A Bird Story (http://store.steampowered.com/app/327410/)
- Finding Paradise (http://store.steampowered.com/app/337340/)
- One shot (http://store.steampowered.com/app/420530/)
- PuzzleScript! (http://www.puzzlescript.net/): is a scripting engine where you write a few lines of scripts (that you can learn in less than 1 hour) to have puzzle games similar to Sokoban. PuzzleScript is powerful language that you can use it to script lots of different type/genres of games using it (not just puzzle games). The output games are light weighted html5 games. Examples of games created:
- Skipping Stones (http://www.draknek.org/games/puzzlescript/skipping-stones.php)
- Sokoboros (http://www.puzzlescript.net/play.html?p=d210a5248fa713153950)
- You’re pulling my leg (http://www.draknek.org/games/puzzlescript/pulleys.php)
- Threes: The Demake (https://benjamindav.is/threes/)
- Tunnel Rat (http://www.puzzlescript.net/play.html?p=7047165)
- Sokobond: The Demake (http://www.sokobond.com/puzzlescript/)
- Closure Demake (http://www.puzzlescript.net/play.html?p=9675998)
Generic Engines:
These are the most generic tools to create games. Unity, Unreal, and Game Maker are part of it, but they are not everything. Always choose the tool that is suitable for the project and for your capabilities. Don’t pick a tool that needs programming if you are not good at it. Don’t worry: all generic tools can do everything, so just pick what fits you.
- Construct 2 (https://www.scirra.com/): is a game engine that is designed to generate cross platform games using web technologies. The engine doesn’t need any coding and is easy to learn. This tool is famous between non programmers. Examples of games done using it:
- Dreaming Sarah (http://store.steampowered.com/app/296870/)
- The Next Penolope (https://www.scirra.com/construct2/games/the-next-penelope)
- Motor Melon (http://mortarmelon.com/)
- Cosmochoria (http://store.steampowered.com/app/293240)
- Angvik (http://store.steampowered.com/app/278890)
- TowerClimb (http://store.steampowered.com/app/396640)
- No More Probes (http://steamcommunity.com/sharedfiles/filedetails/?id=389058177)
- Stencyl (http://www.stencyl.com/): is a HaXe based game engine. The tool allows you to write code, but if you want to code, you can do almost all the functionalities using logic trees. Most of the famous games by Stencyl are for mobiles, but it works well with any other target. Examples:
- Super Dangerous Dungeons (https://itunes.apple.com/us/app/super-dangerous-dungeons/id1006111149?mt=8)
- Hue Ball (https://itunes.apple.com/us/app/hue-ball/id957527514?mt=8)
- Duke Dashigton (https://itunes.apple.com/us/app/duke-dashington/id904740787?mt=8)
- Golf is Hard (https://itunes.apple.com/se/app/golf-is-hard/id922144702?l=en&mt=8)
- Game Maker Studio (http://www.yoyogames.com/): is one of my favorite tools. This was the first game engine I ever used, and I think is the first known game engine before all this engines got out. I used it when I was a kid and didn’t know how to program. Game Maker allows you to use drag and drop to do all the logic for your game, but it also give you the ability to write code for it using its own scripting language (GML). Examples of games done using game maker:
- Hyper Light Drifter (http://www.heart-machine.com/)
- Crash Lands (https://www.crashlands.net/)
- Downwell (http://downwellgame.com/)
- Hotline Maiami (http://store.steampowered.com/app/219150/)
- Cook, Serve, Delicous (http://www.vertigogaming.net/CSD/)
- Clickteam Multimedia Fusion 2.5 (http://www.clickteam.com/): I remember trying this tool when I was a kid. It is really great and many amazing games have been developed using it. This tool doesn’t need any coding skills, as it is a drag and drop tool like Game Maker. Examples of Games:
- Knytt Stories (http://nifflas.ni2.se/?page=Knytt+Stories)
- Fistful of Gun (http://store.steampowered.com/app/229810/)
- Slash or Die (http://store.steampowered.com/app/480480)
- Kyntt Underground (http://store.steampowered.com/app/248190/)
- Nightsky (http://store.steampowered.com/app/99700/)
- GDevelop (http://compilgames.net/) is an open source tool, and as simple as Construct 2. It follows the same philosophy too. The only problem is it is not as popular as Construct. Example of games:
- Lil BUB’s HELLO EARTH (https://www.kickstarter.com/projects/iamlilbub/lil-bubs-hello-earth-a-retro-8-bit-mobile-video-ga)
- Mega Panic Pixel (http://gamejolt.com/games/mega-panic-pixel-alpha/42664)
- Lotus Meditation (http://gamejolt.com/games/lotus-meditation/107904)
- Gamesalad (http://gamesalad.com/) is one of the old game engines. It is old, few people use it and, from their website, it appears they target more schools and teaching institutes than indies and developers. This tool is similar to Stencyl in the way you develop games. You don’t need coding, just logic trees and you are fine. Example of games done with it:
- Mazes of Karradash (https://itunes.apple.com/us/app/mazes-of-karradash/id1003743244)
- Get Fiquette (https://itunes.apple.com/au/app/get-fiquette/id873798007)
- HEAVY – sword (https://itunes.apple.com/us/app/heavy-sword/id593786979?mt=8)
- Dungeon Burglars (https://itunes.apple.com/gb/app/dungeon-burglars/id913409670)
- GameBuilder Studio (http://gamebuilderstudio.com/): is a game engine that use the same philosophy behind Unity, but with no coding (just logic trees). I didn’t use it much, but it seems nice. This engine is not popular so I couldn’t find famous games developed using it.
- Buildbox (https://www.buildbox.com/) is a component based game engine like Unity, but with no coding skills required. It seems like a new engine, but the company developing it is pushing a lot of money for indies to start picking it up and develoing their games. You can see competitions from time to time with huge prizes. Examples of games done using it:
- Cubrick (http://acatalept.com/cubrick/)
- Switchy Sides (https://itunes.apple.com/us/app/switchy-sides/id1124073720?mt=8)
- Monument Drop (https://play.google.com/store/apps/details?id=com.bulkypix.monumentdrop&hl=en)
- Color Switch (https://itunes.apple.com/us/app/color-switch/id1053533457?mt=8)
- Puq (https://itunes.apple.com/us/app/puq/id1160428319)
- Voxatron (http://www.lexaloffle.com/voxatron.php) is a fantasy console made by an indie developer. The main idea behind it is to create 3d voxel based games and shared them with other people online (as the games are all HTML). I didn’t use it, but it seems simple and easy to use. It might need some programming skills, but not much. Example of games:
- Binding of Isaac Tribute Game (http://www.lexaloffle.com/bbs/?tid=2132)
- Katrinas Puzzle (http://www.lexaloffle.com/bbs/?tid=4018)
- Pico-8 (http://www.lexaloffle.com/pico-8.php): is a fantasy console by the same developer behind Voxatron, but this is famous between indies. Lots of indies make Pico-8 games. You need to know a little bit of programming to create games in Pico-8. Pico-8 create HTML games in form of sharable cartridges. All games are 8 bit games with a fixed screen size and use same buttons. Example of games by Pico-8:
- Celeste Classic (https://mattmakesgames.itch.io/celeste)
- Zepton (https://chiptune.itch.io/zepton)
- Eibas (https://brokenrook.itch.io/eibas)
- Kid Bludds Treacherous Tower (https://mhughson.itch.io/kid-bludds-treacherous-tower)
- One Room Dungeon (https://trasevol-dog.itch.io/one-room-dungeon)
- The Green Legion (https://guerragames.itch.io/thegreenlegion)
- Shuriken Toss (https://pixelcod.itch.io/shuriken-toss)
- PixelVison 8 (https://pixelvision8.itch.io/game-creator): is similar to Pico-8. Games are written in Lua. The difference is that this game engine is not as famous as Pico-8. I couldn’t find any well known games using it.
- Unity (https://unity3d.com/): is one of the most known game engine. Personally, I don’t like it. The problem is it has terrible support for 2D games, and is confusing to use for beginners. Its easy to deploy on any device. It has a huge community supporting it. Any new game technology takes Unity developers into account. To use it, you need to have some coding skills either C# or JavaScript. Many famous games are developed using it. Examples of these games:
- Hearthstone (http://us.battle.net/hearthstone/en/)
- Monument Valley (http://www.monumentvalleygame.com/)
- She Remembered Caterpillars (http://store.steampowered.com/app/470780/)
- Lara Croft Go (http://store.steampowered.com/app/540840/)
- Cosmic Trip (http://store.steampowered.com/app/427240)
- Unreal Engine (https://www.unrealengine.com/what-is-unreal-engine-4): is another famous engine. Unreal focus more on performance and graphics than other functionalities. But it is always simple to extend the functionality of the engine by writing some scripts. Here is a list of games developed by it:
- The Soulkeeper (http://store.steampowered.com/app/442660/)
- Spellbount (http://store.steampowered.com/app/463400/)
- Tekken 7 (http://tk7.tekken.com/)
- Cryengine (https://www.cryengine.com/): is another famous engine. Cryengine is similar to Unreal in focusing on performance and graphics. Here is a list of games developed by it:
- Crysis (http://crysis.com/)
- Ryse: Son of Rome (http://www.crytek.com/games/ryse/overview)
- Evolve (https://evolvegame.com/agegate/)
- Cocos Creator (http://www.cocos2d-x.org/): is similar to unity in the interface and how to use it. It’s used to create 2D games as it uses Cocos2D-X. Examples of games using it (Cocos2D-X):
- Badland (http://badlandgame.com/)
- Angry Birds Fight! (https://itunes.apple.com/us/app/id933958078)
- Castle Clash (https://itunes.apple.com/us/app/id692669501)
- Geometry Dash (https://itunes.apple.com/us/app/id625334537)
- MightyEditor (http://mightyfingers.com/): is an open source game editor for Phaser. It allows designing scenes with sprites/images and modify them. The game logic has to be programmed in Javascript. I couldn’t find any known games designed using it.
- Phaser Editor (http://phasereditor.boniatillo.com/): is similar to MightyEditor as both of them are editors. Phaser Editor IDE is an update over eclipse so if you are used to eclipse, you won’t have huge problem with interacting with Phaser Editor. I couldn’t find any known games designed using it.
- Superpowers (http://superpowers-html5.com/index.en.html): is an open source game engine similar to unity but powered by TypeScript. The output games are HTML and Javascript. Its not that famous but the main ideology behind it, is to have this nice ecosystem in working together with your team on a project together. List of games developed by it:
- PupperTrator (https://notexplosive.itch.io/puppertrator-web)
- Party at the Knightclub (https://sparklinlabs.itch.io/knightclub)
- S’more Mayhem (https://lukelanfaust.itch.io/smore-mayhem)
- Snacats (https://sparklinlabs.itch.io/snacats)
- Godot (https://godotengine.org/) is our last engine in the list. This engine is very similar to Unity, and even needs coding skills, the only difference is that it is open source. It is not popular, so I don’t recommended this much, but it could suit somebody out there. Here a list of games created using it:
- Tap Ball Adventures (https://play.google.com/store/apps/details?id=com.pixelmaskgames.tapballadventures)
- Castle Baloneybeard (http://gamejolt.com/games/castle-baloneybeard/196758)
- Ghost Driver (https://play.google.com/store/apps/details?id=com.cyphercode.ghostdriver)
- Curse of the demon’s sword (https://play.google.com/store/apps/details?id=com.DevilWare.DemonSword)
These are some of the game engines that have a neat and nice IDE to help you in developing. There is other game engines that I didn’t list because they are only code based. Some of these engine are popular between game developers such as Phaser (JavaScript), PlayCanvas (JavaScript), LibGDX (Java), Defold (Lua), Flixel (ActionScript), OpenFl (HaXe), MonoGame (C#), FlashPunk (ActionScript), HaxeFlixel (HaXe), Starling (ActionScript), HaxePunk (HaXe), Love (Lua), Otter (C#), Ogre3D (C++) and etc. There are more engines out there than most people know. This game engine list is sorted by how complex the engine is, then how famous the engine is. Now, after knowing about all these, you have to choose wisely what fits you.
The following table summarize all the tools (All generic tools can be used for 2D or 3D games.):
Engine Name | Type | Coding | Platform | Target Outputs | Popularity | Cost |
---|---|---|---|---|---|---|
Bitsy | Educational (2D Story based Topdown) | No | Web IDE | HTML5 | Not popular | Free |
Dungeon Decorator | Educational (2D Story based Platformer) | No | Web IDE | HTML5 only in the program | Not popular | Free |
Scratch | Educational (2D Generic) | No | Web IDE | HTML5 only in the program | Popular between children | Free |
Twine | Specific (Interactive Stories) | Optional (Javascript) | Web IDE | HTML5 | Popular | Free |
ChoiceScript | Specific (Interactive Stories) | No | Any text editor | HTML5 | Popular | Free |
Ink | Specific (Interactive Stories) | No | Win / Mac / Linux | Any Target | Moderate | Free |
Inform | Specific (Interactive Stories) | No | Win / Mac / Linux | HTML5 | Moderate | Free |
Adventure Game Studio | Specific (2D Point Click Adventure) | No | Win | Win | Moderate | Free |
RPG in a Box | Specific (3D RPG) | No | Win / Mac / Linux | Win / Mac / Linux | Not popular | $20 |
RPG Maker | Specific (2D JRPG) | Optional (Ruby / Javascript) | Win / Mac | Crossplatform | Moderate | Limited ($80) |
PuzzleScript | Specific (2D Turnbase Puzzle) | No | Web IDE | HTML5 | Moderate | Free |
Construct 2 | Generic (2D) | No | Win | Crossplatform | Popular | Limited ($100) |
Stencyl | Generic (2D) | Optional (HaXe) | Win / Mac / Linux | Crossplatform | Popular | Limited ($100) |
Game Maker | Generic (2D) | Optional (GML) | Win | Crossplatform | Popular | Limited (>$99) |
Multimedia Fusion 2.5 | Generic (2D) | No | Win | Crossplatform | Moderate | Limited (>$100) |
GDevelop | Generic (2D) | No | Win / Mac / Linux / iOS / Android | Crossplatform | Not popular | Free |
Gamesalad | Generic (2D) | No | Win/Mac | Crossplatform | Not popular | Subscription ($17) |
Gamebuilder Studio | Generic (2D) | No | Win / Mac | Crossplatform | Not popular | Limited ($100) |
Buildbox | Generic (2D) | No | Win/Mac | Crossplatform | Not popular | Subscription ($99) |
Voxatron | Generic (3D) | Not sure | Win/Mac/Linux | HTML5 | Not popular | $20 |
Pico-8 | Generic (2D) | Yes (Lua) | Win / Mac / Linux | HTML5 | Moderate | $15 |
PixelVision 8 | Generic (2D) | Yes (Lua) | Win / Mac / Linux | Crossplatform | Not popular | $10 |
Unity | Generic (2D/3D) | Yes (C#/JavaScript) | Win / Mac / Linux | Crossplatform | Popular | Free (Subscription >$35) |
Unreal Engine | Generic (3D) | Yes (C++) | Win / Mac | Crossplatform | Popular | Free (pay %5 revenue) |
Cryengine | Generic (3D) | Yes (Lua) | Win | Win / Linux / Xbox / PS4 | Moderate | Subscription (>$50) |
Cocos Creator | Generic (2D) | Yes (JavaScript or CoffeeScript) | Win / Mac | Crossplatform | Moderate | Free |
MightyEditor | Generic (2D) | Yes (JavaScript) | Web IDE | Crossplatform | High | Subscription (>$5) |
Phaser Editor | Generic (2D) | Yes (JavaScript) | Win / Linux | Crossplatform | High | 1 Year Free (>$45) |
Superpowers | Generic (2D/3D) | Yes (Typescript) | Win / Mac / Linux | HTML5 | Not popular | Free |
Godot | Generic (2D/3D) | Yes (Python) | Win / Mac / Linux | Crossplatform | Not popular | Free |
In the end, I would love to thank my friends Gabriella Barros and Dan Gopstein for all their effort, feedback and help in creating this post.
Bye Bye
Ahmed Khalifa
Very handy, thank you!
This seems like a really thorough guide!
The only thing I would add is PlayCanvas (https://playcanvas.com/). I was curious about what your thoughts on it are. It seems like a really nice engine, almost mirroring Unity, but in the browser. And it has really efficient performance (see: https://blog.playcanvas.com/playcanvas-versus-unity-webgl/ and https://blog.playcanvas.com/the-making-of-seemore-webgl/) but there’s been very few really good games made with it that I’ve found. Although I largely think that’s not because the engine isn’t capable, but because most the people it has attracted are people interested in making tools and other applications and not necessarily games? (Perhaps also that there’s no good model for monetizing purely web based games right now?)
I was trying to list tools only with IDE/Framework/Creator that help beginners. But As I can see PlayCanvas seems amazing in performance compared to Unity 🙂 Thanks for your feedback. I will update the post soon to involve game engines that doesn’t have Framework for it.