Optimizing Development Workflows for Indie Game Developers
At our indie studio, we have a team of 54 developers, making us a sizable indie studio with a focus on quality and efficiency. Our workflow is designed to strike a balance between speed and sustainability, ensuring that we can deliver games within a reasonable timeframe without compromising on our vision.
Understanding the Meta Variables of Development Cycles
In the game development world, there are three key variables to consider when planning a project: Duration, Capacity, and Scope. While many indie developers might complete a game in a matter of weeks or months, and AAA teams can take 3-5 years, we aim for a sweet spot of 1-2 years per game. Our approach is to optimize our capacity, ensuring that we run our development engine just hard enough to go fast but not so hard as to strain or wear out the parts.
Two Major Phases of Our Development Workflow
Preproduction
During the preproduction phase, which roughly covers the first half of the development cycle, our primary goal is to solve problems and find the fun. We employ a capacity-based SCRUM process, where user stories from the product owner guide our development rather than specific tasks. We have 3-week sprints, each starting with a planning day and ending with a sprint review. Daily stand-up meetings are a crucial part of our routine, as they help us stay on track and make continuous adjustments as needed.
To keep tasks manageable, we ensure that no task exceeds a two-day maximum. We monitor our burn-down chart daily to ensure that we are making progress. By looking at the game frequently, we stay updated with the latest developments and find ways to integrate new features or address any issues.
Vertical Sliced Production
As we move into the production phase, our focus shifts towards completing the game. For this, we switch to a version of the waterfall project management called simply triage. This phase is critical as it involves creating a detailed project plan based on the assets needed for the game. For instance, we have a weapon pipeline with 68 steps and a character creation pipeline with 55 steps. Each step is broken down into shorter tasks, and we allocate specific time estimates for each task, which helps in creating a realistic timeline for completion.
Our daily meetings during this phase shift from scrum stand-ups to literal triage. We analyze the remaining days of work for each team member compared to the number of remaining working days in the sprint. If we see a mismatch, such as an individual having more work than time available, we take steps to resolve the issue. This could involve down-scoping a task, moving a task to a future sprint, or shifting tasks to a different developer.
Managing Remote and Outsourced Team Members
While we have a large in-house team, we also collaborate with remote developers from various parts of the world. We ensure that these remote members are integrated seamlessly into our team by using the same project management software (Jira), communication tools (Skype), and version control systems. This transparency and real-time updates help us maintain a cohesive workflow, even when working with team members who are not in the same physical location.
We also use a combination of collaborative tools such as Google Docs, Gmail, Dropbox, and FTP to ensure that our code and assets are securely stored and easily shared. These tools are essential for maintaining the integrity of our work and ensuring that all team members have access to the resources they need.
Conclusion
Despite our complexity, our development workflow is designed to be both efficient and sustainable. By focusing on capacity and employing a well-structured mix of agile and waterfall methodologies, we ensure that we can deliver high-quality games within a reasonable timeframe. If you're an indie game developer, consider adopting similar practices to streamline your development process and enhance your team's productivity.