SlideShare a Scribd company logo
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?

More Related Content

What's hot

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
Hawk 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 US
Chris Wahl
 
Unleashing cloud
Unleashing cloudUnleashing cloud
Unleashing cloud
Kartik Kumar Perisetla
 
Architecture evolution
Architecture evolutionArchitecture evolution
Architecture evolution
amit 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 Nutanix
Tom Van Gramberen
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
Andreas Katzig
 
Windows Azure IaaS and Hybrid
Windows Azure IaaS and HybridWindows Azure IaaS and Hybrid
Windows Azure IaaS and Hybrid
Mike 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 games
iFunFactory 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 Engineering
Chris Wahl
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
Sujai 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
 
Azure Functions 101
Azure Functions 101Azure Functions 101
Azure Functions 101
Martin Abbott
 
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 Meetup
BlueData, Inc.
 
Azure functions
Azure functionsAzure functions
Azure functions
David Giard
 
Simplifying Multi-User SOLIDWORKS Implementations
Simplifying Multi-User SOLIDWORKS ImplementationsSimplifying Multi-User SOLIDWORKS Implementations
Simplifying Multi-User SOLIDWORKS Implementations
Hawk Ridge Systems
 

What's hot (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
 

Similar to 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 Enterprise
Perforce
 
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
Intel® Software
 
Embedded services by Faststream Technologies
Embedded services by Faststream TechnologiesEmbedded services by Faststream Technologies
Embedded services by Faststream Technologies
Hari Narayana
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
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 Practices
Perforce
 
[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 DIY
Enterprise 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'IoT
Pôle Systematic Paris-Region
 

Similar to 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
 

More from White Nights Conference

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

More from 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
 

Recently uploaded

What is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdfWhat is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdf
seoforlegalpillers
 
Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024
FelixPerez547899
 
Cree_Rey_BrandIdentityKit.PDF_PersonalBd
Cree_Rey_BrandIdentityKit.PDF_PersonalBdCree_Rey_BrandIdentityKit.PDF_PersonalBd
Cree_Rey_BrandIdentityKit.PDF_PersonalBd
creerey
 
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
fakeloginn69
 
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
fisherameliaisabella
 
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Lviv Startup Club
 
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
BBPMedia1
 
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
BBPMedia1
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
Nicola Wreford-Howard
 
VAT Registration Outlined In UAE: Benefits and Requirements
VAT Registration Outlined In UAE: Benefits and RequirementsVAT Registration Outlined In UAE: Benefits and Requirements
VAT Registration Outlined In UAE: Benefits and Requirements
uae taxgpt
 
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-indiafalcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
Falcon Invoice Discounting
 
20240425_ TJ Communications Credentials_compressed.pdf
20240425_ TJ Communications Credentials_compressed.pdf20240425_ TJ Communications Credentials_compressed.pdf
20240425_ TJ Communications Credentials_compressed.pdf
tjcomstrang
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
RajPriye
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
taqyed
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
NZSG
 
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Lviv Startup Club
 
FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134
LR1709MUSIC
 
3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx
tanyjahb
 
Enterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdfEnterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdf
KaiNexus
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
Ben Wann
 

Recently uploaded (20)

What is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdfWhat is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdf
 
Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024
 
Cree_Rey_BrandIdentityKit.PDF_PersonalBd
Cree_Rey_BrandIdentityKit.PDF_PersonalBdCree_Rey_BrandIdentityKit.PDF_PersonalBd
Cree_Rey_BrandIdentityKit.PDF_PersonalBd
 
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
 
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
 
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)
 
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
 
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
 
VAT Registration Outlined In UAE: Benefits and Requirements
VAT Registration Outlined In UAE: Benefits and RequirementsVAT Registration Outlined In UAE: Benefits and Requirements
VAT Registration Outlined In UAE: Benefits and Requirements
 
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-indiafalcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
 
20240425_ TJ Communications Credentials_compressed.pdf
20240425_ TJ Communications Credentials_compressed.pdf20240425_ TJ Communications Credentials_compressed.pdf
20240425_ TJ Communications Credentials_compressed.pdf
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
 
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
 
FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134
 
3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx
 
Enterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdfEnterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdf
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
 

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)