While working on my first game Space Gladiators in 2019, I decided to start sharing some gamedev related ideas every week in a newsletter.
Most of those were only read by a dozen people and the emails have been sitting on my Google Drive since then.
I still think most of those ideas are relevant. So I went through all of them, removed and updated some and compiled everything in today's post.
None of these are hard and fast truths, just ideas I got and observations I made while working on my action roguelite game. Enjoy!
Be careful which game you're comparing yours to
If you’re making a tiny roguelite and tell them “it’s influenced by Dead Cells”, they’ll start with very high expectations.
They’ll probably end up disappointed when they find out it’s not as good as Dead Cells.
Some of them might even get offended that you’re comparing it to a game they love.
A recent example: Back 4 Blood being constantly compared to the Left 4 Dead franchise means players were disappointed when they found out it's not as good.
Marketing is about getting strangers to trust you
Players need to trust that they’ll have fun with your game.
Recommendations from friends or influencers are powerful because they basically circumvent the process.
Players will instantly trust your game as much as they trust the person recommending it.
Your players can put up with a lot if they enjoy your game
It means you don’t necessarily have to fix every bug and issue before showing it… or even releasing it.
I know that because I’ve been playing Dofus on and off these last years, a game that’s been out for more than 15 years.
There are so many broken things in the game: music tracks that play when they shouldn’t (and disabling them works only half the time), memory leaks that force you to restart the game every hour or so, missing animations, an unbalanced matchmaking system…
But it’s still a very successful game with hundreds of thousands of players.
Working hard on a game doesn’t mean it’ll be successful
You could make 1% of someone else’s effort and get better results than them.
Rising Hell development has started more than 4 years ago and it’s made by 5 people.
Gutwhale was made in 1 month by 3 people.
Now compare the number of reviews they each have: 156 and 113. (at the time I’m writing this)
Gutwhale did sell less and at a lower price than Rising Hell, though not by that much.
But there's a massive difference in the effort that was necessary to produce the games.
It's even more blatant if you look at games like SNKRX. (1 person, 3 months, 3302 reviews)
Your feelings towards your game will fluctuate
One day you’ll think it’s a piece of crap and that it’ll never be successful.
The next day you’ll think it’s the best thing ever.
What matters - if you want to actually finish games - is that you don’t completely mentally give up on it during your off days.
Be careful about your expectations as a solo dev
If you’re a solo dev, you’re competing with games made by dozens of people.
Even if you consider only very small teams of 2 or 3 devs, it still means that you’ll theoretically have to spend twice or thrice the time to make the same thing.
For example, Scourgebringer. Very small scope, but as far as I know it was made by 2 devs full time during 2 years.
So you should be prepared to spend 3-4 years to develop something of a similar quality. Even worse if you’re doing it in your free time.
And that’s not even considering that they’re experienced devs who already released a game in the same genre before.
Your work compounds
In the beginning, you have to put in a lot of effort for very little results.
You have to build all the back-end of your game while it’s not even playable yet.
You post a YouTube video and you get 10 views.
But it gets easier and easier over time.
The exact same video that took you the exact same amount of effort to craft might bring you 5x, 10x or even 100x the results as your audience grows.
Contacting YouTubers: bigger is not always better
Things to consider:
- Some of them have a lot of subscribers but a very tiny view and engagement count. (bad)
- Are they focusing on games in the same genre as yours (good) or do they cover a broad range of unrelated games (bad)?
- Are people watching these videos only for the host personality (bad) or to look for games to play (good)?
Do note that I’m not saying channels centered around their host are bad.
I’m just pointing out factors that have an impact on what kind of exposure and financial results you can expect from working with them.
If a creator posts only no commentary gameplay videos and still gets a lot of engagement, you know those people are here for the game.
All of this to say: don’t overlook small channels that have a targeted audience.
A channel with a qualified audience of 6K can generate more sales than one with 250K subscribers. (happened to me)
Your game doesn't have to be a masterpiece
A game doesn’t have to be a masterpiece to make players happy.
People can look over balancing issues, ugly NPCs or stiff animations if they enjoy the core loop of the game.
Don’t wait for perfection before sharing your work.
You’re probably not going to be the next Minecraft or Dead Cells or Hollow Knight.
But if your goal is live off your games, you don’t need to.
Thousands of indie devs are earning a (good) living with games you’ve never heard of.
The longer you work on a game, the more pressure you’ll feel
There are a few reasons for this:
- Your game will need to bring in more money for you to consider it a success.
- You’ll be more likely to burnout. Which will make you less productive and motivated.
- You’ll have more chance of getting caught in a death loop.
You can avoid a whole lot of issues if you keep your scope small.
Every platform is just trying to win
For Twitter, it means putting forward the tweets that get the most engagement.
For Steam, it means showcasing the games that are proven to convert visitors to sales.
For YouTubers, it means playing the games that generate the most views.
What does it mean for you?
The more successful your game is, the more successful it’ll become.
But the opposite is also true.
If your game is unknown and hasn’t proven its worth, very few people and platforms will take the risk of showcasing it when they have hundreds of other games that have a proven track record.
Know your audience
You have to know who your game is for and tailor the experience to what they like.
For example: if you’re making a gameplay focused roguelike like Nuclear Throne, keep the text to a minimum.
People who play these kinds of games want action fast and will likely skip most of the texts.
Make sure your game hits the key beats of your genre
When looking at games of the same genre, you can notice they all have features that are different on the surface but actually serve the same purpose.
For example, in the roguelite Slay the Spire the cards give a sense of diversity and control over your overall strategy.
This same purpose is being filled by items in The Binding of Isaac or weapons in Dead Cells.
Every roguelite punctuates their runs with mid-journey big challenges you have to prepare for, such as Elites in Slay the Spire or bosses in Ratropolis.
You should make sure your game hits all the same key ideas as successful games in your genre but in your own specific ways.
Look at what people do, not what they say
If they tell you your game is great but they play it only for an hour and never get back into it, it means you still have work to do.
The biggest obstacle you'll face as a new dev
When you’re starting out, the biggest obstacle you’ll face is not that people won’t like your game.
It’s that no one will know or care about it.
Know the focus of your game
Always prioritize it when you have to make a decision.
I’m making a roguelite, so gameplay is my focus. Here’s an example of how that idea influenced my decision.
When my characters use a shield, they hold it up in front of them.
So it protects them from the front. Makes sense, right?
The problem is that no one uses them because they kind of suck compared to other items.
Having to turn the right way to protect yourself is too much of a hassle.
So I instead just made the player invulnerable from all sides.
It’s not logical and look less realistic, but it’s better gameplay-wise.
Make your game technically unfair to the player
If you want your game to feel fair to the player, it has to be technically unfair.
The games that feel good to play implement a lot of different tactics that give leeway to the player. (see this twitter thread from Matt Thorson, creator of Celeste)
Allow them to jump out of a platform even if they’ve already started falling from it.
Push them up a tiny bit if they tried to dash somewhere but bumped their feet on the wall.
Make the enemy hitboxes smaller or turn them for free when they’re hitting in the wrong direction - like Dead Cells does.
Try to understand what the player wants to do and help them out.
If you don’t do it, your game will feel frustrating - even though it’ll technically be fair.
Players care about how a game makes them feel
Most of them don't care that much about technicalities.
Your game might have 300 items, a dozen of worlds and hours of gameplay.
But it might still be less appealing and less successful than a 15mn game with no content but perfect character control.
Most people will only play your game for a few dozen minutes before deciding whether they like it or not anyway.
Start by making a small game
If you start out with a huge project, you’ll be stuck for years with all the poor decisions you made while you were a beginner.
The bad code systems.
The animation style that’s too demanding and slow to create.
The poorly designed game mechanics that limit your level design possibilites.
With small games, you can create things that reflect your current level of skill at all times.
And you’ll avoid 80% of issues that show up only when your project reaches a certain size.
(I definitely wish I started out with a smaller scope for my first game)
Your motivation is a resource
It'll deplete when you work too long on tasks that have no visible outcomes. (refactoring code, cleaning up art assets…)
It’ll fill up when you get positive feedback or see tangible progress on your game. (new enemies, new levels...)
You have to manage it correctly (just like time and money) if you want to make it to the end of your project.
Be aware of what your design choices entail
The decisions you make at the beginning of a project have more impact than you think.
Say you decide your player shoud be able to attack up or down in your 2D platformer.
This alone can represent weeks of additional work and can limit how creative you can be with your level layouts.
You’ll have to make sure the player can’t cheese enemies by attacking them from below or above without them being able to defend themselves.
Your enemies will need more attacks (which also means more animation work) and more complex behavior patterns to deal with it.
Be aware of what each of your decisions entail.
Ask yourself if it’s really needed to achieve your vision before burdening yourself with more work.
Confidence comes from objective facts, not mind tricks
You trust in your ability to finish a game because you’ve finished many other projects before.
You trust that your game is fun because people you don’t know have played it and told you they liked it.
Self-confidence is built through small wins. Each of them is further evidence that you are capable of achieving the things you’re aiming for.
The more you win, the easier it becomes to win
When you are unknown, you have to fight to get eyes on your games.
But once you get a track record of successes, people will want to give you their attention and money.
Platforms will feature you more. Big YouTubers will try out your games.
Just a thought, but how many copies do you think The Legend of Bumbo would have sold if it was made by a random anonymous developer?
Create the kind of game you like to play
You need to understand who your target audience is and what they want, and it’s easier if you’re part of that audience yourself.
It’ll make development more enjoyable too.
You can't attribute the success of a game to a single thing
What makes Nuclear Throne stand out compared to all the other twin stick shooters out there?
I can’t pinpoint one specific feature that make it good.
I believe it’s a lot of small decisions and ingredients put in the right amount in the right places.
Fix your game before marketing it
Let’s say you’ve shown it to a few people and they all give you the same feedback.
If you show it to more people, you’ll only get more of the same response and it won’t help you at all.
Fix it before getting new eyes on your project.
Make sure your core game loop is fun before developing it
You need to make sure the core loop / concept of your game is fun before going any further.
No amount of secrets, deep lore or endless customization options can fix a game not being enjoyable to interact with.
On the other hand, you could make a prototype in 2 days and have thousands of people play it even 4 years after its launch: Right Click to Necromance.
People don’t want original games
They usually just want something they already like, but with a twist.
There is more than one way to make a successful game
The guys from Butterscotch Shenanigans design their games iteratively and don’t plan anything in advance.
Others do extensive market research before prototyping anything.
Anything can work, but you have to find the best approach for you.
Find efficient ways to create replayability
Try to find efficient ways to incentivize the player to replay the same content over and over.
You don’t necessarily need to create thousands of different enemies and items.
In Dicey Dungeons, you replay the same levels with different characters.
They each have one unique mechanic and 2 to 3 different starting cards that change how you apprehend enemies. It’s just enough to keep it fresh.
In Slay the Spire, the game makes you replay the same levels 20 times for each character through the use of Ascensions.
Everytime, one thing becomes harder. “More elites”. “Start the run damaged.”
As the dev, you just have to tweak some numbers. But it gives your players a reason to start a new run.
Take feedback with a grain of salt
A lot of people will tell you what they think you should do when they don’t have a clue themselves.
I’ve come across devs on reddit asking how they should market their game…
...and being answered to make business cards. What?
Steam (probably) won't give you lots of free traffic
Some people think publishing a game on Steam gives you loads of free traffic and sales.
Truth is... if you don’t bring in sales from external sources Steam does practically nothing for you.
But get some traction first and Steam will make your game exponentially more successful.
Like 10x or even 100x as successful.
Because Steam only wants to promote winners a.k.a. the games that’ll bring in the most revenue.
Getting attention is hard
Getting attention on your projects online is way harder than you probably think if you’ve never tried it yourself.
It’s not as simple as making YouTube videos, creating devlogs or making cool gifs on Twitter.
Thousands of people are already doing that and only a few are getting actual traction.
It takes a lot of time and effort (which you won’t spend on improving your game) to understand what works, experiment with it and translate that into sales.
You could actually be better off focusing all of your efforts into making a game with a potentially viral concept and bet on luck and timing to get players: SNKRX, Vampire Survivors, 5D Chess.
Get other people to play your game
You should get other people to play your game as soon as you can.
Some things seem obvious to you but are not for other people.
Some of your ideas suck but you won’t know which ones until you watch someone else play.
Your game will improve exponentially faster with external player feedback.
So release an early demo, send it to your coworkers, make it early access. No one is going to steal your idea.
Take advantage of the low-hanging fruits
There are things in your game that need very little effort to make but can improve greatly the player’s experience.
For instance, in Grim Nights your units have silly names. It’s easy to do but it makes the game way funnier for the players.
Players find issues, not solutions
Your players are experts at pinpointing the issues of your game, but they don’t always know the right solutions. It’s your job to find them.
For example, someone might tell you that “the game feels too repetitive, you need to add more enemies”.
This is great feedback. But you could fix this issue in many ways: making enemies work better together with new skills, restructuring how your run unfolds (in the case of a roguelite) or even adding new characters instead.
A lot of times, the solution might be to tweak things that the player isn’t even aware of.
If your game is feeling too hard and frustrating, you could give the player a few frames of invulnerability while colliding with a foe or add half a second before the enemies can attack.
Polish your early game content
You should spend most of your time working on polishing your early game content.
This is what the majority of people will see. That’s when they’ll decide whether or not they like your game.
Don’t spend 2 months working on an end game boss that only 1% of your playerbase will ever see.
Make sure instead that the basic enemies are fun to fight.
Triple down on what makes your game unique
Try to understand why your biggest players find your game fun and enhance those things.
Watch them play, talk with them and ask them questions. You’ll get invaluable information.
At the same time, you can also ask people why they didn’t like it.
If it doesn’t compromise the core of your game, fixing those issues could help more people enter your playerbase.
But be aware that some of them might just not be part of your audience.
Be aware of your bias towards your game as the dev
You spent more time than anyone else playing it so you can’t know whether the difficulty is right or if it’s actually too repetitive before you see someone else play it.
Don’t make big changes before getting the opinion of your players.
Don't make your game tedious to play
Don't obfuscate information from the player if it's just making it tedious for them.
Making them memorize or calculate something on their own when it could just be displayed is frustrating.
It could mean:
- Showing how much damage they do after all buffs.
- Updating the “unknown effect” description of next potions of the same color after they have discovered one of them.
- Allowing them to see their deck while doing an operation such as removing or upgrading a card.
This does not apply if it’s part of the gameplay.
Create replayability by having multiple layers of randomness
Picking out random rooms from a pool is only the first layer.
Randomizing the treasure, the enemies and their level, the presence of traps or walls, the effects of items etc. is what create infinite possibilities and unique runs.
But do it within preset boundaries to avoid creating complete chaos.
Having too much unsupervised randomness can be as bad as having too little.
When to listen to player feedback
If one player pinpoints an issue, it’s not always a big deal.
They have their own bias and it might not be the best thing for your game to change it.
If a lot of them pinpoint the same issue, it becomes your problem.
You have to put your emotions aside and fix it.
Making a game is about people
Everything you do in a game is meant to make the player feel something.
Which is why I think empathy is one of the most important skills to develop as a gamedev.
The most complex technology and the best looking art don’t matter if the game isn’t built with the player’s experience in mind.
Addictiveness is created through balance
You have to give rewards to the player at the right times in the right amount to keep them interested.
But give them too much and they’ll become desensitized.
Basic issues are hard to see as the dev
Basic issues will become more and more invisible to you the longer you work on your game.
That’s why you need to constantly have new players giving you feedback.
Start your day off with easy tasks
It'll help you get momentum.
Wash the dishes, fix a simple bug and update a sprite before tackling a complex new feature.
You could even go as far as saving the easy tasks just for this.
It makes getting to work less intimidating.
If you copy things from a lot of games, people call it inspiration.
If you copy things from one game only, people call it a rip-off.
That’s why Enchanted Portals got a lot of backlash because of its Cuphead inspiration.
Unfortunately the game never got released so we'll never know how much that would have affected its success.
Some people seem turned off by it while others are happy to have more content to play.
Focus on the right things
You could spend your time trying to optimize your bank fees, working on small parts of your code that don’t matter or trying to find the best website to post your devlogs on.
Or you could spend your time actually finishing your games, getting honest feedback and learning more about game design and what is actually needed to make a game fun and successful.
If you do the latter, you’ll get exponential results over time and you won’t have to worry about the little things.
Failing is the default...
The games that succeed financially are the exception, not the rule.
Most games never get finished. And most games that do get finished don’t make any money.
We only ever hear about the successful ones and it gives us a biased perspective on the market.
...but most people aren't trying that hard
Most people are not that dedicated to making a financially successful game.
- Seeing your project through to the end and not giving up,
- Putting effort into polishing it,
- Committed to improving your skills,
- Listening to your players to iterate on your ideas,
- And understanding where your game fits on the market...
I believe you’re actually ahead of 99% of other projects already and you’re only competing with a fraction of them.
Using willpower doesn't work in the long run
Instead, change up your environment so you don’t have to use any willpower.
Polishing a game takes as much time as making it
At some point during development, your game will look like it’s done.
The main systems will be in place. The graphics will look almost finalized.
That’s when you’ll think you’re 90% done - when you’re actually only halfway there.
Polishing a game takes at least as much time as making it in the first place.
Compare your work over longer periods to see your progress
When doing something every day, you don’t really notice your progress.
But compare your current work to what you were doing a year ago and you’ll see how much you’ve improved.
That became really clear to me when I redesigned a bunch of enemies I had made when first starting out.
It’s always a good thing to look at when you feel like you’re just treading water.
Being too dependent on specific tools can be dangerous
It’s dangerous to be entirely dependent on specific tools if you want to build a sustainable business.
I’m using the Gamemaker Studio 2 engine. Due to server issues on their side, a lot of users could not log into their account for the past 3 days.
Which means they could not access their project and could not work at all during that time.
It’s the same thing if you’re basing your whole business on one platform: YouTube, Steam, Twitter… any of those companies could decide from one day to the next to delete your stuff.
Ideally, you should structure your business so that any one platform / person / company should not be able to destroy it if they just decide to.
Do you like game dev or just the idea of doing it?
Should you try to make a career out of indie game development?
There’s an important distinction to make here.
Do you like the idea of being an indie dev or do you like actually doing it?
Personally, I like the idea of being an artificial intelligence (AI) researcher and professor.
I think it’s an important field for the future and I’d surely enjoy the status and prestige it gives.
When it comes to actually studying AI though, I’m bored out of my mind. So I’m not pursuing that as a career.
I don’t think indie dev is particularly prestigious. A lot of people see you as a kid playing games.
But I (mostly) enjoy doing it day to day. I’m excited to see my projects come to life and I love watching people play my games.
Basically, what I’m trying to say is: ask yourself if you’re doing it for the right reasons.
Are you excited about making games?
Or are you excited about telling people you’re a game developer?
Making a game is a mix of fun and boring work
- Coming up with ideas and concepts
- Designing the game
- Coding the initial main systems
- Adding content (depending on your interests)
- Polishing stuff
- Fixing bugs & glitches
- Menus & UI
- Managing different input devices and resolutions
- Remapping controls
I believe a big reason why people love doing gamejams is that you only have to make the fun parts of a game before moving on.
But you need to be able to do the boring work if you want to publish a commercial game.
Finishing your projects is hard
As an indie game developer, I believe the hardest and most important skill to acquire is to finish a project even after you’ve lost interest in it.
Especially when you realize no one really cares if you complete your game or not.
You have no deadlines. No boss. No pressure. Only self-motivation.
Just by finishing a game, you’re ahead of most people who want to get into that field.
You should be proud of yourself whether or not it brings you the external success you wished for.
Getting an idea is easy, implementing it is hard
When making a game, the “creativity” part only represents a fraction of the project.
Getting a good idea takes a few minutes, implementing it can take days.
Being a good programmer =/= being a good solo dev
The difficulty of making a financially successful indie game on your own doesn’t usually come from hard technical challenges.
You’ll more likely struggle in:
- The project management aspects (hitting deadlines, motivation, discipline, time management, finances…)
- The sheer amount of content you have to create
- The amount of different skills you have to learn and be good at
- The business and marketing aspects (letting people know your game exists and making them care)
- … and putting it all together to make a good polished game that actually has a place in the market.
It’s why being an excellent programmer doesn’t automatically translate to being an excellent indie developer.
Always pick the simplest option
When having to choose between multiple options (engines, ideas, languages…), always pick the simpler one.
Bringing a game to life is difficult enough that you should reduce complexity where you can.
This is one of the reasons why Rogue Legacy could be made in only 1 year and a half.
A small motivation tip
Do the hard parts of your work when you’re feeling motivated and energized.
Do the easy and exciting parts when you’re having a rough day.
Don't tackle too many challenges at once
Say you have no experience in game development.
You don’t have an artistic background, you don’t know how to code and you never played an instrument in your life.
If you start out by trying to create a MMORPG in a game engine you know nothing about…
You’ll almost certainly become overwhelmed by the sheer amount of information you have to learn to keep moving forward.
Every time you start a new project, pick only one or two new things to learn.
Making a game is similar to playing a MMORPG
You’re making a plan on what you want to accomplish. Then you’re grinding to make it happen.
The difference is that it’s a lot easier in a game than in real life.
Because a game designer is making sure you’re getting rewarded exactly at the right times to feel like you’re progressing.
In your work, you might go through days and weeks of efforts without rewards.
But once they come (as praise, sales or simply players enjoying your game), they’re a lot more meaningful and satisfying than the former.
Discipline is not a personality trait
It’s mostly just dependent on your environment.
If you have:
- A laggy computer,
- People watching Netflix around you all the time
- And friends constantly pinging you to join them in the latest MMORPG...
Then it’s only a matter of time before you stop working on your game.
But if you:
- Have a great computer,
- Live with people that are working on their own projects,
- And you’re running out of cash to put food on the table…
Working on your project will be a piece of cake.
Constraints foster productivity
If you just set out to “make a game”, you will likely waste a lot of time contemplating all the different options and things you could do.
Instead, you could decide to make a 10 minutes long 2D platformer using GameMaker Studio 2 that’ll get published on itch.io in 2 weeks.
That would make it much easier to know what you have to do now in order to move forward.
Reduce your workload where you can
Not all work is created equal.
You might think it looks cool to have 15 frames idle animations instead of 6 frames for your NPCs.
But the players don’t care that much and you’ll waste hours that could have been better spent.
The bigger your project becomes, the harder it’ll be to work with it
Tracking down bugs gets more difficult. Compiling takes more time.
Overall, a lot of things become slower and more annoying to do.
Your resources are limited
Every functionality you choose to add into your game comes at the expense of something else.
Say you’re spending a week crafting beautiful menus while your players are asking you to fix game-breaking bugs or to add new enemies.
Even though your game might become 1% better because of those menus, it could have become 20% more fun in the same time frame had you worked on the latter issues instead.
Anyone could make a successful game with unlimited time, resources and feedback. But no one actually has that.
The real challenge of gamedev is knowing where to spend your energy and what you should disregard completely.