FreezePoint — A new game mode and map for UT4

A game mode meant to challenge the existing level design rules of Unreal Tournament

Hristo Enchev
Hristo Enchev
9 min readAug 15, 2019

--

Frozen Enemy Showcase
Final Trailer showcasing both map and game mode

Project Rundown:

This wasn’t your regular university project. Its planning was not ideal from the start. The game mode should be created first, then the level blockout and white box and afterwards, artist art pass. But in our case, all of these were crammed into the 7-week release window. I was also doing production for the whole project, which consisted of 4 environmental artists, 1 technical artist, level designer and me as the TD. If I were to split my work into percentages, it would result in about only 30% going into the Game Mode. Despite these challenges, in the end, we released both the game mode and the map, both optimized for performance, package size and support for other maps/modes respectively.

Project Plan made in Week 1

The Game mode:

If you combine Domination from the Call of Duty series with the classic Freeze Tag game mode from the old arena shooter days (more recently a game type in Doom 2016), you get FreezePoint. It offers a team-centric gameplay experience which focuses on capturing and controlling points, rather than mindless fragging. Weapon pickups (a key aspect of arena shooters) are removed entirely as the focus of the match is work as a team and capture points, not wander solo in search of your favourite weapon.

Capture Points

Node map created by the level designer

Upon match start, a random capture point is selected from 1,2 or 3. Point 4 and 5 are ignored as they are not equally distanced from each spawn. As only one capture point can be active at a time, as soon as the first one is captured, all points become eligible to be selected, which happens after a brief intermission where players still fight.

There are no rounds, in the traditional sense at least, the match ends when the timer runs out. That said if you freeze the entire enemy team, the round is reset, everyone is respawned at their base, that way players can change their archetype, point selection is 1,2 and 3 again and Power-Up timers can reset. Yes, unlike weapon pickups, Power-Ups are an important aspect of FreezePoint, in fact, we shipped the map with not 1 but 3 Power-Ups.

And last but not least, as soon as a point is captured, all frozen players are instantly thawed. This keeps the action going and warrants players to take a mental note of the frozen enemy positions.

Capture Point states example with sound

Archetypes

Speaking of no weapon pickups, say hello to archetypes, or character classes. Whatever you want to call them they are 3 presets, each containing 2 weapons and a character model so that players can identify enemies based on their mesh. You might be wondering how I handle map ammo since each player can select a different archetype and weapon contextual ammo will no longer work. Therefore I have created ammo packs which are universal and give ammo to every weapon the player has in their inventory.

Frozen Players

Procedural icicles and ice melting effect

This one is pretty straightforward, when your health hits 0, instead of dying, you freeze on the spot, the camera switches to third person and you can't shoot, move or switch weapons. In this state, weapons still knockback the player, or in case of the Link Gun’s alt fire, you can pull a player towards you. This is where the archetypes shine, as they all have their unique focus, one can focus on crowd control and move out frozen enemies with projectiles, while another can set traps with the BioRifle and pull friendlies to safety and thaw them with the LinkGun. Frozen players also interact with capture points, in the sense that the capture point doesn't care if someone is frozen or not while in the capture radius. Meaning you have to push players away from the point after freezing them. This leads to more ammo consumption, of course, therefore the custom ammo actor I mentioned before is extra generous. If you are pushed out of the map while thawed, you will die and spectate your team until the round is reset. I have written a technical breakdown of the effect shown in the gif here

UI/UX

Covering this here would result in one very long post, so if anyone is interested in a more in-depth showcase of the UI work I did for the mode, feel free to check out this document

Game/Level Design

A more thorough explanation of the game mode and how Unreal Tournament level design is changed to support the new gameplay can be found here

Balancing

It is clear that within 7 weeks, I can’t guarantee that the gameplay experience will be balanced, thus, the majority of variables impacting the game’s balance are exposed to servers. From thawing times, capture point time waiting period between point selection, and even complete archetype customization, everything is available to be altered per ruleset, meaning that server can create an arcade FreezePoint mode with fast capture times and OP weapons, or a competitive one with only a single weapon type and longer thawing/capturing times. You can even set the timer for auto thaw, which will thaw each player after a certain period of time (turned off by default)

The tech behind the mode

