SlideShare a Scribd company logo
Version control in Game Dev

(or how to not lose everything to a power surge)
What is Version Control
• Wikipedia: “the management of changes to
  documents, computer programs, large web
  sites, and other collections of information.”
• Huh?.. In real people speak?
  – It’s a history of the changes to your work
  – Usually saved on a server somewhere
  – That allows you (or someone else) to get a copy of
    your work as it is/was at some point
Demo
Why should I bother?
•   Helps you track down where bugs came from
•   Lets you take risks
•   Makes it easier to work in a team
•   Backups (stuff happens!)
•   All the cool kids are doing it :P
Which Version Control system?
• Centralized = old school. Everything on the
  server, without access to that, you’re fooked.
  Eg. CVS, SVN, SourceSafe
• Distributed = everyone has a copy of the
  whole repo.. More resilient, can work offline.
  Eg. Git (<3), Mercurial
What should be in Version Control?
• Ideally EVERYTHING you need to recreate the
  project at any given time
• Prefer source assets to output assets (source
  code instead of internal dlls, pdfs instead of
  pngs)
• On large projects, may have to rather keep
  output art assets (gajillion meg multilayer
  pdfs), but then at least back source up
Git: Which tools?
•   Commandline
•   SmartGitHg
•   SourceTree <3 (Windows only in Beta )
•   TortoiseGit (No, no, no. Just don’t do it)
Git terminology
• Repository: where history of work is stored (you
  have one locally, and one or more on remote
  machines).
• Origin: shorthand for “main” remote repository.
  Not really special in any way.
• Commit: state of all your assets at a given point in
  time
• Branch: series of commits
• Master: “main” branch
• Working Copy: assets you’re actually working on
Git workflow
1.   Create new repository
2.   Make code changes
3.   Commit local changes (repeat 2-3)
4.   Pull changes =
     – Fetch changes from remote
     – Merge changes into local
     – Commit merge
5. Test
6. Push changes
7. Repeat from 2
Demo
Unity+Git: specifics
• Set version control mode to met a files (edit-
  >project settings->editor)
• Set up your .gitignore to exclude:
   – Library and temp folders
   – Monodev/Studio project files
   – System files like DS_store & thumbnails
• Metas, metas, metas:
   – If you add an asset, add the meta
   – If you empty a folder, delete the folder and the meta
Where to go to get started?
• Github.com – free public repositories, well
  known, widely used
• Bitbucket.com – free private repositories!! 
• Git-scm.com

More Related Content

What's hot (20)

PPTX
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Matt Warren
 
PDF
Git Tutorial
Pranav Kulkarni
 
PDF
Let's talk GIt
Darshan Parikh
 
PPTX
X page developer
Jakob Majkilde
 
PDF
Puppet Camp LA 2/19/2015
ice799
 
PPTX
Git basics
Ashwin Date
 
PDF
Learning by Experience, Devploying pyxbackup
Jervin Real
 
PPT
Git Introduction
Anil Wadghule
 
PDF
Does Cowgirl Dream of Red Swirl?
Hideki Yamane
 
PDF
Git basics
Amit Sawhney
 
KEY
Read the Docs
ericholscher
 
PDF
Jupyter Kernel: How to Speak in Another Language
Wey-Han Liaw
 
PDF
Mini git tutorial
Cristian Lucchesi
 
PPT
Git Heaven with Wakanda
Juergen Fesslmeier
 
PPTX
Run Python on windows
Sitthykun LY
 
KEY
20120524 english lt2_pythontoolsfortesting
Kazuhiro Oinuma
 
PDF
Getting Started With Grunt for WordPress Development
David Bisset
 
PDF
Git! Why? How?
Daniel Kummer
 
PDF
Docker 入門 Introduction to Docker
Genchi Lu
 
PPTX
How *NOT* to firmware
Amit Serper
 
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Matt Warren
 
Git Tutorial
Pranav Kulkarni
 
Let's talk GIt
Darshan Parikh
 
X page developer
Jakob Majkilde
 
Puppet Camp LA 2/19/2015
ice799
 
Git basics
Ashwin Date
 
Learning by Experience, Devploying pyxbackup
Jervin Real
 
Git Introduction
Anil Wadghule
 
Does Cowgirl Dream of Red Swirl?
Hideki Yamane
 
Git basics
Amit Sawhney
 
Read the Docs
ericholscher
 
Jupyter Kernel: How to Speak in Another Language
Wey-Han Liaw
 
Mini git tutorial
Cristian Lucchesi
 
Git Heaven with Wakanda
Juergen Fesslmeier
 
Run Python on windows
Sitthykun LY
 
20120524 english lt2_pythontoolsfortesting
Kazuhiro Oinuma
 
Getting Started With Grunt for WordPress Development
David Bisset
 
Git! Why? How?
Daniel Kummer
 
