Disclaimer: I am new to Unreal Engine and just trying to get things working. So there is no guaranty it will work with your project. Maybe there are much better solutions. Don’t blame me if terrible things happen to your project. Always make backups.
In the future hopefully more persons are going to work on the Unreal Fluid Dynamics project. So I decided to put my project on github. Yes, just as the Unreal Engine :-).
I made an account and installed Github Desktop.
Then things got messy, when uploading the project I got an error message by Github Desktop. I had no idea what was wrong. Also there was not a lot of info in the error message. So I started searching the internet and started to use the git-shell. This was the error message in git.
Based on my internet search, probably 2 things good be wrong:
1. Github has a maximum file-size of 100 Mb.
2. Maximum size project on Github is around 1 Gb.
My project has files > 100 Mb en the total size of the map is 4.8 Gb.
So I was naive to think this could be working.
Still I want to try to get the project on Github.
The maximum size can be solved with Git Large File Storage After some research (just deleting directories and files from the project map and check if I could run the project in UE editor) it looks like:
– There are directories (for example saved and build) which can be deleted without a problem.
– There are directories (for example Content/Startercontent) which are big and added when the project is created in UE editor. So it is not necessary to put them in a repository.
Looks like almost all data is stored in the .umap file (which is large).
Make account at github. Note: Don’t make a repository yet
Install github desktop.
Enter your github info. Set the clone path to the directory with you project. Note: Don’t make a repository yet
Start Git shell, go to your project directory
type “git init”
For excluding maps you need to create the .gitignore file
type “touch .gitignore”
You can open the .gitignore file in a text editor. Mine has the following content:
# ignore files
Intermediate/ More info on this file
Activating the git large file pluging
In git shell type “git lfs install”
type “git lfs track “*.umap”
It is the levelfiles (.umap) which get big.
Make the repository in github desktop
Start github desktop
Your files will appear, check if you see files which should not be in the repository. Maybe you need to adjust the .gitignore file
Create and upload first version to github.com
Enter text add summary, for example “first upload”
Hit the “commit to master” button
Select history (top of screen)
Your project is ready to get uploaded.
Hit the publish.
Have patience, there is something happening / uploading.
Check github.com if your files are really there.
Some thoughts/remarks At this moment there is not a lot of content in my project, only a large terrain.
It looks like almost all data is stored in the umap file. Because I am going to make changes to the project I will discover the effect of those changes on the files (by using github desktop)
How to get proper lighting. If I look at other projects, several assets appear:
Directional Light. Documentation
The Directional Light simulates light that is being emitted from a source that is infinitely far away. This means that all shadows cast by this light will be parallel, making this the ideal choice for simulating sunlight.
Sky Light Documentation
The Sky Light captures the distant parts of your level (everything further than SkyDistanceThreshold) and applies that to the scene as a light. That means the sky’s appearance and its lighting / reflections will match, even if your sky is coming from atmosphere, or layered clouds on top of a skybox, or distant mountains.
Atmospheric Fog. Documentation
gives an approximation of light scattering through a planetary atmosphere. This can give your outdoor levels a much more realistic look.
Lightmass Importance Volume. Documentation
Many maps have meshes out to the edge of the grid in the editor, but the actual playable area that needs high quality lighting is much smaller. Lightmass emits photons based on the size of the level, so those background meshes will greatly increase the number of photons that need to be emitted, and lighting build times will increase. The Lightmass Importance Volume controls the area that Lightmass emits photons in, allowing you to concentrate it only on the area that needs detailed indirect lighting. Areas outside the importance volume get only one bounce of indirect lighting at a lower quality.
From Unreal 4.21 a Geographically Accurate Sun Positioning is included in Unreal. Link
Making the command-line visible. With my first project, when launching within the editor, I could not stop the game. UPDATE use ALT F4 to close window. My mouse stayed in the window. I had to close the window in windows. It It turned out you had to change a setting to activate the command-line. “Edit”, “Project settings” , “input”, “console” . Choose a key
Setting the level my project has to start with. “Edit” , “Project settings” , “Maps & Modes”. Important, you also need to set the starting map for the dedicated server! It is hidden!!
Below the steps I took to build a dedicated server.
Install Visual Studio Community 2017. Important: install the correct components for UE4 development, check the “Game Development with C++” workload, and the “Unreal Engine Installer” optional component. Note: It is not necessary to install all the azure stuff
Make Account at Github . Note: Don’t install the Github Desktop app.
Make a connection between your Unreal account and Github account.
Open your Unreal account on the unreal website , go to “account” , “personal”, “profile”. You will find a field for your GitHub account name. Note: You will get some notification email from epic Note: Many tutorials show how to make a fork. Because I don’t want to change the C++ code, I did not make a fork at github. Note: I can’t remember when it is asked, but you should select the “release” branch of Unreal.
If everything went well, EpicGames is added as an organization on your github account. You should be able to go to Epicgames on github. You don’t have to do anything on this page.
Download the engine as a zip file and unpack
Go to the map where the engine is unpacked .
Run Setup.bat (just double click on the file)
Run GenerateProjectFiles.bat (just double click on the file) Note: When running the Setup.bat I got the following error: Failed to download ‘http://cdn.unrealengine.com/dependencies/2636758-e606e606851e4693b1729dd35dcef7ae/345f37ad429b27f1360cf26aa535ef037724f7c4’: Het opgegeven pad, de bestandsnaam of beide zijn te lang. De volledig gekwalificeerde bestandsnaam moet minder dan 260 tekens bevatten en de mapnaam minder dan 248 tekens. (PathTooLongException) I copied the project to a dir/subdir/subdir….. To solve this I moved the projectmap to the root!!! Stupid problem, took me hours.
Open VS 2017 by double click on UE4.sln. Note: The width of the “solution configuration”. box is small. “right mouse” bar at the box, select “customize”, see picture
In “modify Selection” you can change the width (200)
You should see the following settings. Much to my surprise? compiling is done with 2015?
Build by “right mouse” click on UE4 in VS 2017 en “build”
Run the UE editor.
Make sure “Development editor” is selected in the “solution configuration” box
In VS 2017 “right mouse” click on UE4, “Debug”, “Start new instance” Note : Besides the editor, you also have the launcher. I don’t believe the launcher is included in the C++ source. But because I have downloaded and installed the launcher on my computer, at some point it starts to appear when starting the UE editor. If you want you can just close it. Note: In VS 2017 I have opened the “Diagnostic tools”, to see what is happening
Build the cooked version.
Open your project in the UE editor. Some important settings are discussed in the following post.
Go to “File” , “Package project”, “Packaging settings” Note: Make a separate map for the cooked project
Go to “file” and: This will take some time, open “show output log” to see the action. !!!!Hopefully no error occurs!!!!
Run you project outside of UE editor. Note: This step is not really necessary, but you are just going to look how your project looks.
Go to your cooked map / WindowsNoEditor.
Run the exe file and hopefully, you get what you want 🙂
Add C++ code to the project.
At first I was not able to do the following steps. This because I could not find the C++ files of my project. It took me some time, but it turned out that I had to add these to my project!!grrr.
Go to “file” in the UE editor. Select “New C++ class”. Don’t change any setting, just run the thing.
Go to “file” again. Select “Refresh Studio Vision project”
Go to “file” again. Select “Open Visual Studio”
Your project should appear in VS 2017
Also in the map of your project, you will find C++ code. (At the source map)
Preparation for compiling the server, generate VS 2015 file from the project.
Go to the project map (not the cooked one). “Right mouse” click on the .uproject file, select generate VS files.
Build the project, combined with editor, in VS 2015
Build the project, with the “solution configuration” box set to Development editor.
Select your project, “right mouse” click and “build”
Prepare for building the server. Making “project”Server.Target.cs Link to template you have to use
According to the tutorials, I should make an copy of “project”.Target.cs and rename it to “project”Server.Target.cs. In VS 2015 I could not make this copy.
So I did this with windows explorer. Go to the source map of your project.
Copy and paste “project”.Target.cs and rename to “project”Server.Target.cs.
Double click on “project”Server.Target.cs , so the file is opened in VS 2015.
Clear all content
Copy the template from link in the file.
At 3 locations you have to replace game by the project name. In my case FD_online.
Generate VS 2015 files again.
Go to your project map with the explorer, “right mouse” on the .uproject and generate visual studio project files
Go back to VS 2015. It will ask to reload the files
Building the server!!
Set “solution configuration” box set to Development server
Hit Build and be patient
Finalizing the server.
Go to your project /binaries/Win64.
Copy this file to your cooked version (see step 11) and paste the file in the /binaries/Win64 map. So the cooked map contains all files for both server and client.
How to run server and client on your computer (test).
Recent training video’s on UMG in Twitch