Everything I Know About Game Dev
Everything I Know About Game Dev
Andrej Gieralt
2022/11/14
v. Beta 0.1
Introduction
So, you’ve decided to make the mistake of becoming an indie game developer.
Why is it a mistake? Well, indie game development is a very difficult business to
get into. Unlike some businesses, you have no consistent startup cost, no secure
client list, and no certainty whatsoever that your product will be interesting to
people.
But you probably don’t have as much interest in all that right now as you do with
actually making games. There’s absolutely nothing wrong with that! However, if
you’re passionate about game development and want to create meaningful
experiences, bring joy to people’s lives, support yourself and your family through
creativity, and earn money doing what you love, then you and I have a couple of
things in common.
See, over the years, as I’ve journeyed through my own indie game dev adventure,
I’ve realized that learning to actually make games is the easy part - and a lot of
developers can attest to this - it’s shipping them that’s hard. And as I moved from
working on big projects I could only dream to finish, towards smaller games I was
proud of releasing, I realized that a lot of information that would have helped me
get started a lot more quickly just wasn’t out there. There are plenty of tutorials
about individual game mechanics, features, and technical skills, but there are very
few (free) resources available, at least as far as I could find, that give you a good
roadmap from day 1 of getting into game development, to finally making money as
a solo indie dev.
So that’s exactly why I wrote this and am sharing it with others. I put together the
most important things I’ve learned about game development, and dove super deep,
getting into precise details and actionable items that will help you begin your
journey as a solo game developer.
You can find access to my consultation service right here to book your time.
Chapter 1: The Most Important Skill
What is the most important game dev skill? It’s not programming. It’s not
creativity. It’s not even art. I’ve already alluded to it in the introduction. It’s the
ability to finish games that people want to play. Therefore, as you learn game
development, it would be far more valuable to focus on learning to finish and
releasing games, and treating that like a skill in and of itself.
Now, if your goal is to become a great programmer, then it would make sense to
explore creating unique prototypes and honing your technical skills. But part of
being an independent game developer is learning to manage yourself to avoid
overscoping. You have to be selective about what time you spend learning the ins
and outs of your game engine of choice, and learn to use your time as effectively as
possible, which can only be done by actually creating and releasing complete
games. The bottom line here is, you can’t hope to sell games that never get
released.
The second part of this is creating games that people want to play. People often talk
about how the game market is oversaturated, and this is certainly true in a sense.
The game market is very unique. Let’s say you’re selling fresh home-grown lettuce
instead of games - you can find out how many other local farmers are selling
lettuce in your town, and if there are very few, you have a pretty good chance of
selling your lettuce, too. But then why would anyone buy your lettuce, and not his?
Maybe your lettuce is even more fresh, or has bigger leaves, or is cheaper. But
what if there are a lot of farmers selling lettuce? Well, it would be a lot harder to
stand out. You might have to get really creative - you might sell varieties of salad
mixes. Or you might actually deliver fresh food packages directly to people’s
houses. Or you might sell lettuce that looks unique or sell foreign lettuce no one in
your town has ever seen. The same thing goes for games - it’s a lot easier to stand
out in a genre of games that few indie developers are creating, and you have to do
a lot more work for more oversaturated genres.
Up to 10,000,000 people watch game development tutorials, but there are only
about 1,000 unreleased indie Steam pages up at the time of writing this. That
means that most people interested in game development never get around to
finishing their first game, and the number of devs who create their second game is
even smaller. Also, statistically, every developer’s first few games are failures.
So why should you devote so much time and attention to your first game and make
it your dream game? If you’re going to spend a year or two, or even five on it,
what’s an extra couple months to hone your craft? If you have to set your dream
game back a bit, so what? It’ll be that much better if you make it once you’re more
experienced. The bottom line is, if your first game is your dream game, your dream
game WON’T be your dream game, and won’t fulfill your dream. You have to
walk before you can crawl, and if you feel like you’ve been crawling for ages, it’s
time to start crawling in the right direction.
Chapter 2: Games People Want to Play
This PDF assumes that you want to become a professional indie game developer. If
that’s not your focus, this step might not be for you, but even if it’s a remote dream
of yours for other people to be somewhat interested in playing your games, and
you’re not just making them for the sake of making them, or just making them for
yourself, you have to understand what draws people’s attention to games and what
makes a game more easily discoverable.
Think about it this way. Marketing certain games is like pushing a boulder up a
mountain. You’re putting in a ton of effort, and maybe you’ll get there eventually
with incredible endurance. Or maybe you own a bulldozer or crane or something,
or, I don’t know, something expensive and useful. Meanwhile, the other guy is
walking up the mountain carrying a feather. It’s a lot easier, and it sometimes
catches the wind and flies up a bit on its own - and he didn’t even need a crane.
That’s the difference between creating the perfect game idea that a lot of people
will be attracted to, and creating a game that you and you alone will love. So, how
do we find that perfect game idea? Whatever it is, it’s going to have to be
something you can sell, something you love making, and something you can
make. We’ll focus on the first point for now, but first, let me touch on the last
point. As I mentioned earlier, it’s easier to learn to make games than to learn to
market them, so we’re focusing on that, but I will give you a step-by-step layout
for the most efficient way to learn to make games (which will also help you
determine what you actually enjoy working on) later on.
1. Pick a genre
The first thing you need to do when determining your game idea, and ultimately
your game dev career goal, is to pick a genre you want to focus on and become
associated with. Now, to be fair, this is a huge decision, and you need to
experiment a LOT before you consolidate this, but keep it in mind.
Now, you might already know that you eventually want to make an epic survival
battle royale game, or an open world survival crafting game… you might need to
tone it down to start off, but either way, it’ll be worth checking if your genre is a
boulder or a feather - if you have no idea what you want to make, this will narrow
things down, and if you do know already, this will help you polish or improve your
idea’s chances.
To find out which criteria your genre meets, you’re going to need to take a look at
VG Insights and Game Stats - unfortunately, both are paid subscriptions, but they
do have free versions which is a good start. This chart from VG Insights shows you
median revenues by top-level genre, but the paid version lets you look at the
median revenue for individual tags, which is even more detailed and even more
useful, but this is a good start.
So, based on this alone, it seems that RPGs and Simulations are good genres to go
for, whereas Casual, Racing, and Sports are less profitable.
2. Play indie games in that genre
It really helps to make games in a genre that you’ve loved your whole life, but
even if you’re like me and want to make first person old-school RPGs, you
probably know more triple-A games in these genres than indie ones, and it’s the
indie ones that you want to learn from - NOT the triple-A’s. These guys have
millions of dollars to spend on marketing - they have the bulldozers and cranes to
get the boulders up the mountain.
That’s where Game Stats comes in. You can search for games with a specific tag
(genre), and for the paid version you can filter results to only show a specific
revenue range and only show indie developers, but you can still find those
manually from the list.
Look for indie games that did incredibly well AND ones that failed, and try to
learn WHY they failed, and make sure to play both. I recommend finding at least
10 of these if at all possible, although buying that many games is understandably
not something everyone can do all at once.
Once you’ve figured out what caused them to do well and what caused them to fail,
consider what makes these games stand out, what makes them unique, what makes
them good, and what makes them fail. If they had a cool idea, and the game looks
great, why is it getting bad reviews? If it looks terrible but made tons of money,
what did the developer do to achieve that? What is it about ALL these games that
consistently bothers you? What can you bring to the table that no one else has
thought of?
To expand on that last point, for a game to really stand out, it needs a gameplay
hook. This unfortunately has NOTHING to do with the story or the setting, unless
it’s an extremely unique setting - it has to be gameplay. The classic example is
Superhot, where time only moves when you move. I tend not to recommend Game
Maker’s Toolkit, although that YouTube channel is good for finding inspiration
and learning about games you might never have heard of, and seeing what unique
twists developers put on popular genres.
Exercise 1: It’s important to start flexing these creative muscles early on and not
getting too attached to any idea. Here’s what I want you to aim for:
a) Think of 10 ways you can combine a game you play with a different game in
the same genre to make a never-before-seen core gameplay mechanic.
Example: Islanders’ building system + Airborne Kingdom’s flying city.
b) For each game you play in your genre, think of 10 mechanics from
completely unrelated genres to make something unique. Examples:
Minecraft meets Five Nights at Freddy’s.
c) Figure out 10 different ways you can design solutions to an annoyance or
frustration you had with the games you played. Example: a shooter where
you never run out of ammo.
d) The big one: for each game you played, figure out how to make an opposite
game. Example: a city builder where you don’t expend resources… a horror
game where everything is cute… a survival game where you can’t starve…
Game development is not easy, and if you want to turn this into a business, you
have to thrive off creativity. To learn to be creative, you have to understand what
other games have done and think critically. It won’t be easy, and it won’t be
instantaneous, but it will be well worth it! Spend as much time as you can on the
research phase, and if possible, do it at the same time as learning to make simple
games.
Chapter 3: The Learning Phase
It would be understandable to be frustrated at this point, because if you don’t know
anything about how to actually make a game and want to focus on learning
development skills, I bet marketing isn’t really on your mind. But again, if you
want to turn solo game dev into a career, you need to learn as efficiently as
possible, while also releasing games.
So by this point, we should agree that your goal should be to release a lot of small
games that take a short amount of time to make. You could spend your time
following tons of tutorials, but then you’ll just be copying what other people are
doing, and you won’t develop those creative design skills needed to innovate in the
field. People often talk about getting stuck in an endless sea of tutorials. To avoid
this, start with your own ideas, follow as few tutorials as possible, and only look
for them when you actually come across something that you don’t know - which,
obviously, early on, is going to be most things.
So let me start you off with the bare minimum basic knowledge everybody needs
to get started with making games. I use the Unity game engine, so that’s what I’ll
be focusing on. Note: If you know a game engine, skip to Exercise 5 (end of this
chapter).
The 3D view shows you your scene and everything in it - the camera, lights, and
any objects in the scene. In our example, we have 1 camera, 1 light, and a 3D
sphere object which I have selected.
The scene hierarchy on the left shows you all your objects and how they are
grouped together. You can find objects by searching for them in the search bar,
which might be easier than looking through the 3D view if your scene is large.
The project view shows you all the folders of your project. It’s important to keep
these well-organized and consistent as your game grows.
And finally, we have the inspector, where you edit and tweak your game objects. In
this case, I can see all of the components of the sphere and its properties.
In this case, I want to make the sphere jump like in Flappy Bird whenever I hit the
“W” key on the keyboard. I’ll use this as an example to explain the basics of
scripting, but before we move on, here’s your next assignment.
Exercise 2: Create a new Unity project, create a large platform and a sphere
up in the air. When you run the game, make it so that the sphere falls down
and lands on the platform.
Now you should have all the knowledge you need to make a sphere fall onto a
platform. I don’t want to give you ALL the answers, but I’m sure you can figure
this out.
That being said, you WILL need scripting for this next portion, and that’s what I’ll
be covering next. It definitely helps if you have a basic understanding of
programming, especially variables, functions, if statements, loops, and classes, but
learning that is beyond the scope of this PDF.
To create a new script in Unity, right-click in the Project folder view, click
“Create” -> “C# Script”. Call it Jump.cs. Here’s how mine looks (next page):
Let’s go through this step by step.
Lines 1-3 just tell us that we are adding a few packages so that we can access
Unity’s specific functionality.
Line 5 declares the class name, or the name of the Component. This needs to match
the name of the .cs file. It also tells us that we’re extending MonoBehavior, a Unity
system that gives us access to the Start() and Stop() functions.
Start() is called for EVERY script in your scene when the scene first loads, or when
you start the game. We don’t have anything going on in there, though.
Update() is called EVERY SINGLE FRAME, and it’s where all the logic happens.
This gets more nuanced with different types of Update functions, but we’ll keep it
simple for now.
Lines 18-19 tell us that every single frame, we want to check if the player is
pushing the W key (not holding - that would be GetKey rather than GetKeyDown).
If the player is pushing the key that frame, then we do 3 things.
1) Access the Rigidbody component of the game object that this script is
attached to (we don’t need to tell it which object to pull components from
because it always pulls from this object). Hopefully in the previous exercise
you remembered that you had to add this component to your sphere to get it
affected by gravity and physics!
2) Set the velocity attribute, which is a 3D Vector. If you don’t know, a vector
is just a direction, like an arrow, with some magnitude, or strength. Vectors
are used for many different things, and their magnitudes can represent
different things, but in this case, think of the velocity vector’s direction as
the direction the object is trying to go, and the magnitude is how fast it’s
going in that direction.
3) Create a new 3D Vector to assign to the velocity. Whenever you assign a
property, the new value has to be of the same type. So for example, I can’t
just set the velocity to “orange” or 123 - those values don’t make sense,
because velocity needs to be a 3D vector. This new 3D vector will simply be
the “up” direction, which is already defined in Unity’s Vector3 class, and we
can multiply that Vector by 3 to give it some magnitude.
Now, once you’ve figured that out, congratulations! You’ve learned to deal with
ambiguity, research functionality that you have had no prior knowledge of, and will
be able to take those skills and expand on them to your next task.
Exercise 5: Your challenge for the next 4 weeks is to create 1 small game per
weekend. If you don’t finish any of the games in a given weekend, scope down,
and restart a simpler game the next weekend. Repeat this process until you release
4 games that each took a weekend to make.
Chapter 4: Marketing Basics
Unless you’ve figured out what that “feather” game that will market itself is,
selling your game is always going to be extremely challenging. That’s why I want
to encourage you to learn to think about hooks when creating your early games to
make the process as easy as possible. But another way you can do this by growing
a devoted audience. The challenge here is twofold: 1) finding out how to reach an
audience initially, and 2) having certainty that you’ll be able to reach them again.
Think about it this way. Anyone can sell anything. If you make the worst game in
the world and get in touch with all 7 billion people, you can be statistically certain
that at least one person will buy your terrible game, and love it. But your resources
are limited, and the pool of people you have access to sell things to is tiny.
A lot of people choose Twitter as a place to grow a following and promote their
games. Some try doing devlogs on YouTube. Others unfortunately use TikTok,
which I’d highly encourage you to avoid, because of its connection to Tencent and
the CCP. But a lot of these people don’t understand that to build a following on
social media, you need to give people on that platform content that people on that
platform in your niche want.
Learning a whole other social media system is a skill of its own and requires just as
much learning as game development does. But, take a look at this graph from Chris
Zukowski (and I apologize for the image quality but this was the best I could do!):
So, looking at this graph, you can see that Twitter and Imgur don’t do very well for
marketing. We’ll get back to this, but first of all, I wanted to talk about what is
meant by these platforms “not doing very well”.
Marketing basically works like a large funnel (an actual technical term in
marketing is the “sales funnel”). Basically, it means that when marketing, you have
to start by casting a “wide” net, and filtering out people who won’t be interested in
your game, while moving people who will be interested deeper into the funnel,
where you can reach them again when the game is out. The deeper down the layers
someone is, the more devoted a fan of your game they are.
So, what does this mean for our graph? Well, it means that if layer #1 is Twitter
and Imgur, then posts to Twitter and Imgur failed to move people from layer #1 to
layer #2. But what is layer #2? Well, it might be your email list, or your YouTube
channel, or your Steam wishlists, or your Twitter followers. But if people follow
you on Twitter, that just means they like your Twitter content, and if they subscribe
to you on YouTube, it means they enjoy watching your videos. So these aren’t very
useful for layer #2. However, Steam wishlists and email subscriptions are perfect,
because people who wishlist your game or sign up to hear about when your game
will launch are definitely interested in your game. This is why it’s crucial to make
a Steam page early.
As a quick note to wrap up the funnel explanation, layer #3 is your actual sales, so
the percentage of people who wishlisted your game who will then choose to buy it.
The main takeaway from this is that we should be focusing the majority of our
marketing efforts in those areas that are going to generate the most wishlists. It’s
fine to make a quick weekly gif for Twitter and Imgur, definitely post shortened
trailers to Reddit as gifs, too, but don’t spend hours and hours on those platforms
unless you know how to target them specifically, or want to learn how or become a
social media manager.
Instead, focus on creating and polishing your Steam page. Once you get to the
point of making 6-month game projects, I think that would be the perfect time to
start really diving deep into marketing and releasing games on Steam for money.
Prioritize making the Steam page look beautiful ASAP, getting professional
capsule art, and getting a demo done so you can have streamers play the game on
their channels, and participate in online festivals for boatloads of wishlists.
But this strategy doesn’t work for every kind of game. For example, gorgeous
animal games might work incredibly well on Twitter, but not with Streamers,
because they might be linear, so people won’t want to try to create their own
experiences in the game - they’ve seen it all by then. If you’re making a game that
isn’t optimized for Steam, then you definitely need to grow an audience some other
way, be it through releasing smaller or free games, or targeting another social
media platform. In the next chapter, I’m going to give a quick overview of
everything I’ve learned about my social media platform of choice - YouTube -
because it’s the only one I’ve properly learned about!
Chapter 5: Marketing Focus: YouTube
I don’t want to encourage you to do YouTube. YouTube is extremely difficult when
you’re starting out, especially if you want to make devlogs, especially if you’re
still trying to learn how to develop and release games. But I do want to give you an
overview of what I mean when I talk about giving value targeting your niche in a
given social media platform, and how that’s going to be a skill in itself for
whatever platform you choose - granted, YouTube is probably one of the most
difficult platforms, but it’s also probably one of the most rewarding, but I can’t say
I’m certain about that.
This is going to be more or less a lightning round. We’re going to go through a lot
of bullet points, and not go into a whole lot of detail about each of them, but these
are great questions to ask yourself when trying to figure out what you want to do
on YouTube.
This is a lot! Ultimately, what matters is that just like with game development, you
have to start releasing videos and getting feedback! So long as you are trying to
improve with every video you create, adding one new element or changing one
thing, you’ll be on the right track.