There’s a couple of reasons you might want to make a video game. Maybe you just finished the latest blockbuster AAA cinematic game released on the latest platform and you have ideas. Or perhaps you’ve seen some of those nifty little “indie” games that keep getting released that you see on Steam and think, yeah I can do that! Hey, maybe you’re a software developer and you’ve heard that game development will build up your skills.
Whatever the reason, you’re here, and you want to know how to make a video game. So let’s get started.
How to get started in video game development
It doesn’t matter what your end goals are, everyone has to start at the same place, and that place is with no knowledge or information. Video game development these days is a multi-faceted gemstone made up of many different skills:
- 2D art: pixel-art, textures, UI elements, splash-screens, certain particle effects
- 3D art: modelling, texturing, rigging and animating
- Gameplay Programming: making the guys move when they’re supposed to, guns shoot, the fun stuff
- Engine Programming: making the renderer, input handling, loading and optimising of 3D models. A subset of this can be considered the Graphics Programming which is it’s own whole thing sometimes.
- Tool Programming: someone needs to make a tool to help the gameplay programming implement his code against the artists new 3D model in a test environment. Someone needs to make a tool to parse the engines verbose debug output into a searchable and indexable format.
- Game Designer: the ideas guy who understands why mario jumps on top of his enemies instead of shooting them with a shotgun
- Project Manager: someone who keeps everything going and keeps it all together
There are obviously more, but this is a basic rundown of the types of skills needed.
But you don’t have any knowledge (yet), and you need to get some. The trick here is to work out what you want to do. Well? Really think about this, you need to be honest with yourself. Do you want to be the guy slogging out 40,000 lines of code to get some awesome graphics on the screen? Or do you want to stay high-level and just come up with interesting ideas for others to implement?
Being honest with yourself, I have to repeat this, is really important. Most 1st-time game developers never finish their project (hell, even 17th time developers have about 200 unfinished projects), and they give up. I don’t know if give up is the right words though, maybe they just didn’t want to do the graphics, they’re not artists, but they know, really know what’s fun.
If you’re honest with yourself at this stage, things will go a lot smoother and you’ll get your first game made. But here’s an inconvenient truth for you:
I’m sorry. And I know that will sit wrong with a lot of people. Hell, some people make their first game with friends, or a team they found online, or a sibling. But the truth is that most people end up doing it themselves.
I think for a lot of us, game developement offers a creative outlet that we haven’t had before. And so we tend to approach it with a vision that we’re unwilling to compromise on. That’s okay, I think it’s great to see the creative endeavor that game development is and to do what makes sense to you. But the result is that you will need to do everything in that list yourself.
But thankfully there are a lot of tools that can help you out.
What tools are available to the new game developer?
When I first was interested in game development, a long time ago, there wasn’t much available. A few tutorials online and a reference document in the DirectX 7 SDK was about it. Good luck! But now, you got everything you could ever need.
But first, what sort of developer do you want to be?
I’m interested in the underlying game engine and rendering
Hey, you’re just like me. For your first game you’re going to need to learn a programming language. There’s plenty of languages to use, but if you’re really keen on the engine, you want to learn C++. You will hear a lot of people talking about using other languages because they’re better or blah blah blah.
Fact is, C++ has the most libraries suitable to game development. While you may be super interested in learning how to make a renderer, I know from experience that you’re not going to find loading font-files from disk interesting, so you’ll use a library for that. You don’t want to worry if there’s a library available for your language, so stick with C++.
Having said that, there are some good contenders. If you come from a development background, use the language you’re already familiar with for your first game. Web developer? Make an HTML 5 game (easy to get onto your phone too). Enterprise Developer? Use C# or Java (Minecraft was programmed in Java, Unity Engine uses C# for scripting).
I’m an artist and not very interested in the intricacies of programming
Your first game will get about 1000x the exposure and notice than the above guys. Hey, that means someone other than your mum might play it! But seriously, a good looking game will draw in people a lot quicker than a game with a well-crafted engine (much to my own chagrin).
Now you don’t care much for programming and technology so much. But you’re going to need to learn a little bit of scripting. Let’s not call it programming. You’re simply going to be expressing simple mechanics ideas in some programming language that looks fairly readable. To do this, you want to rely on an existing game developement engine.
There’s a few of these around right now. You know Undertale? That was made in Gamemaker Studio, which has it’s own little programming language within it. RPG Maker is a very well-known engine with a nice UI to create the game logic and events, you’re just going to learn software, not programming. When looking at engines, and look at them all, make sure you can create what you want with as little programming or scripting as you need to.
And maybe that means you need to reduce the scope of your game and make your grand vision a little less… grand, and a little more realistic. But let’s keep ourselves honest, this is your first game, you’ve got plenty of time to make that big beheamoth later.
I’m an “ideas guy” and I know exactly how the game should play
One day in the distant future, maybe you’ll be a game designer at Big AAA Studio #3. But right now you’re just one person trying to make a game. To get there, you’ll need to start by being a gameplay programmer, because nothing will teach you game design more than gameplay programming.
You’re going to want to make a game in an engine, but maybe a little more advanced than the artist, though those engines are still good starting points. If you’ve got a bit of a technical side to you, you might event want to make a game using a library like SDL2 or SFML. Doing that means you’re not quite making an engine, but you’re not using an existing one.
And you want to focus on an original idea. A game mechanic you’ve not seen before, or a combination of mechanics that hasn’t been done, or done right. Doing this sometimes means that existing engines aren’t a good idea because they don’t allow themselves to produce the kind of game you want. This is when you need to turn to those libraries like SDL2 and SFML.
When you do move onto libraries, you’ll find yourself in a position where you need to do a lot more coding. This is because you don’t have those editor tools that you got with the game engines, instead you’ll be faced with the daunting task of either creating your own, or doing everything “in code”.
This is one of the many reasons that it’s very hard to succeed as just an “ideas guy”. Everyone has ideas, you need to prove that yours are better, and the only way you’re going to do that is by making a game.
And don’t think for a second that your ideas need a big blockbuster AAA studio budget. Your ideas can always be pealed right down to their core idea. We’ll talk about that later.
What skills do I need as a game developer?
Your first game is going to be small. I mean, small. I don’t mean like Playstation One era. I don’t mean Nintendo Entertainment System era. I mean, make Pong and a handful of other small games before trying your own idea. I explain more about this in 5 Games For Hobby Developers to Make.
The reason is you need to do everything yourself. If you like making an engine, you’re still going to need graphics (protip: look into procedural generation as much as possible, you can make your own graphics without an artist). If you like thinking about the games mechanics, you’re still going to need to do the programming and the art. There’s plenty of resources available online for free art, Open Game Art is a great starting point.
So those are the skills you need:
But the degree to which you need each of these skills varies depending on which route you take.
|I’m good at…||I should make my own…||I should use existing…|
|Programming / Logic / Tech||Game Engine** / Game Systems||Art, sound, and music|
|Designing Games / Understanding what makes something fun / the finer nuances of video games||Mechanics / Interesting Gameplay||Art, sound, music and game engines|
|Being a multi-faceted artist of many talents||Art, sound, and music||Game engines|
** A lot of people will tell you not to make your own engine. I’ll tell you what though, if the fun you derive is from making an engine, then do it. 90% of the people telling you not to make an engine haven’t even made a game with an engine. It’s hard, and it’s effort that could be spent making a game rather than an engine, so keep that in mind.
No matter which of the above you fit into, or in between, you need some skill in all of it. Not a lot of skill in everything, but you’ll always need to be able to touch everything, especially in your first few games, that are almost always solo endeavors.
Okay, now what?
You start. That’s it. No amount of reading articles about getting started will get you started. Download an engine, fire up your IDE, write some code, draw some graphics, do something. The sooner you get started, the sooner you get something on the screen. That provides motivation to continue, which is the biggest killer of your game.
If you lose motivation, you will not finish.
Drop me a line with the contact information on this website if you manage to get something playable, I’d love to play your game and give you feedback, I’d love to tweet about it and I’d love to feature it on the website.
Best of luck. You can do it.