100% done in blueprints, that way it can be viewed and modified by the community or future students. It is also entirely event-based and does not cost additional performance compared to the modes created by Epic themselves. Everything is properly replicated and optimized for low bandwidth usage. I am particularly proud of the capture points, which manage to be completely state-based with a single RepNotify being the only replicated variable. I also implemented async events, in a method detailed on my twitter here. This single little macro is one of the most useful things I have made/discovered throughout the project.

Capture points are spawned onto the map on load instead of packaged with it, while there is a simple marker blueprint available for level designers. This allows levels made for FreezePoint to work with any newer version of the game mode and not require repackaging.

On top of that, the whole game mode is made to work on any map, not just ones custom-built for FreezePoint. I am not going to go into detail about this, but essentially if the game mode does not detect capture point markers in the map, then the ruleset is changed towards a classic FreezeTag game type, which is round based on (best of X wins), just like Doom 2016s version.

A community member noting the polish. (Blitz being the last official game mode by Epic)

There is a lot of polish throughout the mode, as I aimed to deliver an experience to the players similar to the one provided from official Epic modes. Some examples are the procedural icicles you see above are used directionally based on the last hit which froze the player, I also use a destructible mesh to scatter the ice directionally upon player freeze. There is also replicated slow motion when you eliminate the enemy team :)

SlowMo Showcase
A slightly longer version of gameplay from the trailer (to be replaced)

The Map

You can view the full album here

Performance Optimization

Apart from being the map team’s producer, I also helped out with the performance optimizations and map package size. As it is a competitive multiplayer game, it was really important that the map played well and everything was visible across all scalability settings. Unreal Tournament has a feature called Simple Forward Shading which is enabled on low settings. This disables all dynamic lighting and reflections, and unless specifically addressed, players playing on low wouldn’t see anything from the layout in specific areas.

Final optimizations applied here. Compare for yourself here
No optimizations done for Low settings. Compare yourself here

Package size

One of the goals we wanted to achieve was to have as small package size as possible, as the lower it is, the more likely it is that players will wait for the download to complete from servers and actually play the map. After carefully examining referenced objects and their sizes each build, cleaning up material references, compressing textures and removing more than half of the vegetation the team originally created + carefully optimizing the light bake information, we managed to cram the entire Final Build with production lighting at a whopping 282 MB. Considering maps of this quality and official ones from Epic start from 400–600 MB, this was a huge win for us.

FPS wise, I am happy to say that the map runs with 120+ fps on Epic on a GTX 1060. And while I have implemented a lot of tricks to get to that point, most of the heavy lifting on that end was mainly due to the amazing work of my Tech Artist Wouter, and the clever usage of materials and lightmass baking

Production

Lastly, I would like to cover a few points here, mainly technical of course, as, after all, I am a technical designer and not so much a producer

Quality Assurance and Community engagement

A simple web page working on both desktop and mobile.

The UT community development community was aware of this project since its beginning, and around Week 5 builds were released to them for testing, both for the map and the game mode. Using a feedback widget typically used for web dev, and linking it to our production tool, which is ClickUp, I was able to provide my team with an automated system for collecting feedback, both from the community and internally within playtests around our uni. This sped up the process of bug-fixing and addressing feedback tenfold as it was automatically sorted in a similar fashion as our main production pipeline. The feedback collection method proved especially useful for crowded showcases and events, as after the player is done playing you can hand them over a tablet and then can write down what they think quickly and be on their way.

Of course, the actual community engagement can’t be automated, and often users just leave feedback in discord chats, and those I had to manually input into the system, but it was mainly copy-pasting the post into our website.

Closing Words

Thanks for sticking till the end, this project is no ordinary one and there were challenges every step of the way, but I am very proud of the end result. Immediately after the game mode’s release, I was made aware that a few mappers have taken it upon themselves to adapt old maps for FreezePoint and even create new ones. And as the mode proved successful in its main goal (to shake up the existing UT level design) there is a possibility that it will be used for the Level Design project Y2 design students work on each year.

If you want to play the game mode, it is available on the biggest UT server PHX Pheoneix Germany and most other populated servers

--

--

Hristo Enchev
Hristo Enchev

An ambitious technical game designer, who also likes photography, graphic design and … well video games