Instructionally grounded

1.      Is the learning intervention addressing a educational need?
2.      Are the learning objectives optimized to address the educational need?
3.      Is a 3DLE the most efficient and effective mechanism for transferring the learning?
Share Button

Archetype Scavenger Hunt

28.   Is the scavenger hunt meant to let the participants  explore the virtual world?

Idea.Maybe the avatar could search for formulas on the island? And put them in his inventory to use when needed?

Share Button

Tutorial Hourences

I have bought the level tutorial from hourences.
In this post the notes (things I want to remember) when watching the tutorials.

Video chapter 1, basics

  • Navigate in editor by using left mouse, right mouse and both. With this methode, use high camera speed
  • Alt and mouse  for staying looking at object.
  • Ctrl + right mouse : move object y-axis (green)
  • Ctrl + left mouse : move object x -axis (red)
  • Ctrl + both mouse : move object z axis (blue)
  • Ctrl + Shift ……  Camera will follow the object
  • Spacebar : rotation mode
  • 2 x Spacebar : scale mode
  • copying:  Ctrl C / V, Ctrl + W,  Alt

Video 2 building

  • With BSP textures, select all faces and choose align in the proprieties box.
  • Mesh, duplicate mesh, place on the proper location and replace by proper mesh.
  • Size of objects 5 10 …same as the grid
  • Ctrl Shift G is temporary ungroup to take out one part. Finish with Ctrl Shift G again.

Video 3 landscape

  • With landscape : change lod in details to increase performance.
  • Afterwards you can add landscape
Share Button

Fluid Dynamics Formulas

General assumptions

  1. Flow is turbulent.
    So formulas of Manning, Chezy and Darcy-Weisbach can be used.
  2. Flow is sub-critical.
    So calculations of water-levels start downstream and goes upstream. At weirs super-critical flow may occur.
  3. Flow is steady
    Discharge is not changing rapidly. Of-course over time discharge (and thus water-levels etc) can change.
  4. Sea is salt water, on the island fresh water
  5. There are two main watersystems. The watersystem on the island and the sea (waves, tide, current). The connection between the two are by the culvert in the dike and seepage. High tide in combination with low water level on the island could make water flow from sea to the island. High tide can cause seepage to the land, low tide seepage to sea. Maybe in high tide in combination with big waves can cause water flowing over the dike to the island.
  6. Water enters the systeem by: rainfall and seepage.
  7. Water leaves the island through : Culvert in dike, pumping station, seepage and evapotranspiration.
  8. System is dendritic.
    So water has one direction to flow.

Calculations in FD_watersystems

  • For each branch waterlevel (ylevel) and Energylevel (Hlevel) are calculated at the beginning (.x) and end (.y) of the branch. This info is stored in WatersystemData.
  • Hlevel.x = Hlevel.y downstream branch.
  • yLevel.x = yLevel.y downstream branch. Consequence of this strategy is that when there is a significant change in dimension or discharge, a short branche is needed. In this short branch the transfer between the 2 different velocityheads takes place. With change in discharge this short branch is located downstream, with change in dimension this short branch is located upstream
  • Weir is an exception. Hlevel.x is calculated based on the crestlevel.
  • Over the length of a branch, the basic dimensions are the same, only the surfacelevel at x and y may differ. Exception is the connector, you have different width and slope downstream and upstream!!
  • CulvertRectangle: If downstreams  waterdepth < Height culvert : Type is converted to Trapezium. Note: With high velocities, water level will rise and the type maybe should be concerted back to culvertrectangle. This can be solved by splitting het culvert in several branches.
  • In a branch (between 2 points) discharge is always the same. 
  • 2 special branches when calculating. First is the outflow: Discharge = 0. Value in InputDischarge.x is the velocity in the receiving water. Second is the weir : There is a jump in HlevelWorld compared to the downstream waterlevel.
  • Weir is always assumed as free flow.  And as a short crest. Waterlevel .x and .y are the same.
  • Based on ylevel.x. Slope Hline is calculated. Hlevel.y is calculated.

Workflow calculation

