Indie games are a unique challenge to create. Some can be created easier than others and depend on your level of skill. In this post, I discuss how games are made in the indie scene. The post is about the process and motivation. Expect another post in the future about the more technical process.
Developing indie games can be the most fun and most frustrating experience you can undertake. Unlike major AAA Game studios, you will have the pressure of taking on many hats in getting the game to the finish line. You might be lucky and have a small team with you to help get the game done. But it is also likely that you are a solo developer working hard to get that beloved game in our head out to the world to experience. This post is to tell you that you can! Even if you are thinking about making your first-ever game as a hobby, I am here to tell you that you absolutely can make that game. It takes patience, determination, and continued perseverance, and eventually, you can have it completed by Writing down your idea, breaking it down into smaller pieces that can be completed in small milestones. And preventing that ever-persistent feature creep monster by sticking to a minimal viable product (MVP) you can ensure it can be achieved.
Learn about what you do not know. Send out your latest work to friends and other developers and players in the community and get feedback. You have to make sure the game is fun before adding extra features. Sometimes you are unable to do a fancy implementation or asset, and so you need to purchase assets or hire some help. Find ways to promote yourself and support other fantastic indie developers in the community. Keep reading below to have a better understanding of what I mean.
The Dream
Every game that has been made has come from a vision, a dream. Whether it was one person or a group of people that had an idea, it all starts with the goal. Maybe you and your friends sit around in a room discussing ideas of what would be fun to make. Perhaps you have had a traumatic experience and feel that you wanted to share that with the world in the style of a game. That is the best part of game development. It is just another way to get your voice heard, whether it is the next fantastic first-person shooter. Or a way to showcase a problem that is ongoing in the world. Then you create a lens that allows the world to see it from your perspective. Game Development is art. It is a platform for you, from either an individual or as a studio, can reach so many people.
The dream can be the easy part. The hard part is making that dream into paper, flowcharts, dialogue, and ensuring culture references are done in a manner that does not cause misunderstanding, and your message becomes confusing. You should create this game on paper and run it through your head as if it was completed. Answer as many questions about the game as you can. How does it start? What is the hook? What makes it fun? What are you trying to convey? How is the pacing? And many many more questions. Continually ask yourself if you would play this, and for how long? Show this to others and see how hyped they are. Do not get discouraged if some people do not like it. That is normal, but do see if there is an audience. You do not have the budget like a AAA studio, so you will have to post on Reddit, find a discord community, and have friends give honest feedback.
Break Down The Dream
Now that you have sanity, checked your dream. You have also started to break down some of it at least to know how it will be played and important generalized scenes. You will need to break down how the game works even further. Separating the entire feature sets down and identifying what the core mechanic is. Is there a particular jumping mechanic that helps you get to the next level? Is there a fast action skill-based mechanic that you have to teach your players? Find what the core mechanic is and ensure the rest of the game is built around it.
You will want several sessions to break down your dream. Every single feature or idea that you want to implement, you need to find a way to break them down into tasks you feel can be done with just some research and time coding on it. There should be no open-ended feature that is not clear. For instance, don’t just make a task that says “Portal Feature” that will not help you when you open your code editor or scene to get it accomplished. You will want the right balance where you don’t only spend your time planning. Have an idea for what you need, and only break down into the smallest possible parts for the pieces you plan to work on next. There is no reason to break down the ending of the game when you are still working on the beginning. But do have a rough malleable outline for those features you will be working on in the future.
Determine your Minimal Viable Product (MVP)
You might have the best game this world has ever seen. But if it takes you thirty years to make no one will ever be able to appreciate it. You need to know what is the smallest feature set that you would be happy with the release. While many more games have been in the early access stage for many years, it does not mean you should follow that trend. You can always add features after release, and their many people will appreciate the content updates and come back to the game or even pull their friends in to play with them.
The hardest part is knowing how much to break down. My advice is to take that break down and ask yourself, Can release this in a year? How about in six months? That should be your guide, think about how much you have broken down from your tasks above. Can you put a relative estimate of how long it would take to complete each feature by counting tasks up in the number of hours? Doing this helps check how long you are spending on an element. Do not rush and lower the game quality. Sometimes things get harder, and some things are more straightforward. Your goal should be to release the game as soon as possible, but it should also be as stable as it can be. No one likes a game that is buggy and crashes when it is released.
Create Small Achieveable Milestones
Take those tasks and have your MVP in mind. Then map out what are the significant milestones for getting the game done. Character gameplay, the different levels, dialogue, quest systems, etc. Mark those milestones down in some road map or task list. Determine the tasks to complete those entire milestones. As you complete those celebrate!
You should also schedule small-time cycles, like two weeks (if you want to go in an Agile format), and focus on just those tasks you need to get done. The game itself can feel too daunting, but maybe writing some camera controls. Some lightning effects, and improving the AI in a week is all you can do. Then do it! Then Celebrate completing those small tasks. In the end, developing a game is just the act of completing enough small tasks that generate a game.
Constant Feedback
After completing those task weeks, you should, if possible, show them off. Create posts on Reddit or show your friends what you have accomplished. Ask them how it looks or feels. Ask them what is missing and what they like. You want honest feedback about the experience. If what is not right needs to be changed and alters your original plan, that is perfectly acceptable. Remember, you are doing this not so that you can enjoy the game in the end but so that others can enjoy the game too.
Now learning how to take constructive criticism is a skill. If you show someone a feature you are working on, and you get a “That sucks” response, you should probably ignore it. What you want is a helpful response so that you can improve the experience for everyone. For instance, “The controls just feel to slow, and I get frustrated, just moving around.” This kind of response tells you they feel the experience needs to be a quicker pace, and maybe the camera is making the game not feel smooth. Also, if you do get a lot of negative feedback, be the bigger person, and do not entice them with an emotional response. A simple Thank you for the opinion is all that is needed. When trolls do not get the explosive answer they want, they generally disappear.
Buying Assets and Hiring Help Is Not Cheating
Something that other newer developers I have talked to in the past and I have had that moment where you believe if you did not create the asset yourself than you are cheating and not a real game developer. This belief can not be further from the truth. Purchasing a game asset or finding techniques online on how to get past a particularly frustrating feature is perfectly fine. Your players will not notice if you get that nice rock pack to make your environment look a little better. It only enhances your game and your player’s experience.
The same thing goes for hiring someone to get the game done quicker. You can only do so much by yourself, and enlisting the help of someone experienced can only help you to learn more about your craft and become a better developer in the field. Relying on others is just another skill that many of us introvert developers have to learn. It can only make you a more reliable person, and by learning this sooner, if you ever expand your studio, you can then have more and more people helping build the next best indie game.
Always Be Learning
I can not stress enough how important it is to keep learning. Learn that complicated A* path. Figure out how blender works. How will taxes work when the game is released. There are so many things that go into making and releasing a game. You will not be an expert overnight, and you will want to add learning to your tasks so that you can conquer making your game. Knowledge is just as crucial as writing the feature. This way, when you go to make your next game, you will then have only to learn something else that builds on the fundamentals you learned this time. All the best developers, artists, and audio engineers all continue to learn and improve their skills. You should join them and become the best you possible.
It is essential to learn and adapt to what you learn. What you should never do is outright copy and steal works from others. You can easily get put into a legal dilemma and even have a community against you if you just put the code in thinking no one will ever know. You should be inspired and adapt what you learn and set your style on it. I have often said that programming and game development is like giving a topic to a classroom. Each person can write their own story on the subject, but no two papers are the same. Writing code is the same way. Write the game your way. Let it stand on its own because of you.
Promoting Your Self
As you go through building the game, probably one of the hardest things to do is getting other people to play and rate what you have made. We have the barriers that prevent us from saying, “Check this out!” because we do not want to feel spammy or feel like we have the right to bother people to check out what we created. But the opposite is true, and you need to show off your hard work. Promote yourself on as many social platforms as you can. You are posting pictures and videos of gameplay. Do not barrage someone or a company’s DMs for a review. You can create a Press Kit, and many companies have emails that you can send it to for a chance to review. Even here on this site, there is a method to contact me about game reviews.
Many companies also have a queue, and your game might not be reviewed right away, so have patience. Create a community and post updates. If you use Itch.io, you can post development updates and builds that allow people to play the latest changes. Try to promote on Pinterest (Yes really), Post on Twitter links to the developer updates. Steam the game on Twitch or find a streamer to play the game, put it in alpha on Steam or epic and itch.io, join indie game discord Communities, post on Reddit, create a page on Facebook and even Quora. If you do not post about it, then you will never get people to find what you worked so hard to create.
Promote Others
It might seem counter-intuitive, but giving another indie developer a shout out will make them more likely to provide you with one when the time comes. It is about creating a community, and you might even do a collab project with each other in the future. Keep your options open and support the indie community. Building a community is about helping others and not just about helping you. By being a part of a community and supporting those in it, you only raise the quality of the person and studio you represent. Perception is critical.
Do not have any expectations after supporting someone. Supporting others is a great thing, but anyone expecting something in return is not being supportive. It is acting with entitlement. It is our job to ensure the perception of indie games and the community around it is incredible. Sometimes some rotten eggs can show up and ruin the impression, and it takes longer to be viewed favorably. It matters a lot because a decision to enable better access for indie developers on major consoles can change based on this perception. Do this for yourself and do this so we can be great together.
Have Fun! Get Past The Wall and Release
You will eventually hit a wall and want to quit because testing that features is just not what you want to do anymore. You want to work on that next project you have been doodling about outside of your development time. Game development starts fun and eventually has the feeling of the grind that you thought only existed in that corporate job. Every creative process has some grind.
The development experience has a lot of it. It is okay, take a break and come back to it. Ask for help, or even break down the problem further. So that you can get the gratification of completing the smaller pieces so that you know you are making progress. Do not scrap the project and start over. You will only reach that frustration point again and start over. Keep going! Ask for help, and take breaks.
Thank You!
Thank you for the fantastic experiences you have and will bring to this scene. It because of that, we should all play and share these indie games. Keep working hard on your project, and we can not wait to see it!
If you thought this post was helpful or someone could benefit from reading this, please share this post. I want to make sure more Indie Games are developed, so support your local Indie Developer on itch.io and give them a shout out on social media, it may be that your shout out keeps them going to release.