Most gamedevs make THIS mistake- 4 mins
Gamedev is a complex field with many aspects, ranging from art to very technical things like algorithms. When starting, we often dive into the technical aspect because it’s probably the easiest or at least most straight forward thing to learn. The biggest mistake we make as gamedevs, is getting caught in this. As I’m saying that, you probably think about caring too much about clean code, patterns and clever systems. It’s one of the problem developers can face but it’s not what I want to talk about today.
I want to talk about creating features because they’re technically interesting or challenging, even though they might not be interesting for the player. When I started gamedev, I looked at a few tutorials to understand Godot and how to create basic games. After that, I tried lots of experiments to recreate mechanics, use specific nodes, etc.. Every experiments were about the technical aspect of gamedev. I would often think about mechanics that sounded cool or were technically challenging. Only after I would have implemented them, I would understand they were simply not fun. There are so many things to learn on the technical side of gamedev it’s easy to get caught doing that and forgetting about making good games.
That’s a problem lots of gamedev will face, but most won’t understand it. They’ll work on a game and wonder why people are not interested.
Yes, your open world chunk streaming system is cool. Yes, your realistic dismemberment system is cool. Yes, your clever algorithm to automatically generate terrain and foliage is cool. But, is your game fun or even interesting?
The reality is that players don’t care about your code, and they also don’t care about how complicated your system was to create. They care about the experience.
In a similar way, I think AAA studios make a similar mistake when they continuously chase ultra realistic graphics. Graphics are one part, but not everything. Some of the greatest games and most memorable are not hyper realistic and they stand the test of time much better. This is a complex topic that would require another post, so let’s go back to what I was saying.
It’s a common problem, but what are the solutions?
The first solution is to understand what you want. Maybe you got into gamedev because you liked playing games and you were interested in how they were made. Maybe you care more about technology than gameplay. If that’s you, perhaps you should consider becoming an engine, tool or network developer for example. In such positions, you’ll be able to work on very complex and exciting technical tasks.
The other solution is to “grow out” of the technical phase. If what you want is to make games that people enjoy, you need to understand that game design is probably more important than the technical aspect. In my opinion game design is harder than code because it’s less straight forward, not even talking about the fact that finding good resources on the subject is probably harder. If you go on youtube, you’ll find tons of tutorials on how to do X or Y in Unity, Unreal, Godot, etc.. Most of the beginner tutorials are teaching you how to make a working platformer or a top down shooter, but they don’t teach you how to make it good. There’s nothing wrong with it but it can be hard for beginners to understand why their game is not fun when they’re “technically” doing everything correctly. Yes, their code is great, but not their game design.
Dire decks by kindanice: https://kindanice.itch.io/dire-decks
I’ve been a victim of this for a long time, and I think I’ll always be interested by the technical aspect and sometimes a bit too much. Knowing how things are made and finding a clever solution to a complex problem is very rewarding, but it should be one part of the whole work. When creating features, we should think about the impact on the player first. Of course, I’m not talking about tools. You can make tools to speed up your workflow, but you shouldn’t get caught in that either. It’s easy to spend hours or even days working on tools for a feature that will never be used because it’s not interesting for the player.
Personally, I’m trying to think more about game design instead of thinking about mechanics that are cool to code. I’m trying to understand what makes a good mechanic for the player. How can I create things to make the experience better? How can I play with the value for the player to feel something when playing the game? How can I make the player feel a certain emotion?
It’s less about the code and systems and more about the feeling and experience the player will have.