T2 Create a Free For All Map (FFA)
1 Requirements¶
- Unreal Engine 4.25.4
- recursively cloned version of our ArgonSDK#Repository
Optional: - Re-generated mesh and texture assets (AssetGenerator)
(so you can reuse TB’s visual assets)
2 Introduction¶
In this tutorial, we will create a simple FFA Map Using Sublevels (More info: UE Docs: Sublevels)
We will create 2 Sub-Levels:
Atmospherics
(reusable)- Lights, Sky
FFA
- Spawner
Question
Splitting the level into these parts will allow you to reuse atmospherics in other levels, thus saving time when you’re just exploring. Alternatively you can create a single Level containing all actors in this tutorial
3 Atmospherics Level¶
3.1 Create a new Level¶
- Navigate to
Content/Mods
directory in `Content Browser
- Create a new folder within and open it
(
Right Click
→New Folder
or using theCTRL+N
shortcut) -
Create a new Level and give it a name (e.g.
Example_Atmospherics
)Right Click
→Level
(Open the level after naming)Upon opening, your editor will look like this:
3.2 Add lights and fog to your Scene¶
- In the
Place Actors
frame, search for and drag following actors into your scene - Directional Light
- Sky Light
- Exponential Height Fog
- Sky Atmosphere
- Sphere Reflection Capture
- In the
-
Activate
Atmosphere/Fog Sun Light
for the Directional Light inDetails
window
Info
This allows you to adjust sun’s position with by moving your mouse while holding CTRL+L
3.3 Reduce fog scattering (Optional)¶
-
Set
Directional/Fog Inscattering Color
to (almost) black for theExponentialHeightFog
actor -
Increase
Fog Height Falloff
to 0.6 or more
3.4 Use a folder to organize actors (Optional)¶
Within the World Outliner
, select all actors and move them to a separate folder.
Right Click
→Move To
→Create New Folder
4 FFA Level¶
4.1 Create a new Level
in the same directory (e.g. FFA_Example
)¶
Follow the steps described in 2. Don't forget to open your new level
4.2 Add Atmospherics Sublevel¶
-
Open the
Levels
window if not visibleWindow
→Levels
-
Drag-And-Drop your Atmospherics level into the list.
-
Right-Click
on the Level and change theStreaming Method
toAlways Loaded
-
Double-Click the
Persistent Level
entry to make it the active level
4.3 Create a floor¶
-
Drag-and-Drop a
Cube
fromPlace Actors
window into your scene -
Set Actor Scale values to (\(X=50, Y=50, Z=0.1\)) in the
Details
window(Optional) Apply a
Material Instance
of your liking (e.g.LS_StoneFloor02
)
4.4 World Settings¶
Open World Settings
window if not visible (Window
→World Settings
)
Adjust following Settings:
Setting | Description/Value |
---|---|
Map Name , Map Description |
Visible when the map loads ingame |
Attacking Faction |
FFA |
Gamemode Type |
Free for All |
Kill Z |
-5000 (this ensures that players/bots die when falling off the edge) |
Make sure current Gamemode is set to Mode_FFA_C
:
4.5 Initial Spawners¶
-
Open your
Content Browser
and add aBaseSpawner
actor to your level -
Adjust it’s Row/Column count and spacing in the
Details
window
In this example, we’ll use a 4x4 grid with a spacing of 500The spawner visualization will reflect changes immediately
-
In
World Settings
, assign the Spawner toAttacker Initial Spawn
-
Save your progress (
CRTL+SHIFT+A
to save everything)
4.6 Navigation Mesh (Bots)¶
A Navigation mesh will allow bots to plan their movements in the environment according to their current task.
Note
YT videos explaining UE4 NavMeshes are available in Additional Resources: Navigation
- Drag a
Nav Mesh Bounds Volume
from thePlace Actors
window into your scene. -
Scale and adjust it’s position to cover an area within your floor mesh
Press P to enable mesh visualization. Orange is your friend
5 Testing your Map¶
5.1 Add to the list of packaged maps¶
Right-Click
the_Atmospherics
map inContentbrowser
- Select
Copy Reference
(this will copy an internal path to clipboard)
- Select
-
Open
Project Settings
- Type “cook” in the search bar
- Add a new entry to
List of maps to include in a packaged build
- Paste the copied reference and adjust the path. For example:
- Copied:
World'/Game/Mods/FieldGuide/Examples/Maps/Example_Atmospherics.Example_Atmospherics'
- Target:
/Game/Mods/FieldGuide/Examples/Maps/Example_Atmospherics
- Copied:
5.2 Build, Cook, Copy¶
- Build the scene lighting by clicking on
Build
- Save the map
CTRL+SHIFt+S
-
Cook the map
File
→Cook Content for Windows
This step will create cooked assets under
ArgonSDK/Saved/Cooked/WindowsNoEditor/TBL/Content/<YourFolder>
-
(Optional) copy the cooked assets to game directory
- Navigate to
ArgonSDK\Saved\Cooked\WindowsNoEditor\TBL\Content\
- Copy the
Mods
folder to your Game’s Content dir (Chivalry2\TBL\Content
)
- Navigate to
Note
This step is not required if your cooked Mods
directory is symlinked to your game’s content directory
5.3 Testing your map¶
Info
The Mod Loader GUI automatically detects custom maps in the /Content/Mods
directory (also those loaded from a pak file).
- Launch the moddable version of the game using
Unchained Launcher
- Limit the number of bots to 15 (we only have 16 spawn slots)
-
Select
Custom
in the gamemode field. Your map should now be visible in the combo box to the leftAfter loading into map you should be able to spawn alongside bots.
Tip
You and the bots will spawn only once. Implementing Spawn Waves requires additional components and will be explained in next tutorial
Note
Example maps created in this tutorial are available under /Content/Mods/FieldGuide/Examples/Maps