I have been working with Galatea Studios here in Tucson as we work on some exciting and unique projects. As we move forward with new projects Monty posed the question to me: “Can we define a general timeline and expectations for game development?” The end result is a rough ‘order of operations’ document defining terminology, timeline, and technology on how to approach game development.
Of course there is no silver bullet. It is hard to quantify some things, and one size does not fit all. This probably fits the size of a small to medium studio. This info is also skewed by my personal experiences in what I’ve seen work, and the pitfalls I’ve encountered. I hope this information sheds some light on process in game development. Enjoy!
Who does what on a project? (of course, not an exhaustive list)
Engineers – Writes software.
- Writes client software.
- Writes server software.
- Provides support via tools and documentation to the rest of the team.
- Provides specifications to art and design.
- Maintains functioning builds that always compile.
- Peer reviews code to maintain
Artists – Develops concept, UI and in-game art.
- Creating art to the specifications of the game.
- Checking in the art and testing that it displays in-game as expected.
QA Testers – Checks and makes sure that builds work as expected.
- Smokes important builds.
- Logs bugs.
- Verifies that bugs are fixed satisfactorily.
- Defines tests that make sure that all aspects of the game work before release.
Designers – Develops the mechanics and systems necessary for the game.
- Maintains a wiki of information that defines how the game should work.
- Defines new features, systems, powerups, units, etc.
- Creates flavor text and descriptions for Art.
- Plays the game a lot to ensure a good level of progression and flow.
- Ensures the game is balanced and does not suffer from loopholes or flaws in the mechanics.
- Uses tools provided by engineering and art from the artists to create content such as levels, units, and systems.
Producers – Keeps the pipeline full and SHIP IT
- Identifies blocked areas and does whatever necessary to unblock team members.
- Cracks the whip on team members to get things done.
- Maintains the schedule based on feedback from the team.
- Prioritizes all work so that all members are working on the most important stuff.
- Constantly communicates to the team the current workload so that everyone knows exactly what they should be doing.
- Communicates with stakeholders and translates their needs into something actionable by the team.
Core Game Loop
A core loop is the thing the player will be doing over and over in a game. This should be something that is fun and challenging, ultimately resulting in the user winning or losing the game. Players should experience ‘flow’ through the core game loops.
Core Game Loop Examples
- Playing a card in a card game.
- Stalking and killing an enemy in an FPS.
- Jumping on a platform in a platformer.
The core loop frequently involves improving the skill of the player. An example of this ‘skill loop’ is learning how to place your jump in a platformer, then learning how to place your jump when you are on ice.
A ‘meta’ loop ties together all the player’s interactions and provides a larger scope to the play. Without the meta there is little reason for the player to return and continue playing.
Meta Loop Examples
- Using dropped loot to upgrade your character.
- Crafting items found to collect new items.
- Progressing a story forward.
- Going for an even higher score.
A High Concept defines the context and narrative that the game takes place in.
High Concept Examples for a Sports Game
- Fantasy sports with lots of gore.
- Kids on a playground.
- Soldiers on break in Afghanistan.
- Kids playing in a slum in Brazil.
A pitch is a short explanation of a game idea.
- This can be with or without a high concept.
- Core Game Loop
- Win/Lose Scenarios
- Basic Descriptions of units.
- Potential for expansion.
You play a flock of birds that you fling across an infinitely long busy road. You avoid the ever more dangerous path of cars and increase your high score until you are hit. Cars move in left/right directions. The frequency and intensity of traffic increases as you progress. You have multiple types of birds at your disposal. Some birds can destroy certain types of traffic. Virtual currency is earned for each playthrough. Special birds can be bought between levels and utilized to increase your distance on your next run. Game could also be level-based instead of high-score based?
One of the more complicated aspects of game development can be getting content into the game. Frequently the content pipeline is ‘give it a to a developer and he can add it to the game’. Developing a better content pipeline is the best way to utilize a team and should always be a focus when developing features.
- Issue Tracker – Make sure you’ve got a methodology to define work granularly and assign it to team members. Options: Assemble/Trac/Unfuddle/Phabricator/Jira
- Build Server – Set up Jenkins/Team City/etc. to build nightly and keep your builds functional at all times.
- Version Control – Having some kind of version control that all team members is comfortable with is highly important.
- Wiki – A location for all parties to add information and look back at it later.
Phase 1: Preproduction
Preproduction is the phase where we experiment, try different things, and figure out ‘where is the fun’.
- Define Technologies
- What are we using for the client? Sometimes this is defined by the platform (example: html/js)
- Is there a server component? How complicated is it?
- What third party services might we want to use?
- Target Platforms?
- 2D? 3D?
- Pitch Ideas
- Core Game Loop – What are people going to do that is really fun?
- Meta Loop – What are people going to do to make them want to come back?
- End Goal – How is this going to make money or provide value to the stakeholders?
- Develop Prototypes
- Code it up in 1-2 days. Move on to the next one.
- You don’t need to code it! Paper prototyping can be significantly faster depending on the genre. Once you’ve iterated on paper a bit then code it.
- Use asset store assets and cubes. Don’t worry about art.
- Focus on the Core Game Loop, and any mechanics you can build around it.
- Decide on a High Concept
- Define a narrative that the player can immerse themselves in.
- What is the context of the narrative?
- Hero’s Journey
- Fallen Hero
- Style Guide – Image Search the style you are after.
- Build a portfolio of reference images.
- Create Concept Art
- Build out some rough concepts for:
- In-Game Art
- ‘Hero’ artwork.
Things to note:
- Avoid creating production artwork. Mock things up fast, use things from asset stores.
- Avoid writing big design docs. Think of a number of small pitches, then prototype the most promising. If you’ve written more than half a page its too long.
- Don’t focus on one idea because you are ‘sure’ it is great. An idea can sound great and flop in execution. Don’t get married to a concept. Prototype multiple ideas to be sure.
- Breadth over depth: Don’t spec out 100 enemies and 10 player classes. Chances are all that hard work is wasted because the final game won’t match the concept.
- The Xmas Tree of Death – Stay focused on a singular vision. Don’t compromise and ‘ornament’ the game with useless features to please stakeholders. It will just confuse the purpose of the game.
Focusing On The Fun
“Easy to pick up, hard to master.”
Use metaphors, narrative, and story to transport the player.
Don’t ‘fix’ mechanics by making them more complicated. This isn’t more fun, just more work.
More game ‘variants’ isn’t necessarily more fun, just more work.
What do we want to get out of Preproduction?
- A prototype that defines the core game loop.
- An immersive high concept that players will want to inhabit.
- A ‘style guide’ that shows examples of the high concept and art style we’re after.
- Concept art that shows the rough direction we’re going in.
Phase 2: Production
Getting to First Playable
Now that we’ve explored the design space and settled on a direction, it is time to get to First Playable as soon as possible. First Playable is where you’ve got something that actually feels like a game. This involves a full ‘slice’ of functionality of the Core Game Loop.
Scheduling is the most complicated aspect of Production. It will probably go something like this:
- Engineering is super busy developing the First Playable and are a major bottleneck on everyone else.
- Designers can get started with designing some systems, mechanics, etc. but are generally bottlenecked.
- Artists are bottlenecked on most in-game art and UI.
- QA has literally nothing to do.
- Production probably won’t have much to do until First Playable except crack the whip on Engineering.
Full Blown Production
Congrats! You’ve got your First Playable, time to enter Full Blown Production. Since you’ve got a general idea of how the game works, you can now have the Content Pipeline conversation. IE: how are non-developers going to produce content for the game? Developers can now add supporting content creation tools to their workload.
Production scheduling now looks like this:
- Engineers are adding features and tools to allow other team members to build content.
- Artists are adding artwork to the game directly.
- Designers are utilizing the tools made by engineering and incorporating artwork to create units, systems, levels, etc.
- QA might have a little to do.
- Production is juggling all these balls to get as much in as possible.
Important Engineering Initiatives
- Content Pipeline.
- Adding Features.
- Implement Sound.
- Implement the ability to mute sound. 🙂
- Get a build server building nightlies.
- Implement a basic localization system, do not sprinkle your code with strings.
- Develop some kind of architecture that fits your needs.
- Tools, tools, and more tools will keep your engineers from being bottlenecks.
Important Design Initiatives
- Defining specifications for art.
- Creating systems and units.
- Playing the game and improving balance and progression.
Important Art Initiatives
- Implementing in-game art.
- Mocking up UI concepts.
- Creating UIs in-game which can then be ‘made live’ by Engineers.
Important Production Initiatives
- Prioritizing features that will have the most important impact.
- Unblocking team members by getting the resources they need to get the job done.
- Maintaining the quality bar, and putting systems into place to make sure it stays up.
- Identifying inefficiencies in day-to-day work and eliminating them.
Phase 3: Post Production
Congrats! You’ve entered Post Production. How do you know you’ve entered Post Production? There are a few indicators:
- The game is feature complete but not bug free.
- Most tasks are polish tasks.
- The Artists and Designers are now the bottleneck, not the Engineers.
- QA has lots to do.
- It is getting harder to give Engineers something to do.
The team should keep working on the existing features and get it out the door as soon as possible. Avoid getting into ‘analysis paralysis’ or adding features you *think* your players want. If you ship you will know *exactly* what they want because they will not be quiet about it.
Phase 4: Live Ops
Congrats! You’ve squashed all your bugs! Or at least the P1s and let’s hope noone will notice the others. Time to ship! You are now supporting a Live Game. This is the point where:
- Hopefully you made a game people really enjoy and your players are telling you what they want.
- Fix all the bugs you didn’t catch (oh yes this will happen).
- Add new features you didn’t know you needed until you shipped.
- Improve your content creation tools to provide more content more faster.
If you’ve read this far, wow! I would be interested in your experience working in teams on games. Sound like mine? Completely different? Send me a tweet and let me know.