Free Guide To Making Games
Like this post but want to get the entire guid as a PDF? Simply sign up for my mailing list and also get access to great tips and advice on how to make better games. I promise to not spam your inbox!
Here is a quick rundown of things to look for in a good game framework:
Speeds up development by including collision and physics, and handles input
Has good documentation and an active community to help answer questions
Is easy to pick up and matches your skill level (drag and drop for non-coders and low-level access for seasoned developers)
Easy multi-platform distribution, allowing you to get your new game on as many platforms as possible
To help you pick the right game framework, I have highlighted a few of the most popular ones which are great for people getting started making their first game. I have arranged these from easy to hard based on the above criteria.
Construct 2 (Beginner)
Construct 2 is as easy as it gets for making a game. It employs a drag-and-drop behavior system, where you build up game logic from pre-made scripts that are attached to your game’s elements.
It has its own Web-based tool and support for publishing to a number of different platforms. Construct 2 games are built in HTML5 (although you never have to touch the code itself) and, because of this, it’s ideal for publishing your game on the Web. The only down side to Construct 2 is that you are removed from the coding aspect of making the game, so you are fully dependent on what Scirra has provided. And, while you can add additional functionality via plugins, it’s not ideal if you come from a coding background and want to manually tweak things yourself.
GameMaker (Beginner to Intermediate)
GameMaker is a great tool for making 2D games. It’s incredibly powerful, and a lot of well-known indie success stories got their start in GameMaker (“Spelunky,” “Hotline Miami,” etc.).
Unity (Intermediate to Advanced)
Right now, Unity is the default game framework for a lot of the success stories you read about on iOS. Many of the top 100 iOS games were built with Unity, and it continues to expand its reach.
The IDE is very polished and easy to use, but being a 3D tool means that there is a certain level of knowledge you will need before getting started. Unity supports three languages: UnityScript (which is similar to JS), C#, and Boo. Unity now has a free version that supports exporting to desktop and mobile that displays the Unity logo on startup. The pro version gets incredibly pricey but adds lots of must-have features for more advanced game developers. You can also export to console, such as the Xbox, PS3, Wii U, and more (but those licenses cost even more). Unity has a Web player that relies on a plugin, so while you can export your game to the Web, it won’t be playable on mobile browsers. Finally, Unity is in the process of releasing a 2D workflow that will be a huge advantage to anyone not interested in making 3D games.
HTML5 (Intermediate to Advanced)
Sometimes you want to control every aspect of your code. HTML5 is a great place to do that, and it’s one of the only game platforms that allows you to target multiple platforms with the same code base, and include the browser on desktop and mobile as well.
There are a lot of really great HTML5 frameworks out there, but the two most popular are Impact ($100 license) and Phaser (free). The one thing to keep in mind with HTML5 is that it tends to be rough around the edges. You will have to manage browser compatibility across desktop and mobile, and native app distribution is still an issue. Also, in many cases you will need to bring you own tools, but seeing a game work perfectly in a mobile browser without a plugin opens up a lot of doors you would not get in a native mobile app store.
While I could probably write an entire book on different game frameworks and platforms, I don’t want to overwhelm you. The good news is that, if you are just starting out, there is guaranteed to be a framework that is right for your skill level or game idea.