0% found this document useful (0 votes)
26 views

Everything I Know About Game Dev

This document provides an introduction and starter guide for indie game developers. It discusses that indie game development is difficult but rewarding if passionate about games. The most important skills are finishing and releasing games that people want to play rather than focusing solely on technical skills. It recommends starting with smaller, less saturated genres of games that are easier to market until more experience is gained. Choosing the right genre and creating games that attract audiences are keys to being a successful indie developer.

Uploaded by

Zulfikar Salam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Everything I Know About Game Dev

This document provides an introduction and starter guide for indie game developers. It discusses that indie game development is difficult but rewarding if passionate about games. The most important skills are finishing and releasing games that people want to play rather than focusing solely on technical skills. It recommends starting with smaller, less saturated genres of games that are easier to market until more experience is gained. Choosing the right genre and creating games that attract audiences are keys to being a successful indie developer.

Uploaded by

Zulfikar Salam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Indie Game Dev Starter Guide

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.

Ready? Let’s make something.


Don’t Work Alone!!!
You don’t have to make your game alone, and I don’t think you should! Whether
it’s a great discord community, feedback from your friends, or an actual team
working with you on the project, in game dev, two heads are better than one. And
while the tips in this PDF are robust, they will only get you so far. If you’re
interested, I’d like to invite you to try 1-on-1 consultation with myself, because
getting that personalized advice and specific focus on your context and situation
will ultimately be far more valuable for you than just what you can learn from
online resources. Consulting was probably the #1 factor that contributed to me
finishing my first commercial Steam game.

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.

What about my dream game?


When I started making games, I only ever wanted to create first-person shooters
and open world RPGs like Morrowind. My dream game is an RPG in a fantasy
setting with quests inspired by Fallout: New Vegas. And I was working on this
exact game for a solid 5 months or more, but I scrapped it because it would take
me years to finish. So I made a few small games, and got caught up in another big
game project - an immersive sim called Tempered Flames. That ended up being
huge too, and after almost 2 years, I got some tough but great advice, and ended up
stripping the game down, re-making it, and getting it released that summer. Did it
do well? No, but it got done. And that’s the first step.

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.

A boulder genre is one that meets these criteria:


a) There are a lot of these kinds of games on Steam
b) There are a lot more of these kinds of games coming out more recently
c) This genre is more likely to make less money than most

On the other hand, a feather genre meets the opposite criteria:


a) There are very few of these kinds of games on Steam
b) Not a lot of people are making them recently
c) The genre makes a lot more money than most others

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.

3. Learn what makes those games good or bad

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?

4. Practice coming up with unique spins on that genre

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).

1. The Unity Interface


At first, the Unity interface can seem daunting, but a lot of it is self-explanatory.

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.

This may look daunting, but to understand the


inspector, we need to understand what a game
object actually is.

In Unity, every game object is basically just…


well, nothing. It’s just a piece of empty data that
becomes something based on its components.
Imagine you’re building your first gaming PC.
You need to pick the case, the CPU, the RAM, the
graphics card, etc., which all have different specs.
But not one of these components “is” the actual
computer. Similarly, when you build a game
object, you need to define what it actually is and
does by adding components onto it.

In the case of the sphere, we have the mesh


renderer that tells us what the object looks like.
We have a sphere collider that tells us that other
objects can’t pass through it, and it has a
rigidbody that tells us it interacts with physics and
gravity. It also has a script called Jump, which is a custom component. To get
objects to do specific actions in the game, such as having a player move or having
enemies attack, you need to program these scripts and attach them to your game
object, or attach and set up a component from an external asset or Unity package.

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.

To create a new game object:

To add components to it:

To switch between moving, rotating, and scaling an object:


To run the game:

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.

Hint: you don’t need ANY scripting to achieve this!

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.

Introduction to Basic Unity Programming

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.

Exercise 3: Experiment with this! Create a speed variable instead of just


multiplying it by 3 and change its values in the Inspector window. Try changing
GetKeyDown to GetKey and see how drastically that changes the gameplay.
Maybe add other key inputs to move the ball in other directions?

Exercise 4: Your next exercise is going to teach you to research specific


functionality instead of getting stuck in an infinite loop of tutorials. Go online, and
find out how to set this script up to delete the ball when it collides with the ground.
To do this, you’ll need to research:
1) Collision detection
2) Destroying an object
3) Creating tags and accessing them, OR accessing an object’s name.
HINTS: Your changes will go in a new function in the same class file that will
need a very specific name (you will have to find what that name should be). You
will also need to either know the specific name of the ground game object, or
you’ll need to assign a tag to it - I’ll leave it up to you which one you want to go
with!

Your code should look something like this in the end:

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.

Creating small games

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.

1. Devlogs, tutorials, or advice?


a. No one cares about your new feature in your game that everyone’s
seen in every other game out there. If you want to do devlogs, you
have to think big, and be super creative.
b. There is a tutorial about every single possible question I’d have about
game development. What topics can you cover that others haven’t?
What unique expertise do you have that will make your tutorials better
than all the others? How can you make yours more interesting?
c. If you are just learning to make games, you’re probably not in a
position to give advice, although this does seem like the least
saturated market. Since this is what I’ve chosen to do though, this will
be the perspective I’m coming with for this section.
2. Learn about your target audience
a. Imagine a hypothetical ideal viewer for your videos
b. How old are they?
c. What are their biggest goals?
d. What are their biggest fears?
e. Do they have a family to support?
f. Are they in school?
g. How much money do they make?
3. Using their fears and motivators, package your videos with emotionally
appealing thumbnails and titles
a. It’s ok to do “clickbait” if you’re offering useful content your viewers
will learn from or enjoy and appreciate
b. You should be making your best possible videos, so hopefully you
want people to watch them!
4. Consider beginners, intermediates, and advanced learners.
a. Why would beginners not want to click on your video?
b. How can you convince the huge population of intermediates, who
think they know everything, to stay and watch? (HINT: intrigue, and
tell a story)
c. What about the advanced learners?
5. Add intrigue… your thumbnails need to make the viewer ask questions
6. But also need to be familiar enough for your viewers not to be totally baffled
about what your video will be about
7. If you’re targeting young people, you unfortunately need twitchy, fast-paced
editing, which is not easy to do consistently - and how will you differentiate
yourself from YouTube giants like Dani?
8. If you’re targeting millennials and Gen X, you can take your time a bit, but
how will you differentiate yourself from other Game Dev YouTubers?
9. Bad Title Examples:
a. “Why I polished the combat in my indie game”
b. “Making my dream game - devlog 1”
c. “How to add colliders to game objects in Unity”
10. Better Title Example:
a. “99% of games fail without nailing this!”
b. “I made Minecraft in Unity in 12 minutes”
c. “How my game made $122,000 in its first week”

You might also like