Embracing The Many Hats Of Game Dev!

Table of contents

No heading

No headings in the article.

To be an indie game developer is to wear many “hats” - that is, there is an endless list of skills needed to plan, develop, promote, support, and more for every game you dream up. On the surface, it doesn’t seem too difficult. Just some art skills, a bit of code, a touch of audio magic, and ta da! A game is instantly created before your very eyes.

Breaking this down though, we can quickly see how complex this can get. Let’s focus on just art for example (and this is coming from a relatively non-artistic dev).

  • Physical
    • Choose the right materials
    • Have a solid understanding of durability, texture, color, etc…
    • Print, mold, etc… in a physical capacity
  • Digital
    • Texturing/UV wrapping
    • Color palettes
    • Understanding different art styles
    • 2D, 2.5D, 3D
    • Modeling
    • Rendering
    • Animations/Rigging
    • Shaders
    • Asset pipelines
    • Forms of UI
  • Other
    • Sketch/capture ideas
    • Prototyping/boxing
    • Concept work
    • Marketing materials
    • Adjusting shared assets based on use case

Already we have an extensive list, and there are so many topics I likely left out just because I haven’t encountered them yet. Then going beyond art, there are the many facets of design, programming, sound (ambience, music, sound effects), organization, marketing, effective debugging, documentation, designing custom tools, game packaging/deployment, and so much more!

The point is that in order to be a successful game developer, which is seen as a single job, you are effectively managing the talents of (dare I say) hundreds of jobs. It can be extremely overwhelming, especially when that perfect idea for a game requires nearly all of this knowledge.

This is where I want to offer some advice. Game development should not be a daunting task meant to scare people from creating their dream games. It should be a rewarding journey of learning and adapting your strengths to form games that are unique and special to you!

With this in mind, let’s look at some interesting mindsets you can adopt.

Embrace The Outfit Change

Wearing the same hat is usually the go-to move, but you do tend to appreciate it more when you wear other hats and then go back to your favorite one. Plus, it’s easier to not become tired of your outfits when you choose to mix it up each day.

Forgoing this extended analogy for a bit, game development can fall into a similar vein where continuing to focus on the same skills can easily lead to burnout. Personally, art takes longer to do because many of the techniques are unfamiliar, whereas programming is easier for me to approach. It’s still a challenge in both cases as all parts of game development can be a lengthy process, but motivation does tend to be tied to what skills you are most comfortable with.

This is why I suggest “embracing” the other hats of game development. Even though art is challenging for me, sometimes I find that taking a break from a complex coding scenario and just placing some pixels around in Aseprite helps refresh my mind. This is certainly a hidden luxury with game development that seems backwards at a first glance. We are able to set our own schedules, so use this to your advantage by rotating between the different demands of game development. You’ll likely find that you are able to focus better over extended periods of time and remain consistent with making updates to your game.

Know Your Favorite Hat

As much as it is important to mix up development, it’s certainly okay to lean more into your strengths! There are lots of games where the gameplay isn’t super streamlined, but it gets a lot of attention based on the visuals. Similarly, games may have “weaker” visuals, but the core gameplay loop is extremely engaging. Even though it’s good to build up the skills you are less comfortable with, part of the charm for your game can come from the strengths you have.

Essentially, it’s important to recognize that not every part of your game will be perfect. Of course, you want your game to be a smooth experience and extremely enjoyable, but the first goal is simply to release it! So when it comes down to time and there’s too many areas to address, consider falling back on your strengths to get the most out of your development cycle.

I strongly address sharing your games while in development for this point alone. As an indie game developer, it can be difficult to know which aspects of development are your strengths or weaknesses. Showing your progress to various people and allowing them to give feedback can help you recognize what you are naturally capable of.

Try On Other Hats

As a way of overcoming the many hats needed for game development, I suggest experimenting a bit with the areas you are unfamiliar with before implementing them into your game. One way I recommend doing this is by creating side projects within your preferred engine and messing around with what you are trying to learn. This allows you to avoid the complexities of your actual game and have a safer environment to practice in.

The neat part of this approach is that you can have a bunch of isolated example projects that you can reference at a later point when those skills are needed. This is partly why I recommend the Godot Engine because the node/scene system naturally creates modular components that you can easily adapt between projects. Most engines use this concept though, so you can’t go wrong with any of them!

A good place to start is searching up tutorials. The sad reality is that there aren’t exact tutorials for the game you are looking to build (otherwise, it would already be made). However, finding tutorials that focus more broadly on specific topics can help learn more efficiently. There’s no perfect route when it comes to tutorials, so you may as well just pick the first one that looks intriguing and then adjust from there. For instance, you may find a tutorial such as “Making Good Pixel Art” - it’s vague but it should help point you in the right direction. As you watch this video, terms such as shading, dithering, color palettes, etc… will come up that are completely foreign. This is where you can branch out into other tutorials that focus on those specific categories.

The central point here is that experimentation is a good approach to game development. I would argue that effective learning within this space is a separate skill on its own, but mastering it can greatly help you adjust to the many hats of game development.


Game development involves many skills that can quickly become overwhelming. Use this to your advantage by assessing your “game dev mood” for the day to determine what you should focus on. This helps give variety so that you become less bored with your projects (avoid burnout), and keeps the creative juices flowing. Don’t be afraid to experiment with new areas of game development and maintain a solid understanding of your strengths and weaknesses as you continue to learn!