SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
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?

Contenu connexe

Tendances

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 CloudHawk Ridge Systems
 
Service Fabric Overview (Yves Goeleven)
Service Fabric Overview (Yves Goeleven)Service Fabric Overview (Yves Goeleven)
Service Fabric Overview (Yves Goeleven)Visug
 
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...Microsoft Tech Community
 
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 USChris Wahl
 
Architecture evolution
Architecture evolutionArchitecture evolution
Architecture evolutionamit bezalel
 
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?DevGAMM Conference
 
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 NutanixTom Van Gramberen
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesAndreas Katzig
 
Windows Azure IaaS and Hybrid
Windows Azure IaaS and HybridWindows Azure IaaS and Hybrid
Windows Azure IaaS and HybridMike Martin
 
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)Callon Campbell
 
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 gamesiFunFactory Inc.
 
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 EngineeringChris Wahl
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud PlatformSujai Prakasam
 
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)Visug
 
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...Tiffany Jachja
 
Introduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes MeetupIntroduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes MeetupBlueData, Inc.
 
Simplifying Multi-User SOLIDWORKS Implementations
Simplifying Multi-User SOLIDWORKS ImplementationsSimplifying Multi-User SOLIDWORKS Implementations
Simplifying Multi-User SOLIDWORKS ImplementationsHawk Ridge Systems
 

Tendances (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
 

Similaire à Sven Erik Knop, Perforce

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...OpenNebula Project
 
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...Dmytro Korzhevin
 
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 EnterprisePerforce
 
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 GraphicsIntel® Software
 
Embedded services by Faststream Technologies
Embedded services by Faststream TechnologiesEmbedded services by Faststream Technologies
Embedded services by Faststream TechnologiesHari Narayana
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
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 Perforce
 
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)DevGAMM Conference
 
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 - ...Codemotion
 
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...Panagiotis Galinos
 
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 Perforce
 
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?Perforce
 
4-13Levi Morey
4-13Levi Morey4-13Levi Morey
4-13Levi MoreyLevi Morey
 
Game Development Best Practices
Game Development Best PracticesGame Development Best Practices
Game Development Best PracticesPerforce
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce ArchitecturePerforce
 
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 DIYEnterprise Management Associates
 
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'IoTPôle Systematic Paris-Region
 

Similaire à 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
 

Plus de White Nights Conference

Artur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, OdnoklassnikiArtur Shakalis, Vladimir Tomko, Odnoklassniki
Artur Shakalis, Vladimir Tomko, OdnoklassnikiWhite Nights Conference
 
David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.David Reichelt, Color Switch Productions, Inc.
David Reichelt, Color Switch Productions, Inc.White Nights Conference
 

Plus 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
 

Dernier

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 CityEric T. Tung
 
joint cost.pptx COST ACCOUNTING Sixteenth Edition ...
joint cost.pptx  COST ACCOUNTING  Sixteenth Edition                          ...joint cost.pptx  COST ACCOUNTING  Sixteenth Edition                          ...
joint cost.pptx COST ACCOUNTING Sixteenth Edition ...NadhimTaha
 
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...pujan9679
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwaitdaisycvs
 
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 ESCORTSkajalroy875762
 
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 Presentationuneakwhite
 
Berhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGBerhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGpr788182
 
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)Adnet Communications
 
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 PotentialFalcon investment
 
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...Falcon Invoice Discounting
 
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book nowGUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book nowkapoorjyoti4444
 
Cannabis Legalization World Map: 2024 Updated
Cannabis Legalization World Map: 2024 UpdatedCannabis Legalization World Map: 2024 Updated
Cannabis Legalization World Map: 2024 UpdatedCannaBusinessPlans
 
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 Pakistanvineshkumarsajnani12
 
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 ESCORTSkajalroy875762
 
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 Dubaijaehdlyzca
 
New 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateNew 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateCannaBusinessPlans
 
Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...
Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...
Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...pujan9679
 
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGParadip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGpr788182
 
Getting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAI
Getting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAIGetting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAI
Getting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAITim Wilson
 

Dernier (20)

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
 
joint cost.pptx COST ACCOUNTING Sixteenth Edition ...
joint cost.pptx  COST ACCOUNTING  Sixteenth Edition                          ...joint cost.pptx  COST ACCOUNTING  Sixteenth Edition                          ...
joint cost.pptx COST ACCOUNTING Sixteenth Edition ...
 
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
 
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
 
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
 
Berhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGBerhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur 70918*19311 CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
 
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)
 
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
 
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...
 
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book nowGUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book now
 
Cannabis Legalization World Map: 2024 Updated
Cannabis Legalization World Map: 2024 UpdatedCannabis Legalization World Map: 2024 Updated
Cannabis Legalization World Map: 2024 Updated
 
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
 
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
 
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
 
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
 
New 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateNew 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck Template
 
Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...
Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...
Chennai Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Av...
 
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGParadip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
 
Getting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAI
Getting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAIGetting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAI
Getting Real with AI - Columbus DAW - May 2024 - Nick Woo from AlignAI
 

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)