Last Dance


Download Last Dance


Last Dance is a multiplayer map for Unreal Tournament 3 based on the layout of the original DM-17 map for Quake 3. Last Dance takes place in a rooftop disco club on top of a skyscraper that overlooks a futuristic cityscape, and everything about this map, from the frenetic gameplay to the disco floors, reinforces this funky mood.

The level has a disco ball that shoots rockets. Need I say more?


  • Engine: Unreal Tournament 3
  • Map Type: Multiplayer Deathmatch (2-8 players)
  • Dev Time: 80 hours over 1.5 months

Level Features

  • 17 new or modified materials
  • Custom disco ball mesh and textures
  • 7 unique scripted sequences (including interactive dance floors, homicidal disco ball, and dancing spectators)


  • Catch Disco Fever: Create a humorous map that captures the essence of disco in both its look and play style
  • Use Scripting to Keep it Funky: This map constitutes my first efforts with Kismet and matinee, and I wanted to use them to reinforce the disco theme and enhance the gameplay
  • Create a Bumping Club: Create an environment that looks beautiful and feels alive, even if it means creating custom assets

The disco ball and dance floors were key in reaching my goals for the level.

Mini Postmortem

What Went Right:

  • The disco theme came through really well
  • The scripted additions to the gameplay (especially the disco ball) added a fun, new element
  • The flow of the level captured the fast and frenetic pace of both the original game and disco

What Went Wrong:

  • Overreliance on BSP left some sections feeling blocky and less detailed
  • Making more changes to the standard DM-17 layout could have made the level feel more unique

Fun Fact

I was fresh off my first team game project when I received the assignment to remake the famous DM-17 map.  That first project was an emotional platformer about a bear made of stars that sacrificed itself to save its child.  Apparently, I thought that emotional style would translate well into a game where the announcer frequently yells out thinks like, “Triple Kill!” and “Rampage!”

My original concept for the level was going to take place in a land of rolling green hills, white marble, and a cleansing fire that rolled through the landscape and took the player on a journey of rebirth and discovery.

I imagine it would have looked like a combination of this, the city of Gondor, and a dash of dissonance.

Not even considering the horrible scope issues this presented for a wee lad who was about to get his first hands-on experience with an Unreal engine, let’s move on to the biggest problem with this concept: my concept wouldn’t work not because it was bad (although it was kinda pretentious), but because it just didn’t fit the style of the game.

If I hadn’t come to my senses, I would be here trying to write about how the announcer yelling out, “Killing Spree!” is actually a deep commentary on the nature of death in our modern society.  But instead, I get to write about how I made a disco ball shoot rockets at people.  I think I made the right choice.

Map Flow

Unreal Tournament 3 is on the faster side of the FPS spectrum.  That frenetic, fast-paced feel permeates everything from the weapons to the freedom of player movement, and it complements the speed and fun of disco music as well.  I designed the map in a way that would capture both the style of the original game and the world of disco.

Jump Pads


The jump pad end points are always within close reach of another jump pad, a teleporter, or a way to get down to a lower level. Players can travel to nearly any place in the map within five seconds because of these.


The teleporters allow players to move between multiple floors and areas that are otherwise difficult to reach. When coupled with the jump pads, they make for quick travel time between the highest and lowest points of the map.

Alternate Routes

These support rails offer players a dangerous, but stealthier route to and from the sniper position. The darkness of the city helps camouflage players, and they can use the route to sneak up on unsuspecting snipers or escape from jump pad campers.

Instead of going through the teleporter at the top platform or risking fall damage by jumping off, players can follow the support beams back to the third floor of the club. This can help players get an unsuspecting drop on others or safely escape a more immediate threat.

Pickup Placement

Health vials and armor lie along and beside the main paths through the level, including the paths of the jump pads.  These allow players to regain health when moving from place to place and encourage movement as a means of protection and health regeneration.

I placed the weapons in area of relatively high risk, either because players have to move slightly off the critical path or because they are near precarious dropoffs. These high risk, high reward pickups offer an interesting ebb to the usual fast-paced flow of the map.


