A no nonsense “How to get Started” Guide
This is largely based on a post by a /r/gamedev regular, /u/LordNed. Feel free to edit and improve. The goal is to demystify the starting process and roadblocks in getting started or something like that.
Some general points:
- Anyone can make a video game
- Making video games can be both a frustrating and rewarding activity.
- There is no ‘one’ or ‘best’ way to make a video game.*
If you are lost, confused, or overwhelmed about where to start with making a video game, stop looking elsewhere and read this.
As a prefix (this is touched on several times throughout the guide): Nobody can tell you what is best for you, be it what software you like or the best way to learn. That includes this guide. Different things work for different people. If you don’t agree with a section of this guide that is okay.
* This is not the only way to make a video game. There’s a ton of ways to do it, but if you’re lost and confused then this is a good way to start.
This is also not the only guide on how to make games out there. However, it is the accumulation of our years of experience as moderators and seeing the types of questions that get asked in here. If this guide doesn’t gel with you, then I suggest you take the “You must learn how to seek out resources on your own.” section to heart and use your Google-Fu to find information elsewhere.
Table of Contents
Making a video game is not about programming, art, music or design.
Making a video game is not about being the best programmer or artist, or choosing the best algorithm or most efficient way of rendering sprites. It is about executing an idea and seeing it through to completion. What software you use doesn’t matter. The number of lines of code you have doesn’t matter. The amount of art assets or how long it took you doesn’t matter. What matters is that you had an idea and brought it to fruition and shared it with the world. That is what making video games is about: having an idea and completing it. This will be your biggest challenge in your entire development career.
Making a video game is not easy, but we’re in it together!
There will be times that you feel like giving up. There will be times where you will have no idea how to tackle a project. There will be times that you don’t want to open your project files, much less contribute on them.
The only way you will finish your video game is if you power through these times. Networking with your peers on /r/gamedev, twitter and irc can be a positive experience. Finding shared office space works for many too. It is important to balance work, recreation, relationships, mental health, physical health and all of those other things, but if you choose to not make time for your game you will not finish it.
Anyone can make a video game
It does not take a master programmer, or a master artist. It does not require even a beginner programmer. There are enough tools out there that you don’t have to write a single line of code and you can create a finished product. If you’re a 14 year old student who can’t draw to save their life, you can still make a video game. If you are a 35 year old mother of two who doesn’t know how to program, you can still make a video game. Most of the skill in making video games comes from following through with executing your idea, not with how you go about doing it. Again, it doesn’t matter what software you use or what language its coded in (if it’s even a language at all), it matters what you do with it.
There is no ‘one’ way to make a video game
Find your own schedule and workflow!
What is presented here is a set of guidelines to help someone make games and be versatile and useful. There are thousands and thousands of other libraries, platforms and methodologies out there. Some of them might work for you, some of them might not. We cannot tell you what is best for you. This must be decided on your own.
A video game is not a video game unless it is completed
If you dream of getting hired by a studio or becoming your own indie studio then this is incredibly important. A studio does not want to hire you because you want to make games. A studio does not want to hire you because they think you have good ideas. A studio does not want to hire you because a studio makes games, and you do not (unless you finish them). There is a saying in most creative industries that goes “The last 10% of the work takes 90% of the time”. This is the part that separates the video game developers from the rest. Studios will hire you because you show that you can power through this last 10% of work, the most frustrating, boring section ever. This is the end goal of every project is to finish this 10% of the work to call it complete.
None of us Know Everything
This includes me, this includes Notch, this includes Derek Yu, Edmund McMillen, Tommy Refenes, Jonathan Blow, Phil Fish, etc. No matter how much research you do in advance, how much preparation you have – you will learn something new every day. This means that no one can tell you everything you need to know to become an indie dev or how to complete a video game. You have to discover it on your own by doing. Doing. That is what everything comes down to, between the time you finish reading this guide and the time you complete your app and submit it to the App Store/etc. *Everyone out there who is making games right now is figuring it out as they go along. * Therefore, if you jump in then you’ll be in the same boat as the rest of us! (Credit to Sarah Woodrow for this point)
The following bits of information have been shoved at me during my time assembling this guide. I have read them and found profound wisdom within them, and I think it is important that you read them too. You may not realize the wisdom within them now, but come completion of a game (be it your first, third, or ninth) you will start to draw analogies between their words and your work and you’ll understand.
(In no particular order)
- Derek Yu on Making a Damn Game – An article that highlights why finishing a game is important.
- Ira Glass on Storytelling – While unrelated to game development, Glass’s words of advice are essential for anyone who is thinking of learning something new should hear.
- Sarah Woodrow on 7 Truths about Indie Development – An excellent article for those who are thinking of becoming indie developers instead of just hobbyist developers.
Get to work!
Did you do something?
Making a video game is not about waiting for someone to tell you what to do. Every person out there with a completed game under their belt (no matter how small) did what I just asked you to do. They went out and they did something out of their own motivation and they picked a spot and they started on it. I believe this is the most critical feature of people who finish video games is the self-motivation to go out and start before someone tells them what to do. Jonathan Blow (of Braid and The Witness fame) made an excellent set of twitter posts which I’ve arranged into this image which explain why self-motivation is a requirement to finishing a game.
“I’m not making excuses as a delaying tactic, I really really just don’t know where to start!”
Anywhere. Literally. The Mona Lisa started with a single brush stroke. Every great work of art in the entire history of art has started with a single line, a single blob of paint, a single chisel mark. A Google search for “How to make a video game” is a good start. I get it. You’re here. I told you I would tell you how to make a game, and I will. But first, I want to cover some other topics first.
You must learn how to seek out resources on your own.
This goes with Jonathan Blow’s saying, and the bulletins from the last post. There is no way I could assemble all of the information required for you to learn to make a game. If I put the combined knowledge of a thousand tutorials together it would still only brush the surface of what you need to know to make a game. You cannot learn to make a game without making a game. Starting is the only choice you have to actually learn to make a game.
That being said, there’s lots of small bits of making a game that have been covered before. The information is out there on the web. Some of it is great, some of it is not so great. Are you crippled by the fear of following the wrong tutorial and ending up with terrible ideas on how to make a game? It doesn’t matter. Follow the tutorial you found. Then, follow another tutorial. See if you like the way the other tutorial does it better. If so, you’ve successfully sorted out which is a better tutorial for you. There is no right or wrong way of doing anything for the most part, so the most important way to judge information is whether it lets you accomplish something or not. We cannot tell you which is the best tutorial or way to get started so please do not ask us. We went through the same problems and concerns you’re having. If someone could come up with the GUARANTEED BEST WAY EVER to learn they’d be very rich right now.
You have to start small.
Envision for a second the game you want to make. Think of all of the cool features you’re going to have in it. Think about all the money it’s going to make you.
Now stop thinking about the money, because your first game (and second and third) will not make you money. First games that make people money are the exception, not the rule.
Now that you’ve gotten the dollar signs out of your eyes, cut your feature list in half. Take only the most important ones that you cannot live without. Now cut this new list in half again, I don’t care if you can’t live without them, cut them out. Finally, cut this feature list in half again. It should be like two bulletin points long now.
I get it. You’re mad that I just made you throw away your grand idea and it’s terrible now. Make a game using only these features. If they’re really as small as you think they are, then it’s not going to take you very long to make a game using these features, right? Try it, I dare you.
Your first game should be as big as Pong
Sorry. You cannot make a grand RPG with branching decisions and advanced battle mechanics yet. It is simply too big for you to do. This is a rookie mistake that may leave you months or longer without having made your first game. Experience is important, success or failure, so rapid success and failure is much better than waiting months or a year to learn from an experience when you’re just starting out.
Lets consider for a second what Pong consists of.
- Two paddles, one Player controlled and one AI controlled.
- A ball.
- A win/lose condition.
Sounds so simple your 9 year old brother could do it, and you’re better at computers than him so you can start something more complex than Pong right? Wrong. Lets take a deeper look at what Pong consists of:
- Two paddles, one Player controlled and one AI controlled.
- Two paddles which have a constrained range of motion (ie: can’t go beyond edge of screen, can only move on one axis)
- A ball.
- A ball that collides with paddles and bounces off of them appropriately.
- A ball that knows when it goes beyond a paddle and causes the player to lose.
- A win/lose condition.
- A way to check if the ball should cause either the Player to lose or the AI to lose.
- A menu
- A way to choose options on a menu
- A way to go from the menu screen to the gameplay screen
- A way to go back to the main menu from the gameplay screen
- A way to restart the gameplay screen from zero (ie: no points)
- A way to keep track of score.
- A way to restart the gameplay without resetting score
- A way to tell the users who won.
- A way to play sounds to provide feedback.
Suddenly this “simple” game no longer sounds so simple. Now imagine if you had tackled your super cool RPG first. You’d still be overwhelmed just trying to figure out how to even make a battle system!
Your second game is to be as big as Super Mario Brothers
That is the 2D one where they have fixed levels and enemies which do things like “walk left until I go off screen”. It’s a significant amount more work than Pong. If you think that Pong and Super Mario Brothers are simple games and that you can start bigger, then stop for a second and actually make Pong and SMB. If they’re so simple, they won’t take you much time right? – In the event that you’re right and they are super easy to make games then you’ve only lost a couple days head start on your grand project. In the event that you’re wrong (you probably are) you’ve hopefully realized how much goes into a game and how crazy your original idea actually was.
Your third game is to be slightly bigger
I’m not going to tell you what size your third game is to be. If you’ve faithfully recreated Pong down to the finest detail (sounds, menus, animations, and all of the assorted polish that goes into games) and you’ve faithfully recreated Super Mario Brothers (sounds, animations, polish, etc, etc.) then you’ve probably graduated from this guide.
What language do I use to write Pong? What engine/framework do I use?
It does not matter. Does the word “Flixel” sound cooler than “Unity”? Do you think “AS3” is easier to say than “C#”? Do you think “Python” is a cool name for a programming language? Do you think “LÖVE” is a crazy name for a framework? Pick something. It doesn’t matter which one you pick. Everything listed here (and most things out there) can be used to write Pong. Spend a week trying to write Pong in every language/framework/engine you find. See which you like the best.
Again, it does not matter what you write your game in. It does not matter if you use Game Maker vs. Unity vs. UE vs. CryEngine. It does not matter. It does not matter. It. does. not. matter. IT DOES NOT MATTER. Whatever you pick that gets you to actually work on something is what matters. I touched on this earlier, I’ll touch on it again, “Doing.” Doing is what you need to be doing. Only by doing will you see what works for you and doesn’t. There is no best, and there is not often a better/worse.
If you’re really totally 100% paralyzed and can’t make any decisions, we’ll make them for you. Again, this is not the only way to make pong, nor is it the best way to make pong. It’s a means to an end, and there’s lots and lots ways.
Download Unity. Check out the Unity tutorials on the Unity website. Figure out how to make a ball show up on screen. Figure out how to make a paddle on screen. Figure out how to move them with the keyboard. Figure out how to make the ball move on its own. Figure out how to make the two collide.
Not sure what’s out there? Google can answer that! So can our subreddit. List of Engines collected by our users.
If you cannot use Google effectively enough to figure out how to download Unity, and find the Unity tutorials on their website then you will not make it as a game developer. This sounds incredibly harsh, but I’ve been harping on it this entire post. You will need to find your own resources. Get better by doing. Start Googling. Try different combinations of words till you come across what looks like what I’m talking about. Look at them and decide if you’ve done the right thing.
“…the most important possible thing you could do, is do a lot of work. Do a huge volume of work.”
This quote comes from Ira Glass. If you’ve really read through this guide by now, you should know what it means and why its important. It is only by making games that you can get better. There are not enough words on the internet to give you all of the knowledge you will learn by making your first game.
tl;dr: Just fucking do it. Stop talking about making games and go actually make games. Then make another.