GameDev Thoughts: The Fallacy of Chasing Perfection in Game Development

Creating a game and declaring it as a finished product is an absolutely wonderful feeling. You have a tangible product from your hard work and dedication, and this product is ready to be received by the world. All is good, right? Unfortunately, this feeling is bittersweet, as often many developers see their final game as “less good than it was envisioned to be.” This mindset is flawed as it is impossible to avoid this line of thinking even among the best games ever made.

Your product’s development can be summarized as an equation of sorts: Your vision plus the compromises you make along the way will equal your final product. I had never really thought about it this way until recently, but it actually makes a lot of sense. Every developer wants to make the best game they can, but perfect games will lead to infinitely long development times. For all practical purposes, there is no such thing as a perfect game. It’s sad that the sacrifice has to be made but since perfection is impossible we have to make do with what we can.

For me personally, I just aim for at least an 8/10 rating when it comes to testing. I have a system in place where I’ll send the build to gamers and get their thoughts. Striving for a perfect 10/10 rating close to impossible, and you can’t argue that there aren’t diminishing returns for trying to cross that road. Luckily, there is a mindset that accommodates this idea. Think about it this way: the main difference between an 8/10 game and the theoretical perfectly rated game is how well the game caters to its target demographic. It’s completely possible to make a 10/10 game if you prioritize certain types of people, but there’s no way you can make a game that will be rated a perfect ten by every person on the planet.

From my experience, I believe one of the better development models is to make an above-average game (in terms of perceived ratings) and then deploy it in the Early Access phase on Steam or simply plopping it on GameJolt or Once the game is out in Early Access (or on storefronts) you can start getting feedback that you can utilize to mold the game into a “perfect” game for that audience that’s interested. You can just keep polishing and polishing until you have your 10/10 rated game, at least to the target audience. Even with a “perfect” rating your game still isn’t perfect due to differing opinions in people, but since you can’t just create the perfect game you have to make cuts somewhere along the line, and since it’s impossible to cater to everyone you may as well focus on pleasing a specific audience.

Important Takeaways: Many game developers suffer from a feeling of disappointment with the end result of their game. This is due to them falsely believing that creating a perfect game is possible. Developing a game is simply an equation that comes out to “Your vision + your compromises = your final product.” There will have to be at least a few compromises somewhere or else you will never finish your game; development has diminishing returns after a certain point so you can’t just endlessly polish your game into perfection. In order to make the best use of your forced compromises, try to focus your audience and cater to their desires. Release your game into early access once it’s decent and get feedback to polish it into a “perfect” game, at least to that audience. You can’t make a game that everyone will call perfect, but you can certainly focus on making one that SOME people will call perfect… and maybe that’s all you really need.

GameDev Protips: How To Effectively Promote Your Indie Game By Targeting Advocates, Peers, and Big Fish

The indie game market today is rough, to say the least. The best indie games can go unnoticed while the cheap clones get all of the fame and the fortune that comes with it. As a result, knowing how to properly market your games is a key factor in the success of your games as a whole. The best way to do this is to cater to three specific types of people.

Advocates are the loyal members of your brand that will retweet anything you Tweet and like every Facebook post you post. These are also the people that will spread knowledge of your game to friends and family. Obviously, the more loyal members you have, the more well known your games will be, so it’s strongly encouraged to provide value to these members on both social media and email. Creating or updating a weekly newsletter or blog roundup is a good way to start. With regards to email, include links to your social media and experiment with ways of asking your subscribers to share the content; after all, when a fan becomes a beacon for other potential fans your game will become well known much quicker.

Peers are those people or brands in your field that are attempting to capture the attention of the same people that you are. From my experience, we’ve found that when both parties are marketing to a similar audience it’s effective to work with these peers as your potential audience size is increased and it’s good business practice due to mutual benefits. The “partner” conditions could be as simple as agreeing to share each other’s content on social media or cooperatively writing a blog post and as in-depth as creating free resources to share among both parties which will capture the attention of your audience. Starting a partnership is rather easy as it starts with a simple message to the content manager or social media manager of the company you’re interested in working with a few valuable partnership ideas and the benefits that come with them for both parties.

Last but certainly not least are the Big Fish. These are the people or companies that have a powerful and wide-reaching influence that can easily promote your game. Despite how useful they are, connecting with them may not be as hard as most people think it is. After all, at the end of the day, they’re still just human like you and me. The only difference is the audience they have amassed as a result of years of hard work. There are a few basic principles when you are attempting to connect with an influencer. First and most importantly, you have to provide value for them. Why would they help you if there’s no benefit? In terms of behavior, expect nothing in return, be polite, and simply act like a genuine human being. As long as you are on friendly terms with them and are making it worth their time, this relationship will build up over time into one that is both mutually beneficial and trusting.