Docker 入門 Introduction to Docker
Genchi Lu
 
How *NOT* to firmware
Amit Serper
 

Similar to Source andassetcontrolingamedev (20)

PPTX
Source control - what you need to know
daveymni
 
PPTX
Understanding GIT and Version Control
Sourabh Sahu
 
KEY
Version Control Lassosoft 2009 Lasso Developers Conference
Brian Loomis
 
PPTX
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
PPTX
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
PPTX
02-version control(DevOps Series)
Mohammed Shaban
 
PPTX
Slide set 7 (Source Code Management History Overview) - Copy.pptx
UTKARSHBHARDWAJ71
 
PPTX
version control system (2).pptx
DipanshuRaj19
 
PDF
Version Control with Git
Luigi De Russis
 
PDF
Software Engineering Tools and Practices Learn Git
BeHappy728244
 
PPTX
Version control
visual28
 
PPTX
Version Control Training - First Lego League
Jeffrey T. Pollock
 
PPT
se2030-11 Intro to version control(1).ppt
Ezratgab
 
PDF
VersionEEring
Ruthie BenDor
 
PPTX
Version Control with Git
Sahil Agarwal
 
PDF
From SVN to Git
Sergio Gutierrez-Santos
 
PDF
Version Control - Hem Shrestha
Hem Shrestha
 
PPTX
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
PPTX
Git 101 for Beginners
Anurag Upadhaya
 
PPT
SVN Usage & Best Practices
Ashraf Fouad
 
Source control - what you need to know
daveymni
 
Understanding GIT and Version Control
Sourabh Sahu
 
Version Control Lassosoft 2009 Lasso Developers Conference
Brian Loomis
 
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
02-version control(DevOps Series)
Mohammed Shaban
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
UTKARSHBHARDWAJ71
 
version control system (2).pptx
DipanshuRaj19
 
Version Control with Git
Luigi De Russis
 
Software Engineering Tools and Practices Learn Git
BeHappy728244
 
Version control
visual28
 
Version Control Training - First Lego League
Jeffrey T. Pollock
 
se2030-11 Intro to version control(1).ppt
Ezratgab
 
VersionEEring
Ruthie BenDor
 
Version Control with Git
Sahil Agarwal
 
From SVN to Git
Sergio Gutierrez-Santos
 
Version Control - Hem Shrestha
Hem Shrestha
 
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
Git 101 for Beginners
Anurag Upadhaya
 
SVN Usage & Best Practices
Ashraf Fouad
 
Ad

Source andassetcontrolingamedev

  • 1. Version control in Game Dev (or how to not lose everything to a power surge)
  • 2. What is Version Control • Wikipedia: “the management of changes to documents, computer programs, large web sites, and other collections of information.” • Huh?.. In real people speak? – It’s a history of the changes to your work – Usually saved on a server somewhere – That allows you (or someone else) to get a copy of your work as it is/was at some point
  • 4. Why should I bother? • Helps you track down where bugs came from • Lets you take risks • Makes it easier to work in a team • Backups (stuff happens!) • All the cool kids are doing it :P
  • 5. Which Version Control system? • Centralized = old school. Everything on the server, without access to that, you’re fooked. Eg. CVS, SVN, SourceSafe • Distributed = everyone has a copy of the whole repo.. More resilient, can work offline. Eg. Git (<3), Mercurial
  • 6. What should be in Version Control? • Ideally EVERYTHING you need to recreate the project at any given time • Prefer source assets to output assets (source code instead of internal dlls, pdfs instead of pngs) • On large projects, may have to rather keep output art assets (gajillion meg multilayer pdfs), but then at least back source up
  • 7. Git: Which tools? • Commandline • SmartGitHg • SourceTree <3 (Windows only in Beta ) • TortoiseGit (No, no, no. Just don’t do it)
  • 8. Git terminology • Repository: where history of work is stored (you have one locally, and one or more on remote machines). • Origin: shorthand for “main” remote repository. Not really special in any way. • Commit: state of all your assets at a given point in time • Branch: series of commits • Master: “main” branch • Working Copy: assets you’re actually working on
  • 9. Git workflow 1. Create new repository 2. Make code changes 3. Commit local changes (repeat 2-3) 4. Pull changes = – Fetch changes from remote – Merge changes into local – Commit merge 5. Test 6. Push changes 7. Repeat from 2
  • 10. Demo
  • 11. Unity+Git: specifics • Set version control mode to met a files (edit- >project settings->editor) • Set up your .gitignore to exclude: – Library and temp folders – Monodev/Studio project files – System files like DS_store & thumbnails • Metas, metas, metas: – If you add an asset, add the meta – If you empty a folder, delete the folder and the meta
  • 12. Where to go to get started? • Github.com – free public repositories, well known, widely used • Bitbucket.com – free private repositories!!  • Git-scm.com