Image courtesy of Kelly Sikkema
Want to make a game but not sure where to start? Let me, a guy who has made a whole two mobile games, point you in the right direction.
- 11 minutes to read
- 0 comments
A little over a year ago I made my first game – Tappy Toyts. The reasons behind the game? Well, I’d spent countless hours playing games and thought it was about damn time I made one myself. It was by no means successful but it did rack up over 300 downloads across iOS and Android. For me, that wasn’t bad, seeing as it was mainly for funsies. Now, more recently, I’ve released my 2nd game, Mushrun. Again, it’s nothing more than your typical mobile game but I’m bloody pleased with it.
“What’s the deal with all this trumpet blowing?” I hear you yell. I’ll bloody answer your question! Prior to releasing these two games, I’d never had any experience in game development, so ‘Uncle Two-mediocre-mobile-games’ is here to say “You too can build a game!”. I’m basically the Rob Schneider in early Adam Sandler films for people who want to start building games. #nichereference.
Who’s this for?
Anyone who wants to make a game but doesn’t know where to start.
What is this?
What it isn’t is a tutorial on how to make a game. It’s more of a collection of resources and tips and tricks that I’ve picked up whilst building my games, alongside general “you can do this!” geeing up.
First things first, obviously. I don’t consider myself a game developer. The games I’ve made are really quite basic and I’m by no means in the same league as proper game devs. What I am, instead, is someone who loves ‘the video games’ and wanted to try and make one myself. Fortunately, we’re in a time where the technology is so accessible that anyone can build a game, so that’s what I did, and that’s what you can do too!
There are a lot of options when it comes to building a game. You can code from scratch, use a library or you can use a game engine. I went for the latter because I don’t have teh 1337 skillz and the two main available options were Unreal Engine and Unity. Both are now free to use, with Unreal taking a cut of any money made once your game is live and Unity requiring a license after you earn over $100k (or if you want some extra features).
In the end, I chose Unity. The reasons for choosing Unity? Mainly because I knew someone who released a game, called Bloater, around the time I wanted to start building Tappy Toyts and that too was built in Unity. Now that I’ve spent a good couple of years with Unity (on and off) I genuinely cannot fault it.
If you’re looking to jump into developing your own game and have no prior experience I whole-heartedly recommend using Unity. The engine is easy to use, the documentation is incredibly vast and the learning materials are superb (more on those later). You’ll still need some technical know-how but this can be picked up relatively easily.
Unity tends to get a bad rap when it comes to the quality of games that are developed in it. Ignore it. True, I don’t fully understand various techie terms and deep computing voodoo but I’ll just leave a couple of links to games built in Unity and let you decide. Ori and the Blind Forest, Yooka-Laylee, Cities Skylines, Superhot, to name a few.
Are you still here? Goodo! The next step is learning how to build a game in your engine of choice. As I said previously, the rest of this post is focused on Unity, but you may just learn something even if you’re going with a different option. Probably.
Back to school!
If you’re anything like me you’d like to dive in head-first and start building something right away — this is where the Unity tutorials really shine. In the beginning, I wouldn’t recommend starting on your game right away. Instead, I’d focus on learning about the engine and how to do basic things in it. You’ll quickly be moving onto more exciting tutorials but an overall understanding of the system is a must. I’ll also stress two points here.
- It’s not going to be a massively quick process. I spent two or three months, in between working a full-time job, watching tutorials to get a good understanding of Unity. To be fair, that’s ridiculously quick in comparison to learning game development outside of an engine, but it won’t be something you’ll learn over the weekend.
- You will need to write code. When I initially started looking into Unity I saw a few posts talking about Unity’s ability to develop games without writing any code. Unfortunately, this isn’t the case but don’t let that put you off. The tutorials and documentation are incredibly easy to follow.
Earlier I mentioned that Unity has a bunch of tutorials on game development. I didn’t lie, here is the proof. Within the tutorial section, there is a subsection dedicated to the interface and the bare essentials on using Unity — aptly named “Interface & Essentials”. This is the perfect place to start and will get you up to speed in next to no time.
After the “boring” stuff (which is actually quite interesting IMHO) you can jump into the more fun stuff, the project tutorials. Choose whatever project takes your fancy and get stuck in. Each tutorial has a difficulty rating attributed too, which is really handy. Even if the tutorial isn’t directly linked to the type of game you’d ultimately like to make, you’ll still pick up valuable bits of information that can be repurposed for your final game. This is a personal favourite of mine — Space Shooter
As great as the Unity tutorials are, I also purchased a book called Unity in Action. It’s a bloody good book which teaches you the core principles of Unity in the form of micro game projects. You start by building an FPS, moving through to 2d puzzle games, third-person adventures and ending with an RPG. The example games are basic but encourage you to continue working on them. It’s well worth a read and helped me a helluva lot.
I know it’s easy for me to sit here, directing you to follow tutorials, read books etc. in a vain attempt at coming across as helping you, but I promise that once you’ve done a few of these you’ll be well equipped to start working on your own game.
How long do you need to learn before you start making your game? As scapegoaty as it sounds, you’ll know when you start feeling comfortable. And at the end of the day, even if you run into any problems, the internet will still be there to answer any questions, unless something goes horribly wrong with the World.
Game dev story
Now is the exciting part. You’ve got all the knowledge to start working on your game. You’ll probably have an idea for a game at this stage or maybe you don’t. Either way, the best thing to do at the start is making a plan. Plan everything. Sketch levels down in a notepad. Think about things like scoring systems, unlockables, level design, gameplay features. Basically, plan everything you can think of.
When I started making Tappy Toyts it was still very much a learning process but halfway through development I realised the game needed something else. It was at that point I had to start shoehorning extra bits into a nearly finished game. It was a massive ball ache. The oversight was from my lack of patience, and want to jump straight in, so heed my words. Plan. Plan. Plan. You’re never going to plan for all eventualities and the game will naturally evolve over time, but the more you know about your game before starting developing it will help no end.
Building a game isn’t just about the code behind it, you’re going to need artwork, sound effects, music, models, basically a lot of other stuff. Chances are your budget is tight, especially if this is a hobby build, so here are some great resources that won’t cost you a penny (or very little).
GIMP is a great tool for creating bits of 2D artwork. It’s completely free and offers a similar toolset to Adobe’s Photoshop. It’s not quite as advanced but will certainly help you create UI elements or sprite artwork.
Blender is a free piece of software used for creating 3D models. The great thing about Blender is that you can export/import your models directly into Unity. You can also create animations in Blender and carry these across too. It’s also possible to export frames of animations as flat images and then use them to create a sprite sheet. This is how I did the animations for the turtles in Tappy Toyts.
GarageBand (Mac only) is a handy app that can be installed on any Apple device (except the watches). With GarageBand, you can easily create pieces of music for your game and import them into Unity. I even used GarageBand for some sound effects on Tappy Toyts by creating an incredibly short song with a couple of notes. That was probably a bit overkill tbf.
If you don’t fancy the overcomplicated method of creating sound effects in GarageBand you can turn to freesound.org instead. Freesound has a bunch of sound effects that can be used in any commercial product (check the license before using them though!)
Art assets can arguably be one of the trickiest items to source, particularly good looking ones. Fortunately, Unity has a built-in asset store where you can purchase, or download for free, various bits of code, models, plugins etc. and load them directly into your game. It’s the go-to place when looking for extras for your games but there is another site that is well worth looking at — Kenney.nl
Kenney has a large collection of free assets available on his site, alongside some premium bits and pieces. The artwork has a unique style but can be purposed to any type of game. Even if you’re using these as a placeholder, whilst you build your overall art style, they’ll help you to get the ball rolling on your game.
I don’t recommend that you have a breakdown. Please don’t do that. Instead, break down the project into manageable chunks. It might seem obvious but if you approach your game as a whole it can be extremely daunting, so tackle each bit at a time.
In Mushrun you can collect coins which are used to unlock new caps for your character. I used the process of breaking down for this somewhat simple task. First I worked on setting up a trigger for when the player interacts with the coin. That then opened up the ability to play a sound effect when the coin is collected. After that, it was a case of showing the collected coin in the HUD etc. Approaching this in its entirety was overwhelming but setting these smaller goals helped me no end.
If you apply this process to your game you’ll not only find it easier to develop, you’ll also keep yourself motivated as each application is a little victory.
Achievements and Leaderboards for mobile
One problem I faced when integrating achievements and leaderboards in both games was utilising the same bits of code for both Android and iOS. The great thing about Unity is that you can have one project and publish this on multiple platforms so I didn’t want any content separation.
When you’re at the stage of creating your achievements I’d recommend creating them in the Play Developer Console (Android) first. When achievements and leaderboards are created for Android they’re automatically assigned an ID. When you create achievements on iOS, however, you need to manually enter an ID. Because of this, it makes sense to create them in Android first and then use the auto-generated IDs when setting them up on iOS. This means that when you come to unlock them in-game, you’ll only need to reference the one ID.
Next, you’ll need to install a third-party plugin for Unity — Play Game Services for Unity. If you follow the instructions on this page you’ll be able to then use the global Social.API in Unity to unlock achievements, post to leaderboards etc. to both platforms with the same bit of code. It’s incredibly handy!
Hopefully you’ve found something of use in this post, or even been motivated to start your project. If you have any questions feel free to drop a comment or hit me up on Twitter.
Go forth and make some games, you beautiful people. And one last thing – enjoy yourself!