In the case of type = trapezium

  1.  HlevelWorld_m.x = HlevelWorld.y previous branch
  2. yLevelWorld_m.x = yLevelWorld.y previous branch 
  3. Get Discharge from point upstreams
  4. Calculate Depth_m.x ,WettedArea.x, WetterPerimeter.x, HydraulicRadius.x, Velocity.x
  5. Calculate Hslope, dH, Time
  6. HlevelWorld_m.y = HlevelWord_m.x + dH
    ylevelWorld_m.y = yLevelWorld,x + dH
  7. Calculate Depth_m.y ,WettedArea.y, Velocity.y, VelocityHead
    ylevelWorld_m.y= HLevelWorld_m.y – VelocityHead
  1. Outflow down-streams is calculated separate
  2. Check if branch is weir. If weir calculate H above weir, convert to HlevelWorld_m.x = HlevelWorld.y.  yLevelWorld_m = CrestlevelLevelWorld_m + 2/3 * H.
  3. If branch is not weir
  4. If branch = connector; calculate average width and average slope
  5. Calculate Depth_m.x ,WettedArea.x, WetterPerimeter.x, HydraulicRadius.x, Velocity.x
  6. Calculate Hslope, dH, Time
  7. HlevelWorld_m.y = HlevelWord_m.x + dH
  8. ylevelWorld_m.y = yLevelWorld,x + dH
  9. Calculate Depth_m.y ,WettedArea.y, Velocity.y, VelocityHead
  10. ylevelWorld_m.y= HLevelWorld_m.y – VelocityHead

Culvert and Rectangle Culvert

  • dH is a 3d vector. x = dH outflow, y dH friction, z dH inflow
  • dH x outflow based on carnot
  • dH y friction based on Chezy, with coeff = k (m)
  • dH z inflow based on contraction coefficient of 0,6, so xi = 0,44
  • If branch downstream = culvert, dH x = 0
  • If branch upstream = culvert dH z = 0
  • Extra info needed is type up-streams and down streams. local_type_up and local_type_down
  • Extra info needed is W and H up and down if type is culvert. local_WH_up and local_WH_down
  • Hlevel.x culvert = Hlevel.y type_down + dH.x
  • Hlevel.y culvert = Hlevel.x + dH.y. So dh.z is not added yet
  • Ylevel.x and Ylevel.y are based on Hlevel.x .y – velocityhead
  • dH.x and dH.z are based on the type of the adjacent branch.
  • dH.x and dH.z is not yet calculated with Rectangle Culvert.


Area pipe

Chezy coefficient
Chezy energy slope

Manning energy slope
Slope energy line
Sharp crest free flow
Partially filled pipes
Share Button

How to get my project on Github

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).

Very useful website on git commands.

So I took the following steps.

  1. Make account at github.
    Note: Don’t make a repository yet
  2. Install github desktop.
    Enter your github info. Set the clone path to the directory with you project.
    Note: Don’t make a repository yet
  3. Start Git shell, go to your project directory
    type “git init”
  4. 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
    More info on this file
  5. 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.
  6. Make the repository in github desktop
    Start github desktop
    Add repository
    Your files will appear, check if you see files which should not be in the repository. Maybe you need to adjust the .gitignore file
  7. Create and upload first version to
    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 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)


Share Button

Terrain Lighting: day and night cycle

I want to have a proper day and night cycle system, so I am going to follow the tutorials from kleiner baer , looks great. Someone else added a video to make ready for the multiplayer. see

As location it will take Vlissingen. 51.4500° N, 3.5667° E

Update 2017. Too much problems to get this working. So for the moment I will skip this. Just use a fixed situation.

Share Button

Tutorials Terrain Lighting

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
Share Button

Settings UE editor

Settings I use in the UE editor.

  • Making the command-line visible.
    With my first project, when launching within the editor, I could not stop the game. 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!!


Share Button

Building Dedicated Server

The steps I took to build a dedicated server. My goal is to get my project online and used as a multiplayer.  I have windows 10 on a desktop.
My goal is not to change C++ code in the unreal engine.

Some useful sites:

Below the steps I took to build a dedicated server.

  1. 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
  2. Install Visual C++ 2015 building tools
    As I understand, you really need to install this!
  3. Make Account at Github .
    Note: Don’t install the Github Desktop app.
  4. 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.
  5. Download the engine as a zip file and unpack
  6. 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 ‘’: 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.
  7. 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)
  8. You should see the following settings. Much to my surprise? compiling is done with 2015?
  9. Build by “right mouse” click on UE4 in VS 2017 en “build”
  10. 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
  11. 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!!!!
  12. 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 🙂
  13. 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)
  14. 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.
  15. 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”
  16. 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.
    Save file
  17. Generate VS 2015 files again.
    Go to your project map with the explorer, “right mouse” on the .uproject and generate visual studio project files
    o back to VS 2015. It will ask to reload the files
  18. Building the server!!
    Set  “solution configuration” box set to Development server
    Hit Build and be patient
  19. Finalizing the server.
    Go to your project /binaries/Win64.
    Find “project”Server.exe.
    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).

  • Open cmd
  • Got to map with server
  • Type FD_onlineServer.exe -log
  • Hit FD_online.exe
  • Open commandline (in my case tab)
  • Type open
  • Your are connected to the server.
    Note: If screen is black, check following settings

I could open 4 clientssamen2





Share Button

Tutorial OMG / HUD

Streaming video and pictures

Recent training video’s on UMG in Twitch

Share Button