0:00Last time on developing, I picked my game engine - Unity - and I started to learn how to use it. But now it's time to reveal the idea for my game and, well, get started with making it. But where does one begin when developing a game? And I think this is a vitally important question because, as you are about to see, if you take the wrong direction when you start developing a game it can be disastrous for the project. Let me explain.
0:44Okay so let me start with the idea for the game. I am going to make, and brace yourself because this is crazy, a 2D, side-scrolling, platform game. Yes, I know, every indie developer starts by making a side-scrolling platformer. But I think I have some good reasons. I love the genre. Platformers are relatively easy to make in the grand scheme of things - it’s not a MMO at least. And I've made loads of videos about platformer level design and character design which should prove helpful.
1:17Now this is also going to be a, brace yourself again, platformer with a unique twist. The idea is that the character in my platformer is magnetic which means they will repel away from some platforms and attract to others. And you can change your polarity with a button press. The idea actually came from this game: The Legend of Zelda: Oracle of Seasons. In this game you have a magnetic glove power-up which allows Link to repel from some surfaces and attract towards others. You can also use it to pick up large metal balls for puzzle solving and use it to fight enemies. It's a really cool mechanic but it does feel somewhat limited by the genre, the top down camera perspective, and of course the limited technology of the Game Boy.
2:06So I thought… what if I were to borrow that game idea and put it in a different genre: a fast-paced, 2D platformer. Something akin to Celeste or Super Meat Boy. A game where you have to master the magnetism for speed and fluidity and precision. So that is the idea. And the question now is: where do I begin with it? Do I just jump into Unity and start coding? Do I jump into Photoshop and start making some artwork for it?
2:37Do I start thinking about the storyline or the characters? Where do I begin?
My Game-Making Background
2:442:43I'm going to level with you: this is not the first game I've ever tried to make. Ever since I was a little kid I've come up with ideas for games, and at various points in my life I have tried to make those games in different tools and whatnot. But I almost never finish those games and I think the reason is the same, every single time: I start in the wrong manner. Let me show you. So I got this folder from my parents house and it is full of notes and sketches and ideas for a game I was going to make a few years before I started Game Maker’s Toolkit.
3:24That is actually just a mouse mat for Starcraft Ghost. That game never came out, did it? That might be worth something actually, put that in the eBay pile. So this game was going to be called Carter's Curse. It was about famed archaeologist Howard Carter, the dude who discovered Tutankhamen's tomb. And, in my game at least, he would also awaken an ancient Egyptian curse meaning he'd have to fight zombies and mummies and ancient Egyptian gods. I remember spending hours and hours drawing all of this stuff. I mean… what a nerd!
3:58Anyway. So how would you go about fighting these enemies? The answer: playing Picross puzzles. Picross is this logic-based, grid-based, puzzle game… a bit like Sudoku. Nintendo's made loads of Picross games. I was really inspired by games like Bookworm Adventures where you have a puzzle at the bottom of the screen, and completing the puzzle does damage to enemies in a little fight scene at the top of the screen. And so my idea was kind of the same: you'd have a Picross grid at the bottom of the screen and Howard Carter would be fighting monsters at the top of the screen.
4:30So I jumped into development. I was making the game in an app for iPad called Codea which lets you make iOS games on your iPad. I'd actually previously used it for a very standard Picross app for iOS so I knew I could probably code it, but I wanted the graphics to be amazing so I jumped into Photoshop and just started making loads of sprites and animation frames. I actually have a Dropbox folder that is full of sprites and animations. I made loads of different characters, I made finishing moves for Howard Carter, I made an introductory cutscene, I made menus with big juicy buttons to press. I really got into it.
5:10But then I realised something. Something quite important. Something quite detrimental to the project. The game wasn't any good! It was really bad, it wasn't fun at all. And the more I coded it and the more I developed it the more I realised what the problem was: Picross just doesn't have enough depth for this type of game. You can't really have tactics or strategy, you can't change what you're doing depending on which enemy you're fighting, and ultimately it was immaterial that you were fighting enemies. You could ignore that entire top part of the game and the game would still work because all you're doing is just playing Picross puzzles. So it meant that I didn't have the ability to make the game more difficult or more interesting depending on which enemy you were fighting and it meant the player was just doing the same thing over and over again.
6:05I had made a game that was shallow and repetitive and dull. And maybe I could have fixed it but I was so far gone at that point and so demoralised that I just kind of scrapped the whole thing. So what was my mistake? Well, with many, many years of hindsight… it's been almost a decade now… it's pretty obvious to me what happened. And it's this: when you're making a game there's a bunch of different things you have to create. The main ones being the music, the art, the game design, the story, and the code. And now it's easy to think of them as being equal… but they're not. In a lot of cases, the game design is not equal but instead it is the foundation upon which all the other parts sit. And so if you get that bit wrong the whole thing falls apart.
6:58I mean you can fix the bugs and you can redraw the graphics, but if the gameplay is fundamentally flawed well the whole project can sometimes be unsalvageable. And this is pretty much what happened to me. I spent so much time on the art and animation that by the time I finally got around to the gameplay, I realised that the whole thing was flawed. I had basically built a house on really shaky foundations and then I was surprised and upset when my toilet fell through the floor.
7:26Embarrassingly this is not the only time this has happened to me. I wanted to make a film noir point-and-click adventure game with a unique procedural generation clue system - but I spent so much time on the story and researching the time period that I never got around to actually designing that system. And I wanted to make a fast-paced modern twist on the mobile game Snake but I got bogged down in bug fixing and trying to get the movement code perfect that I never found out if that game was any fun before I got bored and burnt out.
7:57So every time I've tried to design my own game I've put other elements like story and graphics ahead of the gameplay. Why? Well I think it comes down to making two very wrong assumptions. Assumption one is that the game always felt kind of cool in my head, so I just kind of assumed that the game would be fun when I made it. Obviously that was wrong. And assumption two is that I'm not able to find out if the game is fun until I've built the game. I have to just kind of keep making the game and at some point I'll realise if it's any good… right? No, wrong again.
8:40And this is all very cringe-worthy to say because now the answers are so obvious. But they weren't obvious then - it's only since doing Game Maker’s Toolkit, since researching game development, since interviewing dozens and dozens of game designers that I now know how most successful games start.
The Importance of Prototypes
9:009:00You see game designers have loads of ideas all the time and I'm sure they all seem amazingly fun in their heads. But the best game designers know that their brains are horrible smelly liars. The only way to know if a game idea is good is to build it, to test it. But instead of having to build the entire game, designers just have to build a… prototype. A prototype is just this small scrappy test bed for an idea, just designed to see if the idea is fun or not. These prototypes are usually incredibly ugly with just unfinished art or basic shapes or sprites stolen from other games. They're often buggy and broken and they have nothing in them but the bare minimum features needed to test that mechanic. They are a just functional enough version of the game idea, built as quickly as possible, with the only purpose being to see if that game idea works. Is it fun or interesting? Is it worth pursuing? Is it a strong foundation upon which to build the rest of the game?
10:09And so that's what I'm gonna do. This time I'm gonna get it right. I’m gonna focus exclusively on making the prototype and I am going to be extremely disciplined and not do anything other than just test this game idea. So in terms of art, I'm just going to pull stuff off Google Images. There's going to be no music, there's no story, I'm not going to think about the name of the game or the name of the characters. I'm not gonna start designing an app icon for a game that hasn't even been built yet, Mark, you idiot. The code will definitely be buggy and broken because I'm still just learning Unity, but it should be good enough to see if this idea works. Just a sandbox to test out game mechanics and see what's fun.
10:52So let's get started, and open up Unity.
Building My Prototype
10:5610:56The first thing I needed to do was to have a character who can just move left and right and jump, so I just have it apply forces to the rigidbody when I hit the right keys. This already had some problems, which wasn't a great start, but I got there in the end. Then I put a magnet in the scene and needed to make it so the character would attract towards the magnet. Now to get this working I had to become an expert programmer, I had to use my galaxy brain coding skills, so I limbered up my fingers and typed in the following line of code… how do I move a rigidbody towards another object. Okay, yes, I Googled it, found some code, and slapped it in my project. But I did make sure I understood how it works - it basically finds the direction between the character and the magnet and applies forces to the rigidbody in that direction. I also tweaked the code so that it would speed up as you get closer to the magnet.
11:50Then I made it so you could turn off the magnet with a button press which had the intended effect of keeping the character's velocity going, sending them flying through the air. So if I slap a platform up here I can attract the character towards the magnet then let go and jump up here. Which does feel pretty good… but it's a little hard to control things. This code maybe isn't perfect, things get out of hand pretty easily.
12:15But as I was researching this stuff, I stumbled upon something really useful in Unity. It's a built-in component called the point effector, and it's basically… a magnetic field. I don't know how I missed this, the icon for it is literally just a magnet. Here's how it works: you give a GameObject a collider and a point effector, and then set an attract strength. And now when a rigidbody is in the collider, it's attracted towards the center of the field.
12:42You can also use Unity's layer mask system to make it so it only attracts certain objects. So this would certainly make the game a lot easier to make, so I decided to remake the prototype. And, yes, the game feels more grounded. It's easier for me to tweak things and I can do cool stuff like if I put the attract point on the poles of the magnet, this happens - which looks pretty sweet. But when I made this second prototype, for some reason… not quite sure why, I decided to not use Mario this time, but replace him with a picture of a magnet for the main character. And this kind of gave me an idea: what if the character is not magnetic, but there is a magnet in the game world. And the character can walk over and pick up the magnet.
13:29To achieve this I used Unity's built-in joint system, it's another component. This allows you to connect two rigidbodies together using different types of joints like hinges and springs. So now the character is essentially holding the magnet and if the magnet is attracted to a piece of metal, the character goes with it. Until you let go of the magnet, and now you can walk around again. And that gameplay I wanted before, with using the trajectory of the magnet to send your character up to a higher platform, that can still be achieved by just letting go of the magnet in mid-air.
14:01Plus it allows for all sorts of other things, like you can have two magnets, or more. And you could maybe, like, place the magnet up here, then get an enemy to chase, you turn off the magnetism, and splat! Oh this is kind of cool, actually. Maybe this could work. Suddenly the game felt way more interesting than my original idea, which I have to admit I was starting to get a little bit worried about. When your character is magnetic and being attracted and repelled it's very easy to feel a bit out of control, but having the magnet be a separate object means you get times where you are completely in control as the character, and a bit more out of control when holding the magnet.
14:41Plus, I was a bit worried just how many ideas I could come up with for a game where the character is magnetic. But as soon as I had it as two separate entities, the ideas just started flowing. Plus I really like games where you move back and forth between two distinct types of gameplay, like, think how Mario Odyssey changes when you do and don't have the hat. So in my game, the character is nimble and can jump really high without the magnet, and slow and leaden when holding the magnet - but, of course, that magnet allows for all sorts of amazing possibilities.
15:14Now I shouldn't be surprised that an even better idea emerged during the prototyping process. As we saw in the GMTK episode The Games That Designed Themselves, it's pretty common for new ideas to emerge during prototyping. Take a look at the game Crypt of the Necrodancer: when that game was originally designed, it was just supposed to be a roguelike with a tight time limit in between your turns. But as the designers made it, they realised that it would be even more interesting if, instead of it being on a timer, it was set to the beat of a song.
15:46So prototypes aren't just a way to test and prove the validity of an idea: they are a way to generate new and even better ideas. Now during this whole stage I made another interesting discovery in Unity: this one is called sprite shapes. And it's generally used to make really cool organic level design, like you might see in the Ori games, but for my purposes I just put on a blank colour and this allowed me to make level design really, really fast. I could just snap together a prototype area by dragging handles around like doing something in Photoshop. So I built the prototype again and this time I wanted the character to be a little bit better to control, something closer to a real video game character.
16:28Now I don't want to get bogged down in coding movement and jumps, so I downloaded a character control script off the internet. It works really good, I can focus on tweaking it or remaking it or whatever in the future: right now I don't want to put time into that. Also in this prototype I started looking at some more mechanics like being able to throw the magnet and then being able to recall it back to you like Thor and his hammer. And because the magnet rigidbody bumps into the character's rigidbody, it gives you this little bit of feedback when you catch the magnet. It's like free game feel, it's amazing.
17:04And then I came up with various scenarios that you could use the magnet in, like throwing it at a wall to create a platform. Maybe connecting it to a piston and then disconnecting it at the right time to send it flying. Maybe switching its polarity to jump between two conveyor belts. Or how about you weigh down this platform, stand on the top of it, and then change the magnet's polarity to shoot you up in the air? Whoa this is actually pretty cool, right? This is looking like a video game. This is pretty fun!
17:35And this really was the point where I felt like this game idea certainly has some potential. It's original: I've seen a bunch of magnet-based games but nothing quite like this. It allows for both platforming and puzzle based gameplay. It feels like ideas for this game just flow really easily so I can build loads of different levels. And, best of all, it's just really fun to play. I can just jump into this scene in Unity and pick up a controller and it's quite enjoyable. That is surely a very good sign.
18:06And so this is the power of prototypes: you can use them to test if a game idea is actually any good. And, if you're really lucky, you might find that new ideas emerge during that prototyping phase. Now I think you do have to have a certain level of discipline here, you really do have to say ‘I’m not going to focus on anything extraneous right now, just the gameplay’. And, I mean, it is hard. Like, in this video I didn't show you the entire week I spent looking at particle effects and shaders and UI elements and things like that - I'd gone right back to that old behaviour of getting distracted and carried away by stuff that just doesn't matter right now. But luckily I caught it in time and scrapped that prototype, before getting back to the stuff that is important.
18:54And ultimately I think it worked out: I ended up building something that I think is pretty fun, that does have potential, and that I am excited to work on. My previous games which I tried to make when I was much younger were built with a sort of blind hope that the game would be fun, which isn't the most confidence-inducing way to make a game. But now it feels like I'm building on a really strong foundation and so all those other aspects - the story, the music, the artwork - that can be built with faith that the underlying foundation is solid.
19:29And so I feel like this is the way to start making games: building a prototype. The only question is: what the hell do I do next? I guess we'll find out next time, in the next episode of Developing. Thank you so much for watching and I hope you'll join me on the next episode of this journey. Goodbye.
20:14The idea actually came from this game, The Legend of Zelda: Oracle of Seasons. Damn it. From this game. Oops. From this game. It came from this game. This game. This game. This game: The Legend of Zelda: Oracle of Seasons. The idea actually came from this game: The Legend of Zelda: Oracle of Seasons. That was pretty good.