+ All Categories
Home > Business > Sven Erik Knop, Perforce

Sven Erik Knop, Perforce

Date post: 21-Jan-2018
Category:
Upload: white-nights-conference
View: 149 times
Download: 0 times
Share this document with a friend
28
Version Management for Game Developers Sven Erik Knop Perforce Software
Transcript
Page 1: Sven Erik Knop, Perforce

Version Managementfor Game Developers

Sven Erik Knop

Perforce Software

Page 2: Sven Erik Knop, Perforce

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

Выступающий
Заметки для презентации
Perforce currently provides the world’s fastest and most scalable version management and collaboration platform. Put simply, we let companies track versions, or iterations, of their software assets as they’re developed. It’s not just source code we version. Far from it. We also do the same thing for binary files and digital assets – pictures, web sites, audio – almost anything you can create. Question to ask the audience – (especially executives) – are you familiar with version management – (if not, walk them through a customer example) If it’s digital and being developed, refined or changed by individuals or teams, Perforce can capture and version every amendment made. Right now, 350,000 users across 5,500 companies trust Perforce Software to safely version their code, assets and intellectual property.
Page 3: Sven Erik Knop, Perforce

3

Why version management?

Page 4: Sven Erik Knop, Perforce

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 @6game.cc #1 #2game.h #1 #2test.cc #1 #2 #3 #4knight.psd #1 #2 #3armour.psd #1 #2 #3shield.psd #1 #2 #3

Page 5: Sven Erik Knop, Perforce

5

Working with Version Management (1)

#include <game.h>

int main(){

InitialiseGame();PopulateWorld();SetUpOpponents();

StartUpGame();}

Page 6: Sven Erik Knop, Perforce

6

Working with Version Management (2)

#include <game.h>#include <login.h>

int main(){

LogOnUser();InitialiseGame();PopulateWorld();SetUpOpponents();

StartUpGame();}

Page 7: Sven Erik Knop, Perforce

7

Working with Version Management (3)

#include <game.h>#include <loot.h>

int main(){

InitialiseGame();PopulateWorld();SeedLoot();SetUpOpponents();

StartUpGame();}

Page 8: Sven Erik Knop, Perforce

8

Working with Version Management (4)

#include <game.h>#include <login.h>#include <loot.h>

int main(){

LogOnUser();InitialiseGame();PopulateWorld();SeedLoot();SetUpOpponents();

StartUpGame();}

Page 9: Sven Erik Knop, Perforce

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

Page 10: Sven Erik Knop, Perforce

10

Working together on binary files

Merging for binary files?

Locking!

Page 11: Sven Erik Knop, Perforce

11

Single of Source of Truth

Page 12: Sven Erik Knop, Perforce

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

Выступающий
Заметки для презентации
[Animation] 2 steps The problem with games (in general) is the size of the assets: The move to high definition consoles increases the size of the assets into a game manifold Games used to be delivered on a single Floppy disk! Remember floppy disks? 720KB! Then came CDs. 700MB. Then came multiple CDs. N * 700MBs Now most (Windows) games come on DVDs – 4.5 GB per layer, 8.5 GB for a dual-layer DVD-R. Ever installed Shadow of Mordor? 5 DVDs, or a single 25 GB download – so you better have high speed broadband. On the console that is a single Blu Ray disk, 25GB as a single layer. These games are the finished article, all assets compiled and compressed – in HD format. 4K is looming, which will quadruple the space requirements again! So, what are the consequences?
Page 13: Sven Erik Knop, Perforce

13

Consequences

Continuous integration• Builds take minutes (incremental) to hours (full)• Smoke tests?• Full tests?

Who broke the build? HEAD is not stable!

Page 14: Sven Erik Knop, Perforce

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

Page 15: Sven Erik Knop, Perforce

15

Single Code Line

Head

Stable Head still stable?

Page 16: Sven Erik Knop, Perforce

16

Development branches

Long-lived development branches can cause problems

Page 17: Sven Erik Knop, Perforce

17

Task/Feature branches

Keeping feature branches short-lived avoids severe merge conflicts

Page 18: Sven Erik Knop, Perforce

18

3-way merge for binary assets?

Images? 3D models? Sound files?

Locking! Across branches?

Page 19: Sven Erik Knop, Perforce

19

Component-based

Shared trunk

Separate trunks

Page 20: Sven Erik Knop, Perforce

20

Trunk-based Development

Trunk

Release

Extended testing for releaseRequires tooling!

Stable

Выступающий
Заметки для презентации
Iterate quickly faster feedback Automate and parallelise build and tests Release often Milestone branches
Page 21: Sven Erik Knop, Perforce

21

Milestone branches

Stabilise in separate branchMerge fixes, ignore hacks

Page 22: Sven Erik Knop, Perforce

Perforce Helix

Page 23: Sven Erik Knop, Perforce

23

Flexible Workflow Version control, code reviews, simple file sharing, distributed, Git

Fast and ScalableFrom 10 to 10,000+ users, unlimited files

Every fileEfficiently handles large, often binary, data

All contributorsFamiliar tools, natural workflows

AnywhereSupports geographically distributed teams

Secure Granular permissions, theft risk monitoring

Open and ExtensibleAPIs and integration hooks for customization

Introducing Perforce HelixNext Generation Hybrid Version Management

Выступающий
Заметки для презентации
Traditional Helix strengths. Importantly, Helix enables all consumers to do their work and protect their IP without getting in the way of their preferred workflow. Even if using a client like Git where other tools enforce changes in workflow, e.g. partitioning work into multiple repos, to avoid issues of scale or security.
Page 24: Sven Erik Knop, Perforce

24

IDEs

Integrated into your workflow

Game Engines

Build/CI

Image and 3D Tools

+ APIs and many other tools

Page 25: Sven Erik Knop, Perforce

25

Distributed Single Source of Truth

Versioning Service

Proxy

Proxy

Edge Service(humans)D/R

Edge Service(automation)

Page 26: Sven Erik Knop, Perforce

26

Helix Streams

Page 27: Sven Erik Knop, Perforce

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)

Page 28: Sven Erik Knop, Perforce

Thank YouQuestions?


Recommended