Important Takeaways: Today’s market can be frustrating for many as marketing is everything. Even if you have a better game, the game that is better known might still come out on top. Fortunately, you can solve this through proper marketing which involves catering to three specific groups of people: advocates, peers, and the “big fish.” Advocates are loyal members of your brand that will spread information that you send out whenever they can. Since this is a valuable trait this group of people should receive particular attention and obtain value for their loyalty. Peers are people or brands that are looking to market to the same audience as you. Because of this, partnerships have the potential to work out so you should attempt to create one for mutual benefits. Last but certainly not least are the “big fish,” which are those people or companies that have a powerful, wide-spread influence due to the time and work they have put into doing what they do. If you want to catch a “big fish,” you have to attempt to reach them and provide value for their time as well as act in a generally friendly manner. This way you can hopefully create a relationship over time that is worth the effort and time for the big fish and enormously helpful to you as well.

GameDev Protips: How To Design An Indie Game That’ll Blow People’s Minds

No matter the genre, every game has certain aspects that determine the overall quality of its design. If the quality is sufficiently high, it’ll blow peoples minds. It’s true. While different genres might place different priorities on each, they’ll always exist to some degree and thus must be considered. These five aspects to good game design are creating proper difficulty, showing a lack of apparent complexity, ensuring a high quality of gameplay depth, offering true engagement, and properly balancing the game’s systems.

For creating proper difficulty, you have to ensure that there’s enough challenge for the achievement of a goal to be satisfying, but not enough to dissuade the player from continuing on. This difficulty can be created in different areas such as mental or dexterity-related skills depending on the game’s genre, but this difficulty should always be appropriate to the genre as a whole. For example, casual games should only have a relatively low level of difficulty whereas more hardcore games such as 4X strategy games will have their difficulty at a level that caters to that specific hardcore audience

Closely related to difficulty is a game’s complexity. There is a difference, however, in the apparently complexity of a game and its actual complexity. The apparent complexity is the number of game rules or other objects with which the players use to achieve the game’s goals. For example, a cluttered or non-intuitive interface displaying critical information for a player’s success may make a game seem overly complex, even if the critical information itself isn’t particularly complex such as a health bar. Similarly, having a ridiculous amount of differing actions be completed in the right order successfully, even if each task individually requires little skill, will come off as overly complex to a player. On the flip side, in golf, the goal itself is simple as you just have to get the ball into the hole. Even though the goal might be simple in nature, it requires a great amount of skill consistently score, so this game is rather complex even if it’s incredibly easy to understand.

Next of is the quality of a game’s depth. This is a measure of how much a player enjoys the game even considering skill progression. This is directly related to the number of interesting decisions a player can make while attempting to achieve the game’s goals. For example, Tic-Tac-Toe has a very simple rule set and very few meaningful decisions past the first two actions or so, as you simply have to place your piece where a three-in-a-row will be blocked. As a result, it is a game with both low complexity and low depth. Chess has a moderate size ruleset but has a much greater amount of interesting decisions, including but not limited to specific openers, attack strategies, defensive strategies, and other similar, very meaningful choices. As a result, chess is a game with a medium amount of complexity but very high depth. Monopoly has even more rules than chess but less meaningful decisions, so it has a high amount of complexity but much less depth. Dungeons & Dragons is extremely complex due to the massive rulebook that is almost impossible for a person to memorize, but one could argue that it is less complex than chess since many actions are “pushed” upon you due to the circumstances of the game and an inherent reliance on rolling dice.

Perhaps the number one rule of game design is that a game should be easy to learn but difficult to master. This means that ideally a game should consist of high depth but low complexity. This allows a casual player to pick up the game and enjoy it but also allows hardcore players to crank out maximum efficiency in their gameplay and really dig in. This depth-to-complexity ratio is called streamlined design and is what many game designers strive to achieve as their primary measure of what makes a good game.

While many consider streamlined design to be the key to a well designed game, other game designers such as myself consider true engagement to be the most important factor. Being truly engaged means that the player is completely mentally and emotionally immersed in the game, and this is a strong factor in a game’s “stickiness.” If the player is engaged they are much more likely to keep playing it. This engagement depends on many factors such as the clarity of a game’s goals, the feedback the player receives when performing actions successfully or unsuccessfully, the appeal of the reward for achieving the goals in the game, or the user interface’s intuitiveness.

