SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Version Management
for Game Developers
Sven Erik Knop
Perforce Software
2
What we do
 Perforce helps delivery teams build
complex products collaboratively,
securely and efficiently.
 Commonly used for…
• Software
• Games
• Electronics
• Animations
• Chipsets
• Medical Devices
• IoT
Global 24x7 Support
3
Why version management?
4
What is Version Management?
src
img
game.cc
game.h
test.cc
knight.psd
armour.png
shield.psd
File @1 @2 @3 @4 @5 @6
game.cc #1 #2
game.h #1 #2
test.cc #1 #2 #3 #4
knight.psd #1 #2 #3
armour.psd #1 #2 #3
shield.psd #1 #2 #3
5
Working with Version Management (1)
#include <game.h>
int main()
{
InitialiseGame();
PopulateWorld();
SetUpOpponents();
StartUpGame();
}
6
Working with Version Management (2)
#include <game.h>
#include <login.h>
int main()
{
LogOnUser();
InitialiseGame();
PopulateWorld();
SetUpOpponents();
StartUpGame();
}
7
Working with Version Management (3)
#include <game.h>
#include <loot.h>
int main()
{
InitialiseGame();
PopulateWorld();
SeedLoot();
SetUpOpponents();
StartUpGame();
}
8
Working with Version Management (4)
#include <game.h>
#include <login.h>
#include <loot.h>
int main()
{
LogOnUser();
InitialiseGame();
PopulateWorld();
SeedLoot();
SetUpOpponents();
StartUpGame();
}
9
Merging ...
#include <game.h>
int main()
{
InitialiseGame();
PopulateWorld();
SetUpOpponents();
StartUpGame();
}
#include <game.h>
#include <login.h>
int main()
{
LogOnUser;
InitialiseGame();
PopulateWorld();
SetUpOpponents();
StartUpGame();
}
#include <game.h>
#include <loot.h>
int main()
{
InitialiseGame();
PopulateWorld();
SeedLoot();
SetUpOpponents();
StartUpGame();
}
#include <game.h>
#include <login.h>
#include <loot.h>
int main()
{
LogOnUser();
InitialiseGame();
PopulateWorld();
SeedLoot();
SetUpOpponents();
StartUpGame();
}
Base
Source
Target
Merged
10
Working together on binary files
 Merging for binary files?
 Locking!
11
Single of Source of Truth
12
Challenges in Games Development
 Why is Games Development so hard?
• Besides the obvious I mean …
 Average AAA game:
• 100 of thousands of files
• 1 TB+ source code and assets at HEAD
• 50GB + changes a day
• 100+ Team size
13
Consequences
 Continuous integration
• Builds take minutes (incremental) to hours (full)
• Smoke tests?
• Full tests?
 Who broke the build?
 HEAD is not stable!
14
Coding practices compared
 Different ways to organise your sources
 There is no single best way
• Team size
• Target platform: Mobile/Console/PC/4K/…
• Rate of change
• Iteration frequency
15
Single Code Line
Head
Stable Head still stable?
16
Development branches
Long-lived development branches can cause
problems
17
Task/Feature branches
Keeping feature branches short-
lived avoids severe merge
conflicts
18
3-way merge for binary assets?
 Images?
 3D models?
 Sound files?
 Locking!
 Across branches?
19
Component-based
Shared trunk
Separate trunks
20
Trunk-based Development
Trunk
Release
Extended testing for release
Requires tooling!
Stable
21
Milestone branches
Stabilise in separate branch
Merge fixes, ignore hacks
Perforce Helix
23
Flexible Workflow
Version control, code reviews, simple file sharing, distributed,
Git
Fast and Scalable
From 10 to 10,000+ users, unlimited files
Every file
Efficiently handles large, often binary, data
All contributors
Familiar tools, natural workflows
Anywhere
Supports geographically distributed teams
Secure
Granular permissions, theft risk monitoring
Open and Extensible
APIs and integration hooks for customization
Introducing Perforce Helix
Next Generation Hybrid Version Management
24
IDEs
Integrated into your workflow
Game
Engines
Build/CI
Image and
3D Tools
+ APIs and many other tools
25
Distributed Single Source of Truth
Versioning Service
Proxy
Proxy
Edge Service
(humans)
D/R
Edge Service
(automation)
26
Helix Streams
27
How do I start?
 Perforce is free (without restrictions)
• For educational purposes
• For Open Source projects
• For 5 users / 20 workspaces
 www.perforce.com
 Hosted, for example, by Assembla (www.assembla.com)
Thank You
Questions?

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

NVIDIA GRID VCA - Using SolidWorks in the Cloud
NVIDIA GRID VCA - Using SolidWorks in the CloudNVIDIA GRID VCA - Using SolidWorks in the Cloud
NVIDIA GRID VCA - Using SolidWorks in the Cloud
 
