Simple Asteroids-like game, intended as a learning tool for game development basics in Unity.
This project will go through some basics of game development in Unity, like project organization, creating and using modular components, single responsibility principle, etc.
This is mostly oriented towards beginner and hobby developers working alone or in a small team, but some of it might be useful for more advanced developers or bigger teams as well.
With game development, there rarely is a single right or wrong way to do things. The solution heavily depends on the needs of the project and the developer team. This project covers some basic development conventions that I’ve found work for me and I hope some of it might be of use to someone else as well. But in the end, everyone needs to find out what works best for themselves, their project and their team in the given situation.
When starting out a new game project, it’s a good idea to figure out the goals of the project. And not just the goals of the game itself, but also the more personal goals of the developers. Often this goal is to create a finished game. But it might just as well be about prototyping an idea, learning new things, or just to have fun. There’s nothing wrong with having multiple goals at the same time, but the goals should be in some sort of a priority order. This is so that if (and when) there are conflicts, it is easy to decide what to prioritize.
Decide your goals in advance and be honest to yourself about what they are. If you are working with other developers, discuss about these goals before starting the development, to make sure they are aligned and agreed to by the whole team.
Consider documentation, especially when working with other team members. Having an easy way to check the specifics of a feature is so much faster and easier than having to ask around for the necessary details. Documentation will also help keeping the project’s vision consistent by always having a plan to reference, instead of relying on memory alone or making descisions on the fly. Onboarding new members to the team will also be much less complicated with comprehensive and easy to understand documentation.
Having documentation does not mean it cannot change. This is especially true with game development, which is often much more about experimenting and figuring out what what makes something fun instead of following a strict plan. Just remember to notify the other developers when something changes to ensure that everyone who it might concern is aware.
Working in a team
If you are working in a team, remember that the project is a team effort. The team as a whole has the potential to address many more aspects of development than a lone developer could. Enabling your team members to work at their full efficiency is just as important as focusing on your own tasks.
Look into agile project management methods like Scrum to help maintain the project’s velocity over time.