ºÝºÝߣ

ºÝºÝߣShare 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?
  ¨C It¡¯s a history of the changes to your work
  ¨C Usually saved on a server somewhere
  ¨C 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 =
     ¨C Fetch changes from remote
     ¨C Merge changes into local
     ¨C 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:
   ¨C Library and temp folders
   ¨C Monodev/Studio project files
   ¨C System files like DS_store & thumbnails
? Metas, metas, metas:
   ¨C If you add an asset, add the meta
   ¨C If you empty a folder, delete the folder and the meta
Where to go to get started?
? Github.com ¨C free public repositories, well
  known, widely used
? Bitbucket.com ¨C free private repositories!! ?
? Git-scm.com
Ad

Recommended

Gitgithub101slideshare 150922131830-lva1-app6891
Gitgithub101slideshare 150922131830-lva1-app6891
Brian Okinyi
?
Luis atencio on_git
Luis atencio on_git
Luis Atencio
?
Demo
Demo
Miracle Anyanwu
?
What is version control software and why do you need it?
What is version control software and why do you need it?
Leonid Mamchenkov
?
Get Ur Git On: Introduction and getting started with Github
Get Ur Git On: Introduction and getting started with Github
Christine O'Connell
?
High 5 Final Presentation
High 5 Final Presentation
Gregory Goldshteyn
?
Rex - Lightning Talk yapc.eu 2013
Rex - Lightning Talk yapc.eu 2013
Jan Gehring
?
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
Jan Aerts
?
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Matt Warren
?
Git Tutorial
Git Tutorial
Pranav Kulkarni
?
Let's talk GIt
Let's talk GIt
Darshan Parikh
?
X page developer
X page developer
Jakob Majkilde
?
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015
ice799
?
Git basics
Git basics
Ashwin Date
?
Learning by Experience, Devploying pyxbackup
Learning by Experience, Devploying pyxbackup
Jervin Real
?
Git Introduction
Git Introduction
Anil Wadghule
?
Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?
Hideki Yamane
?
Git basics
Git basics
Amit Sawhney
?
Read the Docs
Read the Docs
ericholscher
?
Jupyter Kernel: How to Speak in Another Language
Jupyter Kernel: How to Speak in Another Language
Wey-Han Liaw
?
Mini git tutorial
Mini git tutorial
Cristian Lucchesi
?
Git Heaven with Wakanda
Git Heaven with Wakanda
Juergen Fesslmeier
?
Run Python on windows
Run Python on windows
Sitthykun LY
?
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting
Kazuhiro Oinuma
?
Getting Started With Grunt for WordPress Development
Getting Started With Grunt for WordPress Development
David Bisset
?
Git! Why? How?
Git! Why? How?
Daniel Kummer
?
Docker ÈëéT Introduction to Docker
Docker ÈëéT Introduction to Docker
Genchi Lu
?
How *NOT* to firmware
How *NOT* to firmware
Amit Serper
?
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
PouriaQashqai1
?
391Lecture0909 Vision control of git.ppt
391Lecture0909 Vision control of git.ppt
GevitaChinnaiah
?

More Related Content

What's hot (20)

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

Similar to Source andassetcontrolingamedev (20)

CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
PouriaQashqai1
?
391Lecture0909 Vision control of git.ppt
391Lecture0909 Vision control of git.ppt
GevitaChinnaiah
?
Git for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
?
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
?
Git
Git
Okba Mahdjoub
?
Git 101 for Beginners
Git 101 for Beginners
Anurag Upadhaya
?
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
?
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby
?
Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby
?
Reproducible research: practice
Reproducible research: practice
C. Tobin Magle
?
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Ahmed El-Arabawy
?
IS - section 1 - modifiedFinal information system.pptx
IS - section 1 - modifiedFinal information system.pptx
NaglaaAbdelhady
?
git and github
git and github
Darren Oakley
?
Mini-training: Let¡¯s Git It!
Mini-training: Let¡¯s Git It!
Betclic Everest Group Tech Team
?
Git installation and configuration
Git installation and configuration
Kishor Kumar
?
Git and Github Session
Git and Github Session
GoogleDevelopersStud1
?
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
?
Git and Github
Git and Github
Akshay Vasava
?
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
Ivano Malavolta
?
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
?
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
PouriaQashqai1
?
391Lecture0909 Vision control of git.ppt
391Lecture0909 Vision control of git.ppt
GevitaChinnaiah
?
Git for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
?
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
?
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
?
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby
?
Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby
?
Reproducible research: practice
Reproducible research: practice
C. Tobin Magle
?
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Ahmed El-Arabawy
?
IS - section 1 - modifiedFinal information system.pptx
IS - section 1 - modifiedFinal information system.pptx
NaglaaAbdelhady
?
Git installation and configuration
Git installation and configuration
Kishor Kumar
?
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
?
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
Ivano Malavolta
?
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
?
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? ¨C It¡¯s a history of the changes to your work ¨C Usually saved on a server somewhere ¨C 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 = ¨C Fetch changes from remote ¨C Merge changes into local ¨C 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: ¨C Library and temp folders ¨C Monodev/Studio project files ¨C System files like DS_store & thumbnails ? Metas, metas, metas: ¨C If you add an asset, add the meta ¨C If you empty a folder, delete the folder and the meta
  • 12. Where to go to get started? ? Github.com ¨C free public repositories, well known, widely used ? Bitbucket.com ¨C free private repositories!! ? ? Git-scm.com