Service Fabric Overview (Yves Goeleven)
Service Fabric Overview (Yves Goeleven)Service Fabric Overview (Yves Goeleven)
Service Fabric Overview (Yves Goeleven)
 
Extending Windows Admin Center to manage your applications and infrastructure...
Extending Windows Admin Center to manage your applications and infrastructure...Extending Windows Admin Center to manage your applications and infrastructure...
Extending Windows Admin Center to manage your applications and infrastructure...
 
Automation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 USAutomation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 US
 
Unleashing cloud
Unleashing cloudUnleashing cloud
Unleashing cloud
 
Architecture evolution
Architecture evolutionArchitecture evolution
Architecture evolution
 
Cloud for Game Developers – Myth or Real Scenarios?
Cloud for Game Developers – Myth or Real Scenarios?Cloud for Game Developers – Myth or Real Scenarios?
Cloud for Game Developers – Myth or Real Scenarios?
 
How to deploy a Private Cloud based on WAP and Nutanix
How to deploy a Private Cloud based on WAP and NutanixHow to deploy a Private Cloud based on WAP and Nutanix
How to deploy a Private Cloud based on WAP and Nutanix
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
Windows Azure IaaS and Hybrid
Windows Azure IaaS and HybridWindows Azure IaaS and Hybrid
Windows Azure IaaS and Hybrid
 
Bringing Serverless into the Enterprise (Global Azure Virtual 2020)
Bringing Serverless into the Enterprise (Global Azure Virtual 2020)Bringing Serverless into the Enterprise (Global Azure Virtual 2020)
Bringing Serverless into the Enterprise (Global Azure Virtual 2020)
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
Scotland VMUG - My Journey to Full Stack Engineering
Scotland VMUG - My Journey to Full Stack EngineeringScotland VMUG - My Journey to Full Stack Engineering
Scotland VMUG - My Journey to Full Stack Engineering
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
How many iot technologies do you need to turn on a lightbulb (Kurt Claeys)
How many iot technologies do you need to turn on a lightbulb (Kurt Claeys)How many iot technologies do you need to turn on a lightbulb (Kurt Claeys)
How many iot technologies do you need to turn on a lightbulb (Kurt Claeys)
 
Azure Functions 101
Azure Functions 101Azure Functions 101
Azure Functions 101
 
DevOps Institute SkilUp Day Enterprise Kubernetes - Navigating Your Kubernete...
DevOps Institute SkilUp Day Enterprise Kubernetes - Navigating Your Kubernete...DevOps Institute SkilUp Day Enterprise Kubernetes - Navigating Your Kubernete...
DevOps Institute SkilUp Day Enterprise Kubernetes - Navigating Your Kubernete...
 
Introduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes MeetupIntroduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes Meetup
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Simplifying Multi-User SOLIDWORKS Implementations
Simplifying Multi-User SOLIDWORKS ImplementationsSimplifying Multi-User SOLIDWORKS Implementations
Simplifying Multi-User SOLIDWORKS Implementations
 

Semelhante a Sven Erik Knop, Perforce

4-13Levi Morey
4-13Levi Morey4-13Levi Morey
4-13Levi Morey
Levi Morey
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture
Perforce
 

Semelhante a Sven Erik Knop, Perforce (20)

OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
 
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
High End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsHigh End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro Graphics
 
Embedded services by Faststream Technologies
Embedded services by Faststream TechnologiesEmbedded services by Faststream Technologies
Embedded services by Faststream Technologies
 
KIRANKUMAR_MV
KIRANKUMAR_MVKIRANKUMAR_MV
KIRANKUMAR_MV
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
Rashmi_Resume
Rashmi_ResumeRashmi_Resume
Rashmi_Resume
 
Best Practices For Game Development Using Perforce Streams
Best Practices For Game Development Using Perforce Streams Best Practices For Game Development Using Perforce Streams
Best Practices For Game Development Using Perforce Streams
 
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
 
Faster deep learning solutions from training to inference - Michele Tameni - ...
Faster deep learning solutions from training to inference - Michele Tameni - ...Faster deep learning solutions from training to inference - Michele Tameni - ...
Faster deep learning solutions from training to inference - Michele Tameni - ...
 
The Ultimate List of Opensource Software for #docker #decentralized #selfhost...
The Ultimate List of Opensource Software for #docker #decentralized #selfhost...The Ultimate List of Opensource Software for #docker #decentralized #selfhost...
The Ultimate List of Opensource Software for #docker #decentralized #selfhost...
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?
 
4-13Levi Morey
4-13Levi Morey4-13Levi Morey
4-13Levi Morey
 
Summit update
Summit updateSummit update
Summit update
 
