Project Delivery Guidelines
This page will explain how to correctly setup your project such that it can be built by the YOM build server.
Step 1: Project and GitHub setup
Our build system uses GitHub as method of delivery. It is version controlled, supports large files, and allows for branching and storing separate version numbers as tags, which drastically helps maintain different test and production versions of a metaspace with ease. To set it up, take the following steps:
- Create a new Unreal project (Blueprint or C++) that will hold your metaspace, or pick an existing project to extend with the YOM plugin.
- Add a .gitignore file to the root of the Unreal project folder to ensure that git does not track unnecessary files in your repository.
- Initialize the git repository in the project directory, where the .uproject file should be in the root of the repository.
- Create a GitHub account if you hadn't done so yet.
- For storing large files it is required to enable Git LFS on the repository.
- Push the files to GitHub using the commands shown on the GitHub repository page. Note that the GitHub repository name should match the .uproject file name you had chosen earlier.
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/YourProject.git # name needs to match the .uproject name
git push origin main
Step 2: The Plugins folder
Inside your project folder you should create a folder called Plugins
in which you can install the YOM Replicator SDK, GltfRuntime, and VaRest plugins.
Result
You should now have a folder structure that looks like this:
YourProject (Github Repository root)/
├─ .git/...
├─ Plugins/
│ ├─ glTFRuntime/
│ │ ├─ glTFRuntime.uplugin
│ │ ├─ ...
│ ├─ VaRestPlugin/
│ │ ├─ VaRest.uplugin
│ │ ├─ ...
│ ├─ YourOpenMetaverse/
│ │ ├─ YourOpenMetaverse.uplugin
│ │ ├─ ...
├─ YourProject.uproject
├─ ...
Note that if you chose to pre package map data (for baked lighting), there will be an additional MapData.zip file in the project root folder. See the section on packaging map data for more information.