Understandably, even proper balance is regarded as the most critical factor in designing a good game by another subset of game developers. In regards to multiplayer games balance ensures that all players have an equal chance of victory given equal skill regardless of any factors such as starting locations or loadouts. This applies to mostly multiplayer games, however. When you apply this generally to any game, balance refers to the difficulty of the game’s challenges being appropriate to the player’s skill level. If a challenge is too difficult, the player will feel frustrated and possibly give up, but if it’s too easy, the player will feel bored and might just stop playing. As you can see, either extreme can result in the player quitting, and this is obviously bad.

One key thing that novice game designers tend to miss is that a new player is obviously an unskilled player, so the difficulty must be tuned down appropriately. When you restrict the game’s testing to the development team, you have a team of professionals who are almost guaranteed better than most players at their game balancing it. If you overwhelm the new player right away, you’re much more likely to lose them since they don’t have a reason to keep pressing on since they just started and aren’t attached yet.

Players gain more experience by playing your game and therefore improve their skills, so a developer can account for this making sure the game has an appropriate difficulty curve. Optimally, as the player proceeds through the game, it will get both more complex and more difficult, but not too little as to not matter or not too much as to overwhelm the player and create difficulty spikes. With a perfect curve, the best case scenario is that the game’s depth is enough to motivate the player to replay the game with different strategies and techniques, and thus a player can stay labeled as a player.

Important Takeaways: There are five key factors that determine how well-designed a game is, and these are a game’s difficulty, its apparent complexity, its quality of depth, its ability to provide true engagement, and its state of balance. Difficulty can stop a player from ever starting to play or cause a player to quit after getting bored, so it should always be tuned to be appropriate to the genre of the game. Apparent complexity can drive away new players if it is too high, as a game that looks hard to play will be avoided by casual players. The game should look easy enough for casual players but actually have a great deal of depth for the hardcore players, and this is known as streamlined design. A game’s quality of depth is determined by how many interesting decisions the player can make while achieving the game’s goals. Many consider streamlined design to be the key to making a good game, but others consider a game’s ability to engage the player to be even more important.

This refers to the ability of a game to immerse the player, and this is closely related to a game’s “stickiness,” how long a player can play for a single session. There is even another group that considers a game’s balance to be the most important factor in determining that a game is well-designed; after all, either extreme of difficulty can cause players to quit the game. Just make sure to tune the difficulty down early in the game as a new player is obviously unskilled at the game. You can account for this by having a proper difficulty curve that once topped out will hopefully encourage the player to play through the game with different methods, but this will only happen if the game also has sufficient depth.

GameDev Protips: How To Design A Truly Compelling Roguelike Game

I’ve designed and developed quite a few roguelike-inspired games over the past few years and have learned quite a lot during the whole process, most notably SanctuaryRPG and Overture — and so I thought I’d write this article about design principles that I chose during development, and my thought process behind my decisions.

So, roguelikes are often marked by their permadeath, meaning that failure results in starting over completely, a mild degree of randomness, and an intense focus on player skill. The combination of these factors makes each session unique due to varied player skill and varied levels themselves. In general terms, roguelikes’ gameplay is about minimizing mistakes and playing with the hand you’re given. These features don’t describe the actual mechanics of a game however. You might have a turn-based strategy game (You could loosely define X-Com as a roguelike if you play on ironman mode), a top down shooter (notably the Binding of Isaac and Enter the Gungeon), a platformer (Spelunky), or something else entirely (Crypt of the NecroDancer is extremely unique among roguelikes for its rhythm-based gameplay).

Now that you know what makes up the roguelike, how do you go about making one? Obviously the first step is choosing what type of game you want to make, but after that, what are some rules to follow to make your game fit the roguelike mold? Firstly, the quality of a run should not feel random. Just because you have randomness in your game doesn’t mean you should make player skill a secondary factor. The player’s mistakes should always have a more significant impact than their luck, or if that isn’t possible or is hard to eliminate, luck should lean towards the good side as bad luck makes for a bad experience in most circumstances.

Similarly, an experienced player should be able to any level without taking damage or making mistakes in general. Obviously this should be difficult to achieve but if any level can be beaten by a player who plays perfect that means luck has been minimized as a factor and the player can’t blame the game for their failure. This can lead to a motivation to improve since it is obvious that the only weak link is their skill. This also is a factor in why roguelikes often have small health numbers, as the number feels much more controlled rather than just being one of the hundreds they’re bound to lose.

Players should be capable of starting a new run quickly. Part of the reason many roguelikes are successful is because you can near-instantly restart after failure. Menus getting in the way can antagonize an already frustrated player if they failed and annoy one that didn’t, potentially ending the session. This contributes to the “one more game” mentality that is a strong factor in making the game addictive.