Game Development Best Practices
Game Development Best PracticesGame Development Best Practices
Game Development Best Practices
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 

Mais de White Nights Conference

Mais de White Nights Conference (20)

Kirill Zolovkin, OctoBox Interactive
Kirill Zolovkin, OctoBox InteractiveKirill Zolovkin, OctoBox Interactive
Kirill Zolovkin, OctoBox Interactive
 
Leonid Eletskih, Adjust
Leonid Eletskih, AdjustLeonid Eletskih, Adjust
Leonid Eletskih, Adjust
 
Valeria Andrianova, JetBrains
Valeria Andrianova, JetBrainsValeria Andrianova, JetBrains
Valeria Andrianova, JetBrains
 
Mike Hines, Amazon
Mike Hines, AmazonMike Hines, Amazon
Mike Hines, Amazon
 
Artem Petukhov, Pixonic
Artem Petukhov, PixonicArtem Petukhov, Pixonic
Artem Petukhov, Pixonic
 
Vasiliy Sabirov, devtodev
Vasiliy Sabirov, devtodev	Vasiliy Sabirov, devtodev
Vasiliy Sabirov, devtodev
 
Artur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, OdnoklassnikiArtur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, Odnoklassniki
 
Ivan Belousov, HypeTrain Digital
Ivan Belousov, HypeTrain DigitalIvan Belousov, HypeTrain Digital
Ivan Belousov, HypeTrain Digital
 
Aleksey Rehlov, Creative Mobile
Aleksey Rehlov, Creative MobileAleksey Rehlov, Creative Mobile
Aleksey Rehlov, Creative Mobile
 
Alexander Neberekutin, DevGame
Alexander Neberekutin, DevGame	Alexander Neberekutin, DevGame
Alexander Neberekutin, DevGame
 
Konrad Czernik, Techland
Konrad Czernik, Techland	Konrad Czernik, Techland
Konrad Czernik, Techland
 
Evgeniy Kozlov, Twitter
Evgeniy Kozlov, Twitter	Evgeniy Kozlov, Twitter
Evgeniy Kozlov, Twitter
 
David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.
 
Keenan Timko, MoPub (Twitter)
Keenan Timko, MoPub (Twitter) Keenan Timko, MoPub (Twitter)
Keenan Timko, MoPub (Twitter)
 
Anna Krizhanovskaya, Playrix
Anna Krizhanovskaya, Playrix	Anna Krizhanovskaya, Playrix
Anna Krizhanovskaya, Playrix
 
Natalie Portier, Appodeal
Natalie Portier, Appodeal	Natalie Portier, Appodeal
Natalie Portier, Appodeal
 
Maxim Babichev, VK.com
Maxim Babichev, VK.comMaxim Babichev, VK.com
Maxim Babichev, VK.com
 
Nikita Zatsepin, BlueStacks
Nikita Zatsepin, BlueStacksNikita Zatsepin, BlueStacks
Nikita Zatsepin, BlueStacks
 
Mikael Leinonen, MyGamez Ltd.
Mikael Leinonen, MyGamez Ltd.Mikael Leinonen, MyGamez Ltd.
Mikael Leinonen, MyGamez Ltd.
 
Elena Tsarkova, Wooga
Elena Tsarkova, WoogaElena Tsarkova, Wooga
Elena Tsarkova, Wooga
 

Último

Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
vineshkumarsajnani12
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
daisycvs
 
Mckinsey foundation level Handbook for Viewing
Mckinsey foundation level Handbook for ViewingMckinsey foundation level Handbook for Viewing
Mckinsey foundation level Handbook for Viewing
Nauman Safdar
 

Último (20)

Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
 
Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...
Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...
Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60% in 6 Months
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60%  in 6 MonthsSEO Case Study: How I Increased SEO Traffic & Ranking by 50-60%  in 6 Months
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60% in 6 Months
 
QSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptx
QSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptxQSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptx
QSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptx
 
Durg CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN durg ESCORTS
Durg CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN durg ESCORTSDurg CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN durg ESCORTS
Durg CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN durg ESCORTS
 
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
 
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
Falcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business Potential
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
 
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTSJAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
 
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All TimeCall 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
 
UAE Bur Dubai Call Girls ☏ 0564401582 Call Girl in Bur Dubai
UAE Bur Dubai Call Girls ☏ 0564401582 Call Girl in Bur DubaiUAE Bur Dubai Call Girls ☏ 0564401582 Call Girl in Bur Dubai
UAE Bur Dubai Call Girls ☏ 0564401582 Call Girl in Bur Dubai
 
Mckinsey foundation level Handbook for Viewing
Mckinsey foundation level Handbook for ViewingMckinsey foundation level Handbook for Viewing
Mckinsey foundation level Handbook for Viewing
 