Unreal Tournament 3 does a fantastic job of communicating key points of interest in their multiplayer maps.  Movement, lights, and particle effects all draw attention to the weapons and health packs and jump pads positioned around the map.  I maintained that level of communication in this level, but I adjusted some of them to stand out more in a bumping disco scene and better communicate gameplay information.

Jump Pads

For the level’s jump pads, I created a rainbow version of the standard particle to stand out better against the constantly changing colors of the dance floor.

To better communicate a jump pad’s horizontal movement, I created an alternate material for UT3’s glowing pipe assets and arranged them to act as a directional guide of sorts.

Weapon Pickups

I created another alternate material for the pipe assets and arranged them around the weapon pickup base. The assets  made the weapons more noticeable because of their glowing material, and they fit nicely with the theme.

Player Movement

I created several fireworks particles and set them to go off when players used the jump pads to and from the sniper platform. This helped players know when to look out for snipers and reinforced the bright and happy disco mood.

Deadly Disco Ball

I simply couldn’t do a disco level without including some kind of disco ball, but I wanted it to be an interactive piece of the environment instead of a static setpiece.  Thus, I came up with a simple concept: create a disco ball that shoots rockets at players.  Simple, elegant, and classy.  I modeled and created two materials for the ball (lit and unlit), and I scripted the ball sequence to begin every time the level played the song “Burn, Baby, Burn!”

The matinee triggers the correct music track, toggles the disco ball’s materials, starts it spinning, and shoots rockets from the disco ball every time the song says “burn.”

The rockets shoot from the disco ball to several sets of pre-designated points in the map that change every barrage. The rockets also shoot at the current player positions to keep players on their toes.

Boogie Fever

One of my goals was to create an environment that felt dynamic and alive, so I wanted to fill the disco club with dancers!  Again, UT3 does not have a lot of ready-made dance animations, so I improvised by using some of the existing animations in creative ways.  In addition to using the obvious taunts, I also slowed down, broke up, and adjusted many of the death and impact animations to simulate a host of dance moves.

By using SkeletalMeshMAT Actors and blending the idle animation with the beginning and end of the dance move, I was able to create a variety of moves that could be played one after the other without looking unnatural.

A group of several dancers chooses randomly between one of eight possible dance animations. Creating several of these dancer groups allowed me to simulate a varied dance environment by reusing the same scripts.

Dance Floors

The dance floor is another iconic element of disco, immortalized in scenes like the John Travolta dance scene from Saturday Night Fever.  But this is the world of video games, and I knew gamers could never be content with just one disco floor–so I made three.

The bottom disco floors operates on a timer that automatically switches the colors of the dance floor.

The two upper dance floors operate based on touch. When players touch a trigger volume just above a square of the dance floor, the lights change to the dance floor’s alternate color until the player leaves that volume.

The second level floors serves as both a fun visual effect and a tool that helps players rapidly acquire enemies walking on these sections.

Click the image to see the lower disco floor in action.

Bottom Disco Floor

The moving lights draw attention to the central jump pad hub, where players can use to get to nearly every other area. The colors of the disco floor also sets the color palette for the rest of the level with its matching blue/purple and yellow/orange tiles. 

Second Level Disco Floors

Each side of the second level is a different color theme, one purple with yellow accents and the other the inverse.  This distinguishes the two otherwise identical sides and helps players navigate through the level.

Placing electric movie posters and glowing advertisements reinforces the futuristic, techy feel of the club.

The Electric Gardens

I made a garden of various electrical plants to simulate a sort of botanical menagerie on the top level of the club.  I created the plants by modifying existing UT3 textures and applying them to the different elements of several plant meshes.

Immediately above this floor is a host of dancers, partying the night away and lending a dynamic feel to the environment.

The City

While the club itself alternates between warm and cool colors, nearly the entire cityscape is made up of warm yellows and oranges to set it apart from the club area.

I put the sniper platform far out in the city itself primarily for visual impact; players look down on the distant moving cars of the city streets as they used the jump pad to fly to the remote destination. Scripting several ships to fly around the sniper platform adds another dynamic element to the level and the skyline.

The Center Pipeline

The electric river’s simulated shoreline of blue flowers draws players upward toward the top platform.  The platform holds a U Damage on top and a Super Health below the disco ball (accessible by anyone who braves the explosive wrath of the disco ball).