Colossus, what we learned
We have developed numerous projects and faced a myriad of challenges. Today, we want to share what we've learned from creating our old RTS and how we're applying those lessons to the development of Colossus to avoid past mistakes. This post aims to aid other developers dealing with similar projects or challenges.
Step by Step
When developing a feature, we always aimed for perfection. We wanted every aspect to be finished in its final state. Emil, in particular, struggled with the notion of "this is fine for now, I'll improve it later." We had to learn that striving for perfection can be detrimental and that revising or reworking existing code is not bad.
Understand your key values
The first change we made was defining the game's feel, look, and playstyle. We compiled a list of all the requirements we wanted to meet. Moving forward, every decision will be guided by these key values.
Consistent planning
There are many tools available for planning your development workload. We chose GitHub's documentation features to stay as close to the code as possible. Even without GitHub Pro, you can use essential features like boards, user stories, and milestones.
The specific tool you use isn't as important as sticking to it. Once you develop the habit of creating issues whenever you have an idea before diving into the code, the process becomes much smoother.
Centralized Documentation
Expanding on the previous point, we needed a central repository for documentation—a place to store all our ideas and content. All our concepts and sketches are stored in GitHub Issues. We have a folder for documentation synchronized in Git where all the draw.io files are kept. Additionally, we commit to documenting most of our work by updating you via this page.