This map blockout is designed to support a range of game modes, from large team based combat to smaller close quater games. It uses a collection of Data Layers and Data Assets to manage how much of the level is playable to users, with full network replication support for online play this is a base for testing and building new multiplayer ideas, some of the game modes supported in this test map are
- Domination
- Hardpoint
- Team Deathmatch
- Kill Confirmed
- Capture The Flag
- Free For All
- Search And Destroy
Grid Based Design
The entire level is built using a 32uu scale grid, all assets are built to support this with their dimensions set so that they all snap together with ease

Custom material that's driven by the mesh Y axis to ensure team zones are seperated while using a single material





A Red verus Blue colour scheme on the team colours helps break the level into its sections. with the use of the corner lanmarks it helps players navigate the large design of this map so they can always get their bearings even when they do not have direct line of sight to an objective
Data Asset Game Modes
The game mode for this project was built atop of Data Assets rather than creating seperate game modes for each game type I wanted. This prevents the following issues
Game Modes cannot be changed at run time, the one set to the map is the one you get when playing the game. This works for most cases however, imagine you had 10 maps, 10 game modes, you would then have 100 level files within the project just for these maps and modes. Not Ideal...
Game Modes cannot be changed at run time, the one set to the map is the one you get when playing the game. This works for most cases however, imagine you had 10 maps, 10 game modes, you would then have 100 level files within the project just for these maps and modes. Not Ideal...
If these maps were duplicates as well, then any changes to one map would not be reflected back to the others, even if they are the same map, because they were duplicated, you would have to ensure all changes are copied over to all other instances of the same level, time consuming and potential errors can be made here
The solution
The solution
One map, One Game Mode, Data Asset driven design...
One data asset for each game mode you create, all inherit from a parent class, ensuring common functions are shared across all, simply load this asset into the game mode on begin play and the rest is taken care of for you. Suddenly got a new idea for a new game ? just make a new data asset inheriting from the base class and add is functions into the GameMode and it will run when that mode is selected from the lobby
One data asset for each game mode you create, all inherit from a parent class, ensuring common functions are shared across all, simply load this asset into the game mode on begin play and the rest is taken care of for you. Suddenly got a new idea for a new game ? just make a new data asset inheriting from the base class and add is functions into the GameMode and it will run when that mode is selected from the lobby
This is a high level view of how it all works, under the hood it's using a collection of soft references for assets to ensure nothing is hard referenced where possible, basic actor references to actors so nothing is dependant on a hard link to BP_This rather it will just target Unreal Engine's Actor, using an interface message to ensure communicaiton between different classes.
Network funcitonality is implemented within this project ensuring the server always has authority over any clients, yes your aim is that bad...
Network funcitonality is implemented within this project ensuring the server always has authority over any clients, yes your aim is that bad...

A custom macro library for soft references is also heavily used within this project, allowing ease of use when soft referencing assets so I can avoid hard referencing alot of assets that would usually be seen as a hard reference.