A Mapper’s Roadmap

Introduction

This post will be a summary of my upcoming plans for my personal creative project. I have been developing a map for the aging multiplayer first person shooter game Team Fortress 2. This project of mine started in January of 2021, and has gone through just about every possible twist and turn you could imagine since then. In the depths of the CoVID-19 pandemic, I decided I wanted to pursue an old creative interest of mine, level design. I never took the time to learn the Hammer editor, the level design software for Source engine games like TF2, but suddenly with the pandemic I found myself with plenty of extra time on my hands, the perfect situation to learn this frankly archaic and frustrating software. As much of a struggle as this software can be, I still regularly work with it nearly two years later, believe it or not I find level design genuinely enjoyable despite the struggles.

redacted & early failures

My first project went by the name koth_redacted, and it showed all of the roughness you would expect from a first attempt at a creative project. It was a map for the King of the Hill (koth) gamemode, which prefers smaller maps. Redacted was massively oversized for a koth map, and it showed in more ways than one. In fact, Redacted got so oversized and complex that the Hammer editor struggled to even load the project to be worked on, and this is all on the development side of the project, to say nothing of the actual product in game. After about ten months in on-and-off development, I decided to shelf the Redacted project. I wanted to take the many lessons I learned from it, and begin my second project.

resurrected & Optimization

This second project was a Halloween themed map, as Halloween always brings with it the much anticipated yearly Scream Fortress updates. Scream Fortress always adds in some of the most creative and unique maps I have seen, and I look forward to it year after year. I wanted to try my own hand at a more creative style, and I wanted to improve upon Redacted, thus began my second project, koth_resurrected. Resurrected had its own roughness and it too will likely never see the light of the Steam workshop, but we’ll get there. While I finally nailed the scale of a koth map, with Resurrected coming in much smaller and more compact than Redacted, I failed to properly optimize the map. In the Source engine, the map is rendered as a series of “rooms”, even in outdoor maps, the engine relies on the mapper telling the software what the player can and cannot see from any given “room.”

This image from an interlopers.net guide to Source engine optimization shows what I mean. The players are represented by the pink rectangles, with props represented by the teal lines. In game, this room would be one large space with the players and props separated by a small wall, the players cannot see the props through the wall, and our goal is to make sure they are not rendered to save resources. Without proper optimization, the Source engine would think the players can see the props through the wall. With proper optimization, the Source engine will divide the large room into three smaller rooms, represented by red, blue and green rectangles in the picture. Now, because the engine believes that the players and props are in two different rooms, it will not render the props, successfully saving resources for the players and improving the map’s performance. This was my major fault in Resurrected, because I did not help myself to optimize the map. It was not made at a fundamental level with Source engine optimization in mind, and thus became too complex and problematic for me to optimize. Again, the solution I chose was to shelf Resurrected and move on to my third attempt at a koth map.

rusted & creative limits

Finally, we get to the fun stuff, this part is about my third map, koth_rusted, which owes a lot of its strengths to the previous failures of Redacted and Resurrected. Rusted combines the core gameplay elements of Redacted with Resurrected’s compact size, and this time, Rusted was designed with Source optimization in mind. These factors combined for my best project so far, though not without its faults. I had to contend with balancing my development of Rusted with School and Work, which at times has been difficult. There are days where I have woken up early to find all of my classes cancelled, and then I promptly sat at my computer working away on my project for upwards of 9 hours with few breaks. Of course, nobody was making me do this, this was my project and I was voluntarily working on it until I finally tore myself away from it to eat. This demonstrates the biggest challenge for me in Rusted’s development, contending with my own creative limits. Once I figured out the fundamental limits within the medium of level design, I had to figure out my own limits. It is simply not healthy or viable to routinely work for over 25% of the day on a project which has me sitting at my desk doing nothing more.

On top of that, since moving on from Resurrected in November 2021, I have been poking at and tweaking Rusted’s layout for a year now, I recently came to the conclusion that if I kept doing so, kept changing small things and never actually releasing the map to the public, I’d be working on it until I was gray and old. So, I made the choice when I was confident in the layout to change nothing more. I would do the textures, detail work and make the map feel like a real place rather than a simple, solid colored arena, and release a final version to the Steam Workshop where hopefully it would find players, and if I get really lucky a spot in the game itself. As of now, I have nearly completed the detail work on the BLU team’s side of the map, which I chose to complete first and then replicate the changes on the opposite RED team’s side. Once I complete that, it will be time to render the final version of the map once and for all, upload it to the Workshop, and move on to my next project.

Looking forward to the future

I do not have a timeline for when Rusted will be completed. Unfortunately, I find that I work best when I work at my own pace, and sometimes this means I will stop working on a project for days at a time due to many factors, such as school, work, leisure or simply burnout. What I do know is that Rusted is well on its way to completion, and that I personally want to see it through to the finish line, after all the effort I’ve put in, it would be a shame for it to never reach a final stage of completion.

After Rusted, I would like to move on to some of TF2‘s more complicated gamemodes, koth is fundamentally very simple. It involves two teams battling for to take and hold a central control point, and then hold it for several minutes. The first team’s timer to reach 0:00 wins the round, and the game resets. Since koth is so simple, the maps are too, they tend to be small, compact and often very arena-like. They are symmetrical, balanced maps built with even one-on-one engagements in mind. This is not the case in the more complex gamemodes, such as the massively popular payload. In payload, BLU team is tasked with pushing a cart to the end of the map, capturing similar control points along the way as checkpoints. They have a specific time limit which they need to advance to a checkpoint by, on the other hand, RED’s goal is simple, slow down and delay BLU at all costs. If BLU makes it all the way to the end of the map, they are declared victorious, if RED stops BLU long enough to run out the timer at any point, they are declared victorious. Payload maps are fundamentally much larger than most other gamemodes, and are asymmetrical so as to give each team strengths and weaknesses tailored to offense versus defense. Naturally, this large, asymmetric style is much more difficult to manage than a small, symmetrical style. I am eager to take on this challenge, I feel like I have a good understanding of the fundamental game. I would sincerely hope so anyway, I’ve only been playing it for nearly 10 years and 8000 hours. My experience has directly led to Rusted’s success, and I hope that Rusted’s success will directly lead to the success of a payload map.

A note on Theming

You may have noticed at this point that there is a consistent theme with my map names. Simply put, I named Redacted because my idea for the map’s theme was an abandoned industrial complex being used to hide illegal caches of weapons and spy equipment, hence “Redacted.” Resurrected is a fairly obvious one, it was a Halloween map, and the term Resurrected certainly fits a Halloween theme. Rusted was named because I wanted to take the abandoned industrial complex theme of Redacted, and combined it with the same rusty, dirty industrial themes of my hometown. I have lived in greater Pittsburgh for 21 years, and my grandparents used to say all the time that “You could wear a white T-shirt downtown and come home wearing a black T-shirt.” Pittsburgh’s industrial history is evident in everything from the architecture to the sports teams, and I wanted to channel that history into my map. Thus, I thought “Rusted” perfectly captured the theme of rusting, rotting industrial sites. In a similar vein, I have not picked a name for my Payload map yet, but I am considering names like “Blasted” and “Corroded” leaning into that same industrial theme.

 

A short video demonstrating the process

Leave a Reply

Your email address will not be published. Required fields are marked *