Producing a Video Game

Setup a Version Control System (VCS)

Benefits of Using a Version Control System

  • Lets you backup your work and keep a history of changes.
  • Allows multiple developers to collaborate on the same project.
  • Version Control Systems, such as Git, Plastic, and Perforce, are widely used among hobbyists, indie developers, and industry professionals.

How Version Control Systems Work

  • A master copy of the project is hosted on a server. Other users copy it to their local machines, make changes, and commit changes back to the master copy.
  • When a user pushes changes to the master repository, other users can pull those changes to their local machines.
  • Users can also make branches of the project to isolate development, then merge the changes into the master branch.

Install Git and Use a Git Hosting Platform

  1. Install Git to your local machine.
  2. Sign Up for Git Hosting Platform.
  3. Create a New Repository.
  4. Setup Git user on local machine.
  5. Within your project folder, initialize a local Git repository.
  6. Create a .gitignore file and configure it for your project.
  7. Add and Commit changes to your local repository.
  8. Push to changes to Master Repository on the Git Hosting Platform.
  9. Learn branching best practices. Use branches to isolate feature or user development. Merge branch changes back into master or release branch.

Git Logo

Version Control Repo Hosts

Github Logo Bitbucket Logo Gitlab Logo

Git GUI Clients

Github Desktop Logo Sourcetree Logo Gitkraken Logo

  • Git GUIs also included in IDEs and Text Editors, such as Visual Studio and Visual Studio Code.

Other Version Control Systems

Plastic SCM

PlsticSCM Logo

  • Easier branch management than Git.
  • Includes robust GUI Client.
  • Additional features for handling art assets, and to make it easier for artists to use version control.
  • Free Cloud Hosting for Up to 3 Users. Free Trials and Subscriptions available for larger teams.

Perforce Helix Core

Azure Logo

  • AAA Games Industry standard for Version Control.
  • Excellent at handing large codebases and high quality art assets.
  • Includes robust GUI Client.
  • Free for up to 5 Users. Larger Teams require a license.

Perforce Hosting

Azure Logo Assembla Logo

  • Free Trials and Subscriptions available for Cloud Hosting.

Setup Task Management

Benefits of Task Managements

  • Encourages daily, weekly, and monthly progress.
  • Helps breakdown a game into managable chunks of development.
  • Setting Deadlines makes you and team members accountable.

Pick a Task Management Process that Works for You

For Individuals and Small Teams

  • To Do Lists
  • Kanban Boards

For Medium to Large Teams

  • Agile Task Management Web Applications
    • Allows teams to plan out a production schedule, organize development, track progress, and report issues.
  • Producers to manage the production schedule

Task Managment Recommendations

Physical Medium

  • Lists
  • Sticky Notes
  • Whiteboard

TODO Lists Apps

Todoist Logo TickTick Logo To Do Logo

Tasking Management

Trello Logo Notion Logo Clickup Logo

Agile Production

Jira Logo Azure Devops Logo Hansoft Logo

Set Production Milestones

  • Milestones are production goals that mark a significant accomplishment in development, typically completion of features and/or content.
  • Breakdown your games production schedule into Milestones
  • Set deadlines to complete each Milestone. Typically set to every 1 or 2 months.

Minor Production Milestones

  • Implementation of a Feature, or collection of Features.

Major Production Milestones

Proof of Concept (Prototype)

  • Built through rapid prototyping to validate the game's design.
  • Contains the core game mechanics and game loop.
  • It's fun on gameplay alone.
  • Majority of the visual and audio assets are placeholder.

Vertical Slice (Pre-Alpha)

  • A Demo that showcases the core gameplay experience.
  • Assets present in the demo are mostly finalized.
  • Useful for Pitching to Investors.

Code Complete (Alpha)

  • All of the programming that makes up the game has been completed and fully implemented.
  • Programmers will pivot to fixing bugs and implementing game content.

Content Complete (Beta)

  • All the art and audio assets have been created and implemented into the game.
  • Artists will fix or polish any issues with assets that exist in the game.
  • Programmers will focus on fixing bugs and polishing game content.