Lastly, and most importantly, the player should not feel like their sessions are futile. The player needs to feel as if they’re making some kind of progress in order to incite playing the game for longer. The most common way to fix this is having unlockables that are unlocked when certain conditions are met, giving the player something the strive for. The system doesn’t have to be that complex though. It could be as simple as having a well-tuned difficulty curve that ensures the player can have a tangible feeling of skill improvement as they get further into the game each time they try. A roguelike with no purpose will not be played. You can see this in many Youtubers as they near the end of a game’s lifespan — they’ll try out weird challenge runs that they impose upon themselves in order to bring back that sense of skill progression as they succeed in the most unlikely of handicapped scenarios.

Important Takeaways: The roguelike is an extremely prominent genre today, so it always helps to know how to create your own. Roguelikes are known to have permadeath, have some degree of randomness, and heavily reward player skill. In general, roguelikes are all about dealing players their hand and having them minimize their mistakes while playing with that hand. In the process of making a roguelike, there are a few priority rules to follow.

The quality of a run should be based off the player’s skill more so than luck. Next, levels should always be beatable without damage (or imperfection in general) assuming the player plays perfectly in order to ensure that luck is a non factor in success. For making the game more appealing as a whole, runs should be easily restarted after failure or success in order to promote the “one more game” mentality, and there should be some tangible form of progression be it through unlockables or seeing gradual increases in the distance a player gets before finally losing over a series of runs.

GameDev Protips: How To Get Started Making Glorious Indie Games

Today, video game development is much more accessible than it’s ever been before. There is an immense amount of guides floating around on the web to help you improve and explore your specific interests in the topic. Despite this, however, new video game developers dread starting in the first place as the competition is fierce and they’re afraid that their game won’t stand out among the juggernauts. Luckily, you can utilize what others have learned to better your experience and push aside this mentality. There’s definitely enough room at the top for newcomers as well.

First off, at least when you’re starting, keep your projects small. It’s common for newer developers to think they can build the next amazing game in the genre. Obviously these are great dreams to shoot for but there’s absolutely no way you can do this single-handedly in a reasonable amount of time. Even Stardew Valley, a game known for its development team of one man and the quality that came from him alone, took more than 4 years to develop with him working about 10 hours a day. This amount of dedication to your work and the subsequent potential burnout can cause you to sloppily implement features towards the later half of the development cycle or give up halfway through the process. If you want to actually finish your first project and be satisfied with the result, keep it small.

Focus on a single game mechanic if you’re aiming to finish that project in a reasonable amount of time. If you’re making a platformer, all you need is jumping, falling, damage mechanics, and movement to make it happen. You don’t have to add a bunch of extensive features to the game like leveling up to make it a game. After all, your focus is to actually finish your project, so don’t bite off more than you can chew!

Secondly, leverage your video game skills. It’s no secret that creating video games requires very diverse skill sets. Maybe you’re a social person with strong communication, or maybe you’re experienced with more technical fields like programming or the graphical design. Even if no skills particularly shine in you, the most important thing is to know what you know and know what you don’t know. None of us are perfect so naturally some skills will be more developed than others. Choose a game design that suits those developed skills and slowly work up the skills that are harder for you. When you do this, you’ll produce a much better game and you’ll likely enjoy making it more too!

In a similar vein, embrace your failures. Your first creation will probably not be a hit, and neither will your next few either. Despite this, the best way to learn what you’re doing wrong is through making these mistakes. You can’t make a hit with no prior experience or knowledge; nobody can. Notch might be known for Minecraft but he had been making games for nearly his entire life before that so it’s no surprise that he knew how to make a good one. It can be hard to take in criticism from outsiders without being personally hurt by what they say, but it’s crucial to try and separate your personal involvement with how it is received. This isn’t to say that you shouldn’t put your heart into it, but realize that the world is seeing your creation at face value and disregarding any amount of personal sacrifice put into the game, eliminating bias and showing you what you’re truly doing right or wrong.

Next, make sure you’re actually choosing the right tools. When I first started programming video games, I was set on building everything myself — this wasn’t wise; in video game development, you don’t need to reinvent the wheel because it hasn’t been reinvented for a reason. Use an engine. Both GameMaker: Studio and Unity are engines that I have learned to love; they’re great for 2D and 3D games respectively, and it’s relatively easy to figure out for a newcomer with the number of guides for it.

