Version Control Fundamentals | Live from HQ | Inside Unreal
Full Video | Published 2020-01-16 by Epic Games Inside Unreal, guest Arran Langmead, Developer Relations Technical Artist @ Epic Games, with Victor Brodin, Community Manager @ Epic Games.
UE Forum Announcement with extra links and references
The intro discussed setting up SVN, but as it is effectively required to use Perforce to work with Epic’s UDN source control, SVN is not relevant to me.
Below is the Perforce and general Source Control related info:
Setting up Perforce
- Setting up Perforce on a Digital Ocean Cloud VM
- You don’t HAVE to use Digital Ocean, you can use AWS or GCP or whatever, but this is the example they gave
- Commands to Install Perforce Server on the VM
- Install Perforce on your Workstation
- MAKE SURE YOU ADD optional?! SECURITY TO PERFORCE SERVER
- How to Add new Depot
- How to Add a project to a workspace
Version Control Concepts
- Q: How do we Version Control BPs? They are binary :/
- Shelving content
- For Lead/Manager/Peer review
- To save for later personal review
- Shelving content
- Check Out FIRST, then Change Content
- Ways to Break Up Your Project to Reduce Chances of Checkout Issues
- Split Complex Assets into multiple smaller assets
- Makes it easier for multiple people to work on it
- Example Ways:
- Actor Components
- Use Blueprint Function Libraries & Blueprint Macro Libraries
- Sub-Animations split
- Behavior Trees split
- Levels split
- Split Complex Assets into multiple smaller assets
- Blueprint Diff Tool
- How to use it
- Great to use for Code/Peer Reviews
- Demo: Other Dev Makes a Change
- Demo: Make a New Asset in Perforce
- Engine/C++ Work is Often done in Git instead of Perforce
- Setting up P4IGNORE
- Best Practices
- Unreal Game Sync (UGS)
- Reference: Unreal Game Sync (UGS) for UE5 Official Epic Documentation
Options for your own personal Perforce Server
- Rent a Cloud Perforce Server
- Suggested Googling for YT tutorials, which I did:
- Super Easy AWS Perforce Setup Instructions (15 minutes)
- Suggested Googling for YT tutorials, which I did:
- Can also buy a personal Perforce Server
- Free Option: Set up a local Perforce server on your PC
- Downside: Cannot easily share with other developers
Q&A
- Q: How to save a project with screwed-up version control?
- Q: Is it possible to distribute custom engine builds that tie into the launcher and the marketplace?
- Q: Is UDN License custom on Epic side or Perforce side?
- Q: Is Perforce centralized like SVN? Yes
- Q: How do AAA studios manage source control with Blueprints?
- Developers should use C++ and just expose BPs to artists/designers who must work solo on each binary asset
- Reference: Ben Marsh: video and “Robomerge”
- Ben Marsh: Tools and Infrastructure for Large Teams (YouTube video)
- Ben Marsh: Workflow on Fortnite (YouTube video)
- Q: As Tech Artist what sort of Source Control do you tend to do?
- Q: Why not use Git LFS for Version Control?
- Answer: Binary files REQUIRE the concept of “check out file” to stop people from overwriting each other’s work
- Q: Do I have to keep checking out a file after changing it?