FlorianRossignol.github.io

View on GitHub

Perforce Devs Ops

Context

For my third year studies in game programming we have to create a big game with art and audio for school. We decided to go on unreal engine 5 and recreate an older pod game based on twin sticks called “Aer Racer”. I need to place an environment source control for all teams working together like audio and art, we decide to go on perforce based on the industry pre required and much storage for the large file like blueprint.

Perforce Setup

First we have to setup the server Perforce based on the shool server I download p4 service directly in root server, after that we have to setup the admin profile, I go name a profile and a password for that.

I write for team an document which traces my research and explanation concerning perforce.

[PerforceDocument

PerforceClient

After setup correctly the admin profile i need first to create account for the rest of game prog team, installed perforce service in the root server team and other can download the Peforce Client.

PerforceClient

In this case we have some functionality:

Example Creating workspace

p4ignore

After to create and explains how to us perforce in the team I need to create and setup the “p4 ignore, the p4 ignore is used for ignoring the file, I specified file to the p4ignore to get ignore for adding the new file.

p4 ignore used for this project

# Visual Studio 2015 user specific files
.vs/

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app
*.ipa

# These project files can be generated by the engine
*.xcodeproj
*.xcworkspace
*.sln
*.suo
*.opensdf
*.sdf
*.VC.db
*.VC.opendb

# Precompiled Assets
SourceArt/**/*.png
SourceArt/**/*.tga

# Binary Files
Binaries/*
Plugins/*/Binaries/*

# Builds
Build/*

# Whitelist PakBlacklist-<BuildConfiguration>.txt files
!Build/*/
Build/*/**
!Build/*/PakBlacklist*.txt

# Don't ignore icon files in Build
!Build/**/*.ico

# Built data for maps
*_BuiltData.uasset

# Configuration files generated by the Editor
Saved/*

# Compiled source files for the engine to use
Intermediate/*
[Pp]lugins/*/Intermediate/*
/plugins/

# Cache files for the editor to use
DerivedDataCache/*

# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/.idea.SubCaelo.iml
/contentModel.xml
/modules.xml
/projectSettingsUpdater.xml
.idea/
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

#gitignore
.gitignore

#Wwisefile
*.akd
*.*.validationcache
*.*.wsettings
*.prof

#WwisePersonalProject
/depot_WwiseProject/.cache/
/depot_WwiseProject/GeneratedSoundBanks/
/depot_WwiseProject/Soundcaster Sessions/


#shortcut
Shortcut.Ink

some file in this case dont need to push in the server.

Problems

I encounter one big problem during the phase of production. Perforce is free until five users created, but for the project we have large more user work in the project, so I need to contact support. These problems create an entire shutdown for Perforce server, all the team cant add the new file until 2 weeks later. After this have an licence for all users and get a normal traffic for Perforce server.

Going Further

After the project during my time i go recreate a Perforce Server for my next game jam game, setup the environment and server. Learn the different method for managing in perforce root server.

Take the Aer Racer project a step further

To go farther on Aer Racer concerning Perforce and with the whole project, I could have anticipated the expiration of the license earlier and thus saved several weeks of work, because with this problem encountered, we lost more than two weeks between the license request and the reception. I should have gone faster for the setup of the p4ignore, because there too, I took two weeks before having a suitable solution. For file conflicts, one solution would have been to make several branches on Perforce so that each person has their own space to work in and only then have something functional distribute the files on the main server.

Conclusion

After the project I have some skills in Perforce software, for the future is so used in the industry and I have the skill for the demand

Specially for:


Managing Perforce has taught me a lot about how to use it and I have really enjoyed being in this role. Especially since mastering this tool is an added value to work in the video game industry and it’s an experience I’ll be able to put forward in my future job applications.