You’re thinking about your next project. Everything seems great, and you’re just about to jump in with all of the passion, excitement, and dedication to this project you think is going to be amazing. At this point, if you’re lucky, you’ll start thinking about everything you need to do before you make the project, and thoughts like these might start popping up in your head: “So I’m going to need to generate over 50,000 items and optimize it? Wait, I need a master server? How can I even manage creating all the assets?”
If you’re like me, you’ve experienced starting a project before you’re ready on multiple occasions. There are just so many factors in the world that can cause us to re-evaluate what it is that we want to work on, and that can be dangerous. With so many possibilities out there, you might start thinking, “What if I integrate Facebook SDK, Unity Analytics, Unity Ads, Google Play Games, Everyplay, oh, and multiplayer, and how about that feature my friend suggested…”
You can probably guess everything wrong that’s going on here, but let’s inspect every aspect of what’s going on with this thinking, and how we can fix it. Personally, I notice that there is a lack of appropriate scope for the team size, the end product lacks clear definition, a timeline can’t be deduced, and therefore, this is an example of starting before you’re ready. I’d now like to cover all the things that you should do before you start your next game project.
1. Define Your Product
Before you work on a game, you want to make sure you know exactly what you want to make. I know it sounds a little ridiculous, but the fact is that we often can start a project, and only have a vague idea of what product we’re going to end up with. This is very dangerous behavior, as it can have you wasting days, weeks, or even months on a project you might have to scrap or repurpose all because nobody took the time to figure out what the purpose of the project was.
To define your product, you’ll want to take a moment, and let you brain run for a bit, and observe what it comes up with. Imagine playing the game that your brain has invented, and experience that excitement. Once you know what you’re passionate about in your next game, outline a few features that define it, and you’ll know what it’s based around. For example, when I created “Rebound,” I decided that I wanted to be bouncing a ball within bounds of a screen, defeating enemies, and grabbing power-ups, with the purpose of survival.
2. Scope Down to Your Resources
Scoping down is a huge factor when it comes to conceptualizing a project, because it’s about determining what you can get done within a certain time period. Before I get into this anymore, let me say that games like Grand Theft Auto, Skyrim, and Call of Duty are made by huge teams, additional outsourced assets, and driven by large companies. I don’t say this to belittle indie developers and teams, but I want to provide realism to this subject so that you can truly succeed.
You need to scope down your project to something that you can achieve within a realistic time period by knowing your resources and your team size. You’ll want to reflect on work you’ve already done to figure out how long it takes you to make a certain type of feature. For example, how long will it take you to set up player input controls? How long will it take for all the sprites to be completed? Questions like these can be very productive in figuring this out.
When you scope down your project, you’ll want to make sure this is still what you want to make. I suggest against creating very small games or clones just for the sake of getting a lot of players. To scope down and still make the game you want to, consider the main features of your game, and ensure they are highlighted and continue to be the purpose of the game.
3. Determine Required Assets
On the topic of time, you’ll want to determine all of the assets and content required to build your game. This is really easy if you’ve already decided everything you want in the game. For example, if we have 10 enemies in the game, 5 of which are lizards, 3 of which are ghosts, and 2 of which are zombies, it’s pretty clear what you’re going to need in terms of sprites. You can expand this into, for example, animations by outlining all of the actions the enemies may perform.
After you’ve determined everything you need, find out what you need to make. There are lots of free assets out there, and already written code that cover many of the features you may want to include. There are lots of free UI sprites that can help you get a prototype UI up in seconds, and your game will already start to look like what you’ve been imagining. Never fall into the trap of thinking it’s cheating, shameful, or useless to re-use assets, especially not for a prototype. You’ll only want to avoid re-using assets in a final product where the assets simply do not fit the art style or context, but that’s a topic for another discussion.
The Unity Asset Store is of course a very powerful tool for obtaining assets that you can use to prototype your project.
4. Create an MVP
Creating a Minimum Viable Product outline is my last step before starting any new game, web app, or other software. An MVP is an outline for the absolute minimum required to launch your game or application.
Within your MVP, I suggest including abstract details, such as the game description in two sentences or less, the kinds of characters or actors in your game, how your game plays through, and even more technical details like the classes and other data structures you’ll need, as well as their members, or functions and variables. I highly recommend making one of these before you begin your work, as it can get you started much faster than going off the top of your head.
When you make an MVP, don’t worry about whether or not the data will change in the implementation because it will. You’ll just want to include as much stuff as you can before you begin so that you can get an idea of how long you’re going to take, and the amount of work you’ll have to do.
It’s very basic, and I always have more stuff to work on than just what’s in the MVP, but I share this to provide some structure and visual aid for understanding an MVP.
5. Get Started
So you’ve outlined everything, you know vaguely how long your project is going to take, and you’re feeling ready to start pumping out some work. At this point, you’ll want to get through everything in your MVP as quickly as possible so that you can discover any changes as soon as possible. Once you find these changes, make sure you’re open and ready to address them, especially if they will end up lengthening your timeline. Make sure to grab any pre-made assets you can use, and reuse old code and other files. Beyond that, you can continue your work as you normally would. Good Luck!