Gold Master / Minimum Viable Product (Final)

  • A finished product that contains the minimum amount of content that was planned to be released to market.
  • All features and content are complete and all critical bugs have been fixed.

Post-Launch Updates / Downloadable Content (Sustainment)

  • Expansions, Content Updates, Hotfixes, Patches,
  • Patches typically include bug fixes and balance changes.
  • Content updates and Expansions, typically include new levels, characters, and gameplay experiences.

Produce your Game

Make a Task Backlog

  • Starting with the first Milestone, list out all the tasks required to complete the Milestone.
  • Note if a starting a task is dependent on completion of a previous task/s.

Move Tasks to the Sprint Backlog and Set a Sprint Deadline

  • Take some tasks from the Task Backlog (typically 1 to 5 per person), and place them in your Sprint Backlog.
  • Set a Sprint Deadline. Typically set to every 1 to 2 weeks.

Develop Your Game

  • Pick one of the tasks in your Sprint Backlog to Actively work on.
  • Once you complete it, check it off and grab another task from the Sprint Backlog.
  • Review work and verified it's been delivered.

Build and Playtest the Game

  • Build the Game. Log any Build Issues in the Bugs Backlog.
  • Playtest the Game. Log any Bugs or Issues in the Bugs Backlog. Note any User Feedback.

Do a Sprint Review

  • Review Production.
  • Make Adjustments to Schedule and Backlogs.
  • Review Bugs and Feedback.
  • Move any Critical Bugs from the Bugs Backlog to your Sprint Backlog.

Move to the Next Sprint with Bugs Backlog

  • Repeat the Task Backlog process for the next Milestone.
  • Create a new Sprint Backlog with a new task list.
    • If there are any critical or game breaking bugs, add them to the Sprint Backlog.
    • Edit, create, or delete tasks based on changes in Game Design.
    • Give yourself more or less task items depending on results from last sprint.

Move to the Next Milestone

  • Repeat the Task Backlog process for the next Milestone.

Rinse and Repeat

  • And you will eventually have a game.

Avoid Production Pitfalls

Don't Waste Time Perfecting your Task Backlog.

  • Focus your efforts on making a polished game.

Don't Waste Time Polishing Features Too Early

  • Build a Good Game First. Polish a Game Second

Don't Waste Time Polishing One Feature.

  • You have an entire game to polish.

Fail Fast.

  • The sooner you fail, the sooner you can learn from your mistakes, and the sooner you can achieve Success.

Get others to Playtest your game.

  • They will tell you the truth about your game.

Design, Build, Play, Iterate. Find the Fun

Expect the Design to change.

  • Feature that looks good on paper may turn out to be a horrible gameplay experience.
  • Change existing designs to improve them, or implement alternatvie designs.
  • If the design isn't fun or doesn't server a strong purpose, remove it.

Listen to Player Feedback.

  • Along with criticism, players will often suggest improvements or changes to existing design.
  • Carefully evaluate what they say and determine if their concerns are valid. If they are, make the appropriate design changes.

Bugs and Glitches can become Features

  • Bugs can sometimes introduce unexpected elements of fun.

Perform a Post Mortem

Take the time to review your work and learn from it.

Ask questions such as:

  • Did you finish you game? Why or Why not?
  • Does the game that was created match the original creative vision?
  • Are players satisfied with the results?
  • How was the game received by the audience?
  • Is the team satisfied with the results?
  • Did the team meet the original production schedule?
  • Did the team have to Crunch?
  • Was production within budget?
  • What parts of the development process worked well? What mistakes were made along the way that could've been avoided?
  • What processes could be changed or improved?
  • Is there any work that was completed that can be reused for future projects?
  • Does the team feel like they can continue working together on future projects?

Take what you learned and apply it to Future Projects.

Sources

Agile 101 - Agile Alliance What is Scrum? - Scrum.org

Resources

Full list of Version Control Systems, Hosts, and Tools

Full List of Task Management Software