Somebody once made a thread asking how hard is it to develop a video game all by yourself. Now that I'm developing a video game myself, figured it’s worthwhile to cover the topic, as there might be others who want to develop a game.
Solo game development is one of among the hardest challenges you can possibly do in life.
It’s very challenging because you need to be skilled at many things:
- Art
- Writing / Storytelling
- Level Design
- Programming
- Sound Design / Music
- Marketing
If you are making a game just for fun, you can ignore marketing.
It's ironically both easier and harder to make a video game than ever before. It’s easier to get a game started, but harder to have a good game with good performance. It’s easier than ever to get started because there are templates, tutorials, visual scripting for non-programmers, and now AI. It’s harder than ever because games are more complex, and more varieties of hardware specs and more graphics card settings which make it harder to guarantee smooth performance across all devices. There are also more screen aspect ratios, which affects visibility (unless you have black bars which are ugly to look at), and what is visible on the screen affects gameplay, since objects that are on-screen are treated differently than off-screen.
There are a lot of game engines and the two most widely-used engines are Unreal Engine and Unity.
Unreal Engine has the best graphics, but it has an out-of-the-box approach where all features are turned on by default, which would be great except that it causes heat issues and leads to more poorly optimized games if you don’t know what you’re doing. I’m a big graphics guy at heart, but decided for Unity because it takes a modular approach, runs better on lower-end hardware, and is easier to write code for. Unity uses a standard version of C#, so you can read any book or tutorial on C# and probably be able to apply it to your game, while Unreal uses C++ but throws out the C++ standard library with its own classes. C# is naturally easier than C++, because C# is a higher level language but C++ runs faster. However, Unity converts your C# code into C++ before compiling, so you get the advantages of both.
Visual scripting
Visual scripting uses nodes and is helpful for non-programmers to code without writing code and to see the flow of their logic. However, the node graphs become an enormous spaghetti monster. You can reach the point it’s simpler to write code. So while it’s not absolutely necessary to know how to write code, it’s highly recommended. But if you don’t know anything about programming, your ability to optimize your game for performance will be limited.
Know your audience
Console gamers and PC gamers are different crowds. They are two different cultures. PC gamers tend to be older and love to tinker. They love a complex UI like an airplane cóckpit, love to play around with settings, and strategy games, crafting games, and simulation games are popular. On the other hand, console games tend to be more plug-n-play.
Games have hooks and pillars. Game hooks bring in the audience. Game pillars are the core elements of the game that keep it on track.
Gamepad psychology
Gamepad controllers have directional control on the left stick and camera control on the right stick. Since that is the standard, it’s best to stick with it for familiarity purposes, and there is good reason why it became the standard. Most people are right-handed and that is where they have the most dexterity. Because of dexterity, buttons were placed on the right for the most time-sensitive controls. Moving your player around is a higher priority than rotating the camera, so directional controls were placed on the left stick to not be disturbed by lifting your thumb to press buttons on the right.
You should assign major player actions to triggers before buttons, because you don’t move your thumb. Buttons are better for lower priority player actions. If fire was on a button, it wouldn’t be possible to look with the camera and shoot a gun at the same time.
Don’t make your “dream game” as your first game
Start small and simple. Know your scope (how much can you realistically do?) and don’t bite off more than you can chew. Don’t make an open world or a role playing game as your first game, because the amount of content you’d need to fill would be massive. You need to stay away from scope creep / feature creep.
Don’t worry about being “original”
Original ideas are not valuable. Good ideas have pre-existing familiarity with the audience. It’s the execution of an idea which is valuable.
Horror
Horror games are popular among indie game developers. Designing a good horror game is hard, but horror games are relatively simple to produce from a technical perspective. Horror games have simple narratives and can be done in one location (such as haunted houses). Low light allows artists to get away with lower resolution textures and lower polygon counts. For these reasons, horror games are easier to optimize for performance and have a shorter production schedule.
Don’t vibe code
Vibe coding is using AI to write a game without you even looking at the code. If you’re doing this just for fun, sure, you can vibe code. But not if you want other people to play your game. The game won’t have optimized performance, it will be limited in scope, it increases technical debt (poor architectural decisions) and cognitive debt (your understanding of the codebase).
Don’t make asset flips
Gamers loathe asset flips. Asset flips are shovelware, where someone with minimal skills buys a few asset packs and templates of game mechanics and quickly throws together a game for a quick buck, with little or no care for quality. You can tell a game is an asset flip because the assets don’t have a cohesive art style. For any assets that you buy, you will need to do work to make them game ready.
Don’t use AI music
Either learn a new skill of music production, buy royalty-free music, or pay a musician. AI music cannot be copyrighted and music generators like Suno have dubious terms of service. Buying royalty-free music supports human artists and saves time, but there are potential licensing issues which can arise, and royalty-free music is “good enough” but may not be aligned exactly with your art direction, and you’d have to be okay with some people recognizing the music. It’s ultimately best, in the long-term, to learn music production, but if that is not a viable option for you, consider paying a musician as work for hire. You probably have friends who are musicians, and they might be able to help you out in some way.
Solo game development is one of among the hardest challenges you can possibly do in life.
It’s very challenging because you need to be skilled at many things:
- Art
- Writing / Storytelling
- Level Design
- Programming
- Sound Design / Music
- Marketing
If you are making a game just for fun, you can ignore marketing.
It's ironically both easier and harder to make a video game than ever before. It’s easier to get a game started, but harder to have a good game with good performance. It’s easier than ever to get started because there are templates, tutorials, visual scripting for non-programmers, and now AI. It’s harder than ever because games are more complex, and more varieties of hardware specs and more graphics card settings which make it harder to guarantee smooth performance across all devices. There are also more screen aspect ratios, which affects visibility (unless you have black bars which are ugly to look at), and what is visible on the screen affects gameplay, since objects that are on-screen are treated differently than off-screen.
There are a lot of game engines and the two most widely-used engines are Unreal Engine and Unity.
Unreal Engine has the best graphics, but it has an out-of-the-box approach where all features are turned on by default, which would be great except that it causes heat issues and leads to more poorly optimized games if you don’t know what you’re doing. I’m a big graphics guy at heart, but decided for Unity because it takes a modular approach, runs better on lower-end hardware, and is easier to write code for. Unity uses a standard version of C#, so you can read any book or tutorial on C# and probably be able to apply it to your game, while Unreal uses C++ but throws out the C++ standard library with its own classes. C# is naturally easier than C++, because C# is a higher level language but C++ runs faster. However, Unity converts your C# code into C++ before compiling, so you get the advantages of both.
Visual scripting
Visual scripting uses nodes and is helpful for non-programmers to code without writing code and to see the flow of their logic. However, the node graphs become an enormous spaghetti monster. You can reach the point it’s simpler to write code. So while it’s not absolutely necessary to know how to write code, it’s highly recommended. But if you don’t know anything about programming, your ability to optimize your game for performance will be limited.
Know your audience
Console gamers and PC gamers are different crowds. They are two different cultures. PC gamers tend to be older and love to tinker. They love a complex UI like an airplane cóckpit, love to play around with settings, and strategy games, crafting games, and simulation games are popular. On the other hand, console games tend to be more plug-n-play.
Games have hooks and pillars. Game hooks bring in the audience. Game pillars are the core elements of the game that keep it on track.
Gamepad psychology
Gamepad controllers have directional control on the left stick and camera control on the right stick. Since that is the standard, it’s best to stick with it for familiarity purposes, and there is good reason why it became the standard. Most people are right-handed and that is where they have the most dexterity. Because of dexterity, buttons were placed on the right for the most time-sensitive controls. Moving your player around is a higher priority than rotating the camera, so directional controls were placed on the left stick to not be disturbed by lifting your thumb to press buttons on the right.
You should assign major player actions to triggers before buttons, because you don’t move your thumb. Buttons are better for lower priority player actions. If fire was on a button, it wouldn’t be possible to look with the camera and shoot a gun at the same time.
Don’t make your “dream game” as your first game
Start small and simple. Know your scope (how much can you realistically do?) and don’t bite off more than you can chew. Don’t make an open world or a role playing game as your first game, because the amount of content you’d need to fill would be massive. You need to stay away from scope creep / feature creep.
Don’t worry about being “original”
Original ideas are not valuable. Good ideas have pre-existing familiarity with the audience. It’s the execution of an idea which is valuable.
Horror
Horror games are popular among indie game developers. Designing a good horror game is hard, but horror games are relatively simple to produce from a technical perspective. Horror games have simple narratives and can be done in one location (such as haunted houses). Low light allows artists to get away with lower resolution textures and lower polygon counts. For these reasons, horror games are easier to optimize for performance and have a shorter production schedule.
Don’t vibe code
Vibe coding is using AI to write a game without you even looking at the code. If you’re doing this just for fun, sure, you can vibe code. But not if you want other people to play your game. The game won’t have optimized performance, it will be limited in scope, it increases technical debt (poor architectural decisions) and cognitive debt (your understanding of the codebase).
Don’t make asset flips
Gamers loathe asset flips. Asset flips are shovelware, where someone with minimal skills buys a few asset packs and templates of game mechanics and quickly throws together a game for a quick buck, with little or no care for quality. You can tell a game is an asset flip because the assets don’t have a cohesive art style. For any assets that you buy, you will need to do work to make them game ready.
Don’t use AI music
Either learn a new skill of music production, buy royalty-free music, or pay a musician. AI music cannot be copyrighted and music generators like Suno have dubious terms of service. Buying royalty-free music supports human artists and saves time, but there are potential licensing issues which can arise, and royalty-free music is “good enough” but may not be aligned exactly with your art direction, and you’d have to be okay with some people recognizing the music. It’s ultimately best, in the long-term, to learn music production, but if that is not a viable option for you, consider paying a musician as work for hire. You probably have friends who are musicians, and they might be able to help you out in some way.

