Talk about slapping me with a million dollar question. Oh yeah, that’s me sitting in a Lamborghini playing my first ever game – DRIFT 84.
Let’s start at the beginning. I am going to assume that you have zero prior programming knowledge and that you’re jumping into the unknown with the goal of finding a new passion for video game development.
I’ll be honest, it’s 23:30 in the UK and I have had a few glasses of Japanese import Sake, Bjork is on in the background. This doesn’t bode well for my skills as a teacher, however I believe it will help me cut the crap and get straight to the point.
To write games you need a program to help you.
Just like if you’re a graphic designer, you may choose Photoshop or if you’re a video editor, Premiere Pro. But like all things, you have a choice here… brilliant, already we’re met with uncertainty. Get used to that, as a game developer you’re going to be constantly tested as to whether you’re making the right decision implementing that new update, or if the game is just better off without glowing HUD effects.
Luckily for you, times have changed since the 1980’s. Back then you had to write games in machine code, each machine had a different code language and therefore required many programmers just to make a game compatible on more than one machine. This is why in the 90’s you saw a lot of games on Nintendo that didn’t release on Playstation. It’s because they would have to completely rewrite the game for each platform.
However today, things are a billion times easier.
Cross Platform Programming
The software you use to program in is called an IDE. In 2016 you can use one IDE and at the click of the button it will automatically rewrite your code so that it works on not only Playstation, but also Xbox, iOS, Android, Web, even your mother’s wifi toaster.
This means you only need to learn one programming language because at the click of a button, your programming software (IDE) will automatically rewrite the code so that it works on every platform.
Here’s the catch – each IDE uses it’s own code, a language based off another language filled with it’s own twists and turns. Therefore, it’s important to pick a good one from day one, otherwise you may be rather screwed when you’re an awesome Nintendo Dreamcast programmer and all of a sudden, they retire the Dreamcast and you’re stuck learning a new language.
Today’s video game development programs
Right, if you’re going to program in:
- iOS – You would use Xcode and program in either Swift or Objective-C.
- Android – Well that means you need to learn Java.
- Playstation – Good old C++ which is kinda similar to Objective-C but not.
- PC – Good lord, any of the above?
- Mac – same as iOS really.
- Xbox – C sharp, maybe even C++. Hell you could use Objective-C too.
Screw that – we’ve got an IDE remember?
We don’t need to worry about any of that because we’re going to use a Game Development IDE. It’s a program that’s built especially for making games.
We call these Game Engines. You have probably heard of Unreal Engine, Crysis Engine, Source Engine (used for CS) maybe even Unity.
Game engines do what I’ve been talking about for the last 5 minutes. They take your code and require it to work on any platform. But what’s better is, they have libraries of prewritten code that you don’t need to write.
Let’s say you want to draw some text on the screen. You can just write draw_text(‘My Text’) and bam, it’s on the screen. It really is that simple.
Choosing your game engine
Picking a game engine is a big decision. You’re going to learn the ins and outs of it’s functionality. Some Engines will be great for sexy 3D shaders and others, refined for top down 16bit FF7 RPGs. It’s kind of a big deal.
Our journey won’t begin with Unreal Engine, you probably know nothing about game development so lets not get started with complex 3D. Instead, we will start with 2D games.
This is the program that I used to get started. Don’t laugh at the name, this program was used by some of the most successful game developers of all time. It’s been used to build games like Hyper Light Drifter, Hotline Miami and… hell you could make any 2D game in it.
We’re going to use GameMaker:Studio because:
- It’s free for you to try (yeah, freakin sweet)
- The language (GML) is incredibly easy and forgiving, you can literally code in French and it will churn your code out like a warm croissant.
- It’s just got a sexy update which makes it even better.
- It’s my blog and I love using it.
Jokes aside, it’s a great game engine for you to learn to code in purely because it’s not as strict as the others. If you mistype somthing it won’t murder you on Christmas day with an icicle because of it. Instead it will probably just get on with things without your horribly incorrect code.
Plus, you can export to pretty much every games console. This means if you become the Dark Lord of the Sith at GameMaker, you can make games for Playstation and Xbox – it’s just a button click away.
I learned to code in 24 hours using GameMaker
The proof is in the pudding – it took me less than a day to get my first game running in GameMaker because like I said earlier, lots of important code segments have been written for you.
If you want to put some text on the screen you write the following code.
// The x is the x co-ordinate on the screen // The y is the y co-ordinate on the screen // putting /// at the start of a line comments it out, it's just a note draw_text(x,y,'Hello Bitches'); // I could use this to get fancy draw_text_color(x,y,'c_pink','Oh it's me again');
See how easy that was. Oh you want it to follow the mouse instead? Well that is just this.
// GameMaker already has code written for you draw_text(mouse_x,mouse_y,'Hello Bitches');
So now you know how easy it is to start programming we can get on with actually making some games.
The best way to learn is to follow tutorials on how to make different types of simple games. Don’t try to understand how everything works just yet, it’s far too complicate. Just try to follow along and make some basic games.
That being said – go and download GameMaker:Studio
Once you’ve got that, head over to my next tutorial. Programming basics.