Capacity planning for game studios: avoid crunch with resource planning
For producers, leads and studio heads who want to see overload before it turns into crunch. This guide explains how capacity planning works in game production, then walks through the Gameheim Capacity Planning grid, the team calendar, time off and who can see what.
Why game studios end up in crunch, and how capacity planning helps
Crunch rarely starts with a bad decision. It starts with a plan that nobody checked against the hours people actually have. A milestone date is agreed, tasks are added, estimates grow, someone goes on holiday, and six weeks later the team discovers the plan needed twice the time that was ever available.
Capacity planning is the habit of comparing two numbers, week by week and person by person:
- Allocated hours: how much planned work falls on this person in this week.
- Capacity: how many hours this person can really work that week, after days off.
When allocation stays well under capacity, there is room for the unexpected: bug fixing, reviews, meetings, a build that breaks. When it climbs past capacity, the plan is already asking for overtime. Seeing that early is the difference between moving a task and asking people to stay late.
What makes resource planning in game development different
- Work is split by discipline. A studio can be overloaded in animation and idle in audio at the same time, so a single "team total" hides the problem.
- Outsourcing is normal. Vendors deliver art, audio or QA with a contracted weekly capacity that has to sit in the same plan as the in-house team.
- Milestones are fixed dates. The useful question is not "is the team busy" but "can the people on this milestone finish its remaining work before the target date".
- Time off is data. A vacation that lives only in someone's head or a separate tool is a hole in the plan.
How Gameheim plans capacity and prevents overload
The Capacity Planning page shows a grid: one row per project member and per vendor, one column per week. Each cell compares the hours allocated to that person in that week with their capacity, and colours the result.
Allocation comes from your tasks
You do not type the plan twice. Any task that is not Done and has an Estimate (hours), a Start date, a Due date and an assignee (a person or a vendor) is spread across the weeks between today, or its start date if later, and its due date. Only the remaining work counts: a 40-hour task at 50% progress contributes 20 hours. A task whose due date has passed lands on the current week. Tasks that have only part of this information are counted as unplannable tasks in a badge, so you know what the grid is missing.
On top of tasks, you can add Manual blocks for work that is not a task: meetings, code review, design time, standups, planning. They take a number of hours per week, once or every week until a date.
Capacity comes from profiles and the calendar
Capacity is hours per day times working days. Without any setup Gameheim assumes 8 hours a day, Monday to Friday. An Organization default capacity profile changes that for everyone, and a per-person profile (for a part-time contract, for example) overrides it from an Effective from date. Vacations entered in the team Calendar are subtracted automatically: each working day of vacation removes that day's hours from the week.
Four colours that answer one question
| Colour band | Meaning |
|---|---|
| Under-utilized | Less than 70% of capacity is allocated |
| At capacity | Between 70% and 100% |
| Overloaded | More than 100%: the plan already needs overtime |
| OOO / no capacity | The person has no working hours that week, for example a full week of vacation |
Milestones checked against real availability
The Milestone roll-up lists every open milestone that has a target date. For each one it compares the hours still required by its tasks with the hours available from the people and vendors assigned to them before the target. If some linked tasks have no estimate, it says so, because the required figure then understates the real work. Milestones come from the production pipeline.
Baselines: compare the plan with the original plan
Before a milestone lock, click Lock as baseline to freeze the current plan. Later, switch the view from Live to Baseline or Diff to see how allocation has moved since then, shown as hours above or below the baseline for each cell.
Real activity next to the plan
For Perforce projects, clicking a cell opens a panel that also shows Real Activity (Perforce): the person's submits that week, active and stale locks today, and their last submit. It is a quick way to notice someone who is planned at full capacity but holding stale locks and not submitting.
How to plan team capacity in Gameheim
- Capacity Planning must be included in your organization's plan. See pricing.
- The capacity planning read permission to see the grid, and write to add manual blocks, lock baselines and set milestone target dates. Leads and Admins have every permission; the default member role does not include capacity planning, so add it to a role under Roles & Permissions.
- Tasks with an estimate, start date, due date and assignee. See task tracking for game development.
- A Discipline on each person (set in User Management), so the grid can group and scope by discipline.
Open Capacity Planning
In the sidebar, under Management, click Capacity Planning. Choose how many Weeks to show (8, 12 or 16; 8 by default) and move through time with the previous and next range buttons or jump to the current week.
Set working hours with capacity profiles
Click Manage capacity profiles, then New profile. Pick the Target subject (a person, or the Organization default), set Hours per day, tick the Working days, and set Effective from and, optionally, Effective to. Click Add profile.
Add vendors for outsourced work
Click Manage vendors, then New vendor. Enter the Name, the Weekly capacity (h), the Discipline and any Notes, and keep Active ticked. Tasks can now be given to the vendor with Or assign to vendor, and the vendor gets its own row in the grid.
Make tasks plannable
If the header shows a badge such as 3 unplannable tasks, open those tasks and fill in the missing estimate, start date or due date.
Record vacations in the Calendar
Open Calendar in the sidebar and click + Add vacation. Vacations are all-day events. Once saved, they appear as out-of-office time in Capacity Planning and reduce that person's capacity for the week.
Read the grid and open a cell
Filter by Milestone or Discipline, and use Group by Discipline or Team to see one block per discipline or per team, with vendors at the bottom. A person in two teams appears under both, with the same workload. Click a cell to see Allocated, Capacity, Utilization, the Task assignments behind it, Manual blocks and Out of office.
Add manual blocks for non-task work
In the cell panel, click Add block. Choose a Category (Meeting, Code review, Design, Standup, Planning or Other), the Hours / week (0 to 168), and a Recurrence: One-off (this week only) or Weekly with a Repeat until date.
Check milestones and lock a baseline
In the Milestone roll-up, use Edit target date to give each milestone a date, then compare required and available hours. When the plan is agreed, click Lock as baseline, add a Label (optional) such as "Pre-Alpha lock", and click Lock baseline.
Who can see and change capacity plans
Leads and Admins see the whole plan. Members and Viewers who hold the read permission see only the people and vendors of their own discipline. A vendor with no discipline is visible only to people who see all disciplines. Grant all_disciplines to a role to lift the restriction; it widens what a person sees, and their other permissions still decide what they can change.
The checkboxes are in Roles & Permissions, in the Capacity Planning group:
| Permission | Allows |
|---|---|
| read | See the grid, baselines and the milestone roll-up |
| write | Add and edit manual blocks, lock baselines, set milestone target dates |
| manage | Delete baselines |
| vendors_manage | Create, edit and delete vendors, and read their notes |
| profiles_manage | Create, edit and delete capacity profiles |
| all_disciplines | See and plan every discipline, vendors included |
Team calendar and time off: who sees what
The Calendar shows Month, Week, Day and Agenda views, and can be filtered to All events, My events, Organization-wide or a single project. Event types are Vacation, Meeting, Milestone, Deadline, Offsite and Other.
| Event | Who sees it |
|---|---|
| Vacation | You, the people who share at least one project with you, and the organization's Leads and Admins. Everyone also sees the vacations of Leads and Admins. |
| Visibility Private | Only the author |
| Visibility Project | Members of that project, plus Leads and Admins |
| Visibility Organization | Everyone in the organization |
- Creating organization-wide events needs the calendar manage permission. Leads and Admins have it.
- You can always edit your own events. Editing someone else's needs calendar edit_others.
- A vacation can last up to 365 days; other events up to 90 days.
- To change an event's type, visibility or project, delete it and create it again.
Troubleshooting capacity planning
- A person's row is empty. Their tasks are missing an estimate, a start date, a due date or the assignee, or the tasks are already Done.
- I only see a few rows. You are a Member or Viewer without all_disciplines, so you see your own discipline only. If you have no discipline set, you see no rows.
- A vendor is missing. The vendor has no Discipline and you do not see all disciplines, or it belongs to a different discipline.
- A vacation does not reduce capacity. Check that it was created with + Add vacation in the Calendar by the person who is away, and that it covers working days in their profile.
- The milestone roll-up is empty. It lists only open milestones that have a target date. Set one with Edit target date.
Frequently asked questions
What is capacity planning in game development?
Capacity planning compares the work planned for each person with the hours they can actually work, week by week. In game development it is usually done per discipline, because art, design, programming, audio and QA fill up at different times, and it includes outsourcing vendors and time off. The goal is to see overload weeks before it happens, while there is still time to move work.
How can game studios avoid crunch?
Crunch is easier to prevent than to fix. Estimate the tasks that matter, record time off, and check allocation against capacity every week rather than at milestone reviews. Keep a margin: a team planned at 100% has no room for bugs, reviews or broken builds. When a person or discipline is overloaded, move tasks, add a vendor or move the date before the overtime starts.
What utilization rate should a game team plan for?
There is no universal number, but planning everyone at 100% leaves no room for the unplanned work every game team has. Gameheim marks a week as Under-utilized below 70% of capacity, At capacity between 70% and 100%, and Overloaded above 100%. Many teams aim to keep most weeks inside the middle band.
Do vacations reduce capacity automatically in Gameheim?
Yes. A vacation added in the Gameheim Calendar with + Add vacation is all-day, and every working day it covers removes that day's hours from the person's capacity for the week. The cell panel lists the out-of-office period with a link back to the Calendar. Vacations are visible to people who share a project with the person, and to Leads and Admins.
Can team members see each other's workload?
It depends on their role. Leads and Admins see the whole capacity plan. Members and Viewers with read access see only the people and vendors of their own discipline, unless their role includes the all_disciplines permission. The default member role does not include capacity planning at all, so a Lead decides who gets access.