Most importantly, have fun with your development. I just stated this but again, this is the most important aspect of video game development. Video game development isn’t something you’ll go into just to make a few quick dollars; it’s something to have fun with, exploring your creative mind and sharpening the skills of what you love doing. You need to love game programming to be able to put up with all of the bugs, errors, and goofy outcomes of what you code. You need to love your mistakes since it’s a step on the way to success. If you’re not enjoying the creation of your game you’ll just end up making some generic shovelware since these problems often plague those types of games and they never get fixed. Every day you develop your skills will grow, and eventually, as long as you keep going, you’ll make a great video game.

Important Takeaways: In today’s world video game development is more accessible than it’s ever been due to all of the resources available to a developer. Despite this, new developers often worry about making their games topple juggernauts which simply shouldn’t be a concern this early in their career. A new developer should keep their project small in order to ensure that they actually finish it. In addition, their game design should also utilize the skills that they’re strong in so that the game is both better and more fun to produce. With time they can improve the skills that they’re weak in but for a first project you should always use your strong cards.

In a similar vein, a new developer should embrace any failures in their games as it shows them what they’re doing wrong and lets them make a better game in the future. They should choose the right tools for development, and by “right” I don’t mean something they make themselves, as there are plenty of viable game development tools already usable that are likely better than anything the new developer would make. Finally, and most importantly, the development should always be in the name of fun, as a game that’s made in a state of boring will retain that same feeling for players playing it. Even if a new developer’s first game isn’t a hit, as long as they keep going and keep improving as a result they’ll eventually make one.

GameDev Protips: How To Effectively Manage Your Game Development Team

The old adage, “If you want to go fast, go alone. If you want to go far, go together” couldn’t be more true in the world of indie game development. The most important part of developing a game is having a team to help you with development. Now I know that there are a lot of you solo developers out there, but let’s get realistic — there’ll be a point in time where you’ll have to get outside assistance with at least one or more aspects of the development and production pipeline. Now, how do you optimize this? Well, In order to get a team moving, everyone in the proposed team should be both capable of the work and also willing to work. A person’s performance could be said to be their ability multiplied by their motivation. If a person just isn’t capable, no matter how much they want to work the work will be shoddy, and if a person doesn’t want to work, it doesn’t matter how good they are when they’re not giving their all. Both of these attributes must be high for good performance.

If a person needs to become more capable, the only real way to do this is to give them training. Someone might be naturally skilled or not at something, but the training is what will solidify a skilled person or mold one that isn’t such. It really is this simple; there is no shortcut to becoming better besides training through practice and advice from others. Intrinsic motivators will form the baseline motivation, and that’ll come from how much someone enjoys the particular project, the coworkers around and if they’re connected or just “another person in the crowd,” or life factors such as sleep. Motivation is something that is much more easily fixed if it is lacking. The most obvious solution is having incentives to work such as extra pay or vacation days. Job satisfaction in general is a huge influence towards someone’s morale, as if the job is boring or not worth the effort slacking off won’t be as big of a deal and there won’t be anything to push that feeling away.

When someone’s satisfaction with their job and their motivation is high, team members are likely to be more consistent and also committed to making the product great. On the flip side, when either of these drop the turnover rate becomes higher, employees be absent more often, and they won’t give their best and therefore performance will be low. In all cases, low satisfaction will lead to low performance. Unfortunately, however, high satisfaction doesn’t necessarily mean high performance either. Someone may enjoy the job but that doesn’t mean that they’re doing the job well. Performance can come from satisfaction but it’s not directly correlated, just a catalyst of sorts.

Important Takeaways: Performance (and the overall quality of your indie game) is a result of both motivation and ability multiplied. Want a phenomenal game development team? Find motivated and skilled people, and keep them motivated. This includes yourself. Each member’s performance can be measured by their actual ability to work multiplied by their desire to work. If either lacks, performance will take a hit; if you enjoy the work but are terrible at it, you obviously won’t get much done, or if you are great at the work but don’t feel like doing it, not much will get done there either. A person’s baseline ability to work is determined by their natural aptitude and any previous experience with the particular job in question. To make someone more capable to work, they need to be trained; there’s no shortcut to making someone great quickly.

For motivation, the baseline is determined by the work environment, the project itself, coworkers, and life factors such as sleep or family relations. Improving motivation is as simple as giving incentives to work such as performance-based rewards. When teammates are satisfied with their job and willing to work, they’re more likely to stay for the long haul and commit to finishing the project, but when the opposite is true there’s a high turnover rate, absentee rate, and lower performance as a whole. It is guaranteed that low satisfaction will lead to lower performance, but the flip side isn’t necessarily true; just because someone enjoys the job doesn’t necessarily mean that they’re good at it. While satisfaction can contribute to performance, they’re not directly correlated.