Welcome to the Forgeworks Interactive development team! This guide will walk you through setting up your development environment and cloning the Project: Serenity repository from our private Gitea server. Please note, this guide is tailored for Windows, and more specifically, Windows 11. It should work on previous versions of Windows regardless.
Required Software (installation defaults for all)
Unreal Engine 5.4.4 - Main engine used for development - https://store.epicgames.com/en-US/download
- FastNoiseGenerator plugin - Only install once Unreal Engine is installed - https://www.fab.com/listings/c1d444fc-54cc-4f11-8a4a-c0c41112a321 (temporarily - this will be removed in a future update)
Visual Studio 2022 - Required IDE for C++/Unreal - https://visualstudio.microsoft.com/vs/community/
Git Bash - Terminal for Git commands on Windows - https://git-scm.com/downloads
SourceTree (optional, but recommended) - Visual Git GUI - https://www.sourcetreeapp.com/ - Skip BitBucket step in installation
Visual Studio Setup
Make sure the following workloads are installed in Visual Studio:
- .NET Desktop Development
- Desktop Development with C++
- Game Development with C++
How to install:
- Open Visual Studio, and click Continue without code at the bottom right.
- Click Tools at the top, and then Get Tools & Features.
- Select the workloads above.
- Click Modify to apply.
- Once everything is installed, close Visual Studio.
Connecting to Gitea via SSH
To access our private Git server securely, you'll need to set up an SSH key and add it to your Gitea account. If you're seeing this wiki, congrats, you have a Gitea account!
1. Generate an SSH Key (if you don't have one)
Open Git Bash and run (include the quotations, but change the email to your own):
ssh-keygen -t ed25519 -C "your_email@example.com"
- Press Enter to accept the default location (/C/Users/YourName/.ssh/id_ed25519)
- It will ask you to set a password, but it is optional and recommended to leave blank. You can simply press Enter again to skip.
This generates:
- id_ed25519 (your private key - keep this safe)
- id_ed25519.pub (your public key)
2. Copy Your Public Key
Run this in Git Bash to copy the public key to your clipboard:
clip < ~/.ssh/id_ed25519.pub
If clip doesn't work, use cat ~/.ssh/id_ed25519.pub
and copy it manually
Copy the output, but not the email. Your key should look like the following:
ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3. Add the Key to Your Gitea Account
- Go to https://repo.forgeworksinteractive.com/ in your browser.
- Log in to your Gitea account.
- Click your avatar -> Settings -> SSH / GPG Keys
- Click Add Key
- Add your public key
- Give it a name (e.g. Cow's Potato Dev Machine) and click Add Key
4. Test the SSH Connection
Back in Git Bash, run:
ssh -T git@66.85.76.122
You should see something like:
Hi <your username>! You've successfully authenticated with the key <Key Name>, but Gitea does not provide shell access.
If this is unexpected, please log in with password and setup Gitea under another user.
If you see a warning about an unknown host, type yes to continue and trust the server.
5. Clone the Project
Now you're ready to clone the repository:
- Open File Explorer and navigate to a memorable location on your fastest hard drive (recommended for compiling).
- Create a New Folder, and name it "Repositories" or something similar.
- Open the folder, and right click in the empty space. Click Git Bash here (on Win11, you may need to click 'Show more options').
- Now you're ready to clone the repository:
git clone git@66.85.76.122:Forgeworks_Interactive/ProjectSerenity.git
This will download the full project into the local folder you created in a new folder named 'ProjectSerenity'.
Notes
- Do not share your SSH key with anyone, ever. Not even teammates.
- If using multiple devices, generate and register a new key on each.
- If something doesn't work, trust that it isn't your fault! Reach out to Math or Cow for support.
Add the Repository to SourceTree
Once you've cloned the repo via SSH, you can manage it more easily using SourceTree:
Step-by-Step Guide
- Open SourceTree.
- Click "Add" in the top menu.
- In the Add Working Copy tab:
- Working Copy Path: Browse to your cloned project folder (e.g., C:\Repositories\ProjectSerenity) - Once you've added the location, click in the empty space and wait for SourceTree to make sure it is a Git repo. If it says it is, continue.
- Name: Give it a custom name (e.g., Project Serenity)
- Local Folder: Leave this at [Root]
- Click "Add"
Now you're good to go!
From SourceTree, you can:
- View, switch, and create new branches
- Stage and commit files
- Push and pull changes
- View commit history and diffs
Note:
If SourceTree prompts you to authenticate again, make sure it's using SSH and not HTTPS. You can check this in:
Repository Settings -> Remotes -> make sure the URL is
git@66.85.76.122:Forgeworks_Interactive/ProjectSerenity.git
Launching the Project
After cloning the repo and installing all required software, you need to generate the .sln file for Visual Studio.
Steps:
- Navigate to the root of the project directory where ProjectSerenity.uproject is located.
- Right click ProjectSerenity.uproject, and choose "Generate Visual Studio project files" from the context menu. On Windows 11, you may need to select "Show more options" first. If the option doesn't appear, you may need to associate .uproject files with the Unreal Editor. Right click -> Open With -> Choose another app -> Unreal Engine and click "Always".
- Wait for the process to finish. You should now have a new file in the directory called ProjectSerenity.sln.
- Double click ProjectSerenity.sln to open in Visual Studio.
- Take a look at the top right, and look for any yellow warnings about missing add-ons. If there is, install them.
- Build the Solution. In the toolbar at the top, click "Build", followed by Build Solution (or press Ctrl+Shift+B).
- Wait for the build to complete successfully. Check the output log for any errors or if the build was unsuccessful. In either case, please reach out to Math or Cow and we can help you solve the problem.