Buy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail AccountsBuy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail Accounts
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
 
Nashik Call Girl Just Call 7091819311 Top Class Call Girl Service Available
Nashik Call Girl Just Call 7091819311 Top Class Call Girl Service AvailableNashik Call Girl Just Call 7091819311 Top Class Call Girl Service Available
Nashik Call Girl Just Call 7091819311 Top Class Call Girl Service Available
 

Sven Erik Knop, Perforce

  • 1. Version Management for Game Developers Sven Erik Knop Perforce Software
  • 2. 2 What we do  Perforce helps delivery teams build complex products collaboratively, securely and efficiently.  Commonly used for… • Software • Games • Electronics • Animations • Chipsets • Medical Devices • IoT Global 24x7 Support
  • 4. 4 What is Version Management? src img game.cc game.h test.cc knight.psd armour.png shield.psd File @1 @2 @3 @4 @5 @6 game.cc #1 #2 game.h #1 #2 test.cc #1 #2 #3 #4 knight.psd #1 #2 #3 armour.psd #1 #2 #3 shield.psd #1 #2 #3
  • 5. 5 Working with Version Management (1) #include <game.h> int main() { InitialiseGame(); PopulateWorld(); SetUpOpponents(); StartUpGame(); }
  • 6. 6 Working with Version Management (2) #include <game.h> #include <login.h> int main() { LogOnUser(); InitialiseGame(); PopulateWorld(); SetUpOpponents(); StartUpGame(); }
  • 7. 7 Working with Version Management (3) #include <game.h> #include <loot.h> int main() { InitialiseGame(); PopulateWorld(); SeedLoot(); SetUpOpponents(); StartUpGame(); }
  • 8. 8 Working with Version Management (4) #include <game.h> #include <login.h> #include <loot.h> int main() { LogOnUser(); InitialiseGame(); PopulateWorld(); SeedLoot(); SetUpOpponents(); StartUpGame(); }
  • 9. 9 Merging ... #include <game.h> int main() { InitialiseGame(); PopulateWorld(); SetUpOpponents(); StartUpGame(); } #include <game.h> #include <login.h> int main() { LogOnUser; InitialiseGame(); PopulateWorld(); SetUpOpponents(); StartUpGame(); } #include <game.h> #include <loot.h> int main() { InitialiseGame(); PopulateWorld(); SeedLoot(); SetUpOpponents(); StartUpGame(); } #include <game.h> #include <login.h> #include <loot.h> int main() { LogOnUser(); InitialiseGame(); PopulateWorld(); SeedLoot(); SetUpOpponents(); StartUpGame(); } Base Source Target Merged
  • 10. 10 Working together on binary files  Merging for binary files?  Locking!
  • 12. 12 Challenges in Games Development  Why is Games Development so hard? • Besides the obvious I mean …  Average AAA game: • 100 of thousands of files • 1 TB+ source code and assets at HEAD • 50GB + changes a day • 100+ Team size
  • 13. 13 Consequences  Continuous integration • Builds take minutes (incremental) to hours (full) • Smoke tests? • Full tests?  Who broke the build?  HEAD is not stable!
  • 14. 14 Coding practices compared  Different ways to organise your sources  There is no single best way • Team size • Target platform: Mobile/Console/PC/4K/… • Rate of change • Iteration frequency
  • 15. 15 Single Code Line Head Stable Head still stable?
  • 16. 16 Development branches Long-lived development branches can cause problems
  • 17. 17 Task/Feature branches Keeping feature branches short- lived avoids severe merge conflicts
  • 18. 18 3-way merge for binary assets?  Images?  3D models?  Sound files?  Locking!  Across branches?
  • 20. 20 Trunk-based Development Trunk Release Extended testing for release Requires tooling! Stable
  • 21. 21 Milestone branches Stabilise in separate branch Merge fixes, ignore hacks
  • 23. 23 Flexible Workflow Version control, code reviews, simple file sharing, distributed, Git Fast and Scalable From 10 to 10,000+ users, unlimited files Every file Efficiently handles large, often binary, data All contributors Familiar tools, natural workflows Anywhere Supports geographically distributed teams Secure Granular permissions, theft risk monitoring Open and Extensible APIs and integration hooks for customization Introducing Perforce Helix Next Generation Hybrid Version Management
  • 24. 24 IDEs Integrated into your workflow Game Engines Build/CI Image and 3D Tools + APIs and many other tools
  • 25. 25 Distributed Single Source of Truth Versioning Service Proxy Proxy Edge Service (humans) D/R Edge Service (automation)
  • 27. 27 How do I start?  Perforce is free (without restrictions) • For educational purposes • For Open Source projects • For 5 users / 20 workspaces  www.perforce.com  Hosted, for example, by Assembla (www.assembla.com)