“Oh nice, the Kingpin RTX patch is out.”
3DMark 2001 is a recreation of the Lobby scene in Futuremark’s 2001 benchmarking software.
The layout is based on the original 3DMark 2001 Lobby scene benchmark with many changes and original segments.
The original lightroom scene was exported to OBJ, then converted to a MAP file with OBJ2MAP 1.3 preview. From there, brushes were fused, moved, removed, and new areas were added.
![]() |
![]() |
Made with Trenchbroom 2025.1 as a Valve 220 map for Kingpin and compiled with ericw-tools alpha 9. Textures are a combination of original 3DMark 2001 textures, Max Payne 1 textures (Futuremark was also Remedy, and many of the 3DMark assets were alpha Max Payne assets), a few default Kingpin textures, and a few original textures.
The Dragons team spawns in Matrix-style pure white “construct” rooms that play the music from the 3DMark 2001 scene, and the Nikki’s Boys team spawns in Elevators that play the elevator music from Max Payne. An extra spawn for both teams is on the opposite side of the arena to prevent spawncamping and to vary where players have to shoot. The Dragons team also features red chair models with Lamont and Morpheus watching TV. The Morpheus skin is original, available to use for players, and provided with the map files.
The safebags are on opposing sides of the arena and the cash drop is in the arena center with a pile of HMGs. Players use the pillars for cover as they cross the arena, but are exposed if they try to grab the cash or HMG. The safebags are also exposed, making raids difficult, which is important for such a small level.
The Nikki’s Boys spawn also has a reflective 3DMark logo mounted on the wall. I looked up the logo version used in 2001, made a vector trace, extruded in Blender, exported to OBJ, then converted it to a MAP file with OBJ2MAP and cleaned it up to minimize surfaces.
The skybox is derived from the Google Earth location of the New York building originally featured in the benchmark scene’s “outside” texture.
Most of the reflection effects use a common trick where the room itself is duplicated and flipped under the level. The floor uses a 1-unit texture with surface:trans66, with a second 1-unit alpha layer under it to block light from either side from passing through the floor. The underside sky lights use a second sun angled upwards and a bottom dome light that matches the top dome light.
Splitting the skybox into a top and bottom reflection won’t work because players can get close enough to look downward at the skybox to see its bottom. Instead, I used a winreflmap (this is a texture loaded with the skybox that appears on any surface:wndw brush that usually has an abstract pattern to simulate reflective materials) and built a reflection map of the original skybox using polar coordinates in Photoshop.
3DMark 2001 winreflmap![]() |
Common Kingpin winreflmap![]() |
This had to be very large (2048×2048) to show detail, so I made the non-visible areas a solid color to reduce the TGA filesize. The windows on the “reflected” underside of the level then use content:wndw66 instead of the topside’s content:sky.
Spotlights with a very narrow cone (key:angle) are used to shine down on the safebags to minimize the surface area affected. Objects in Kingpin inherit the color of the lightmap under their center, so this turns the bag the team color. A func_timer is used to toggle the light on and off. A second safebag is placed under the floor with its key:angles set to approximate a mirror of the top bag. However, because objects only receive their light from under them and we don’t want to light up the reflected ceiling, an alpha brush is placed under the reflected bag that receives lightmap data from a second spotlight, but the texture is completely transparent so it isn’t visible to the player. This lights the bag on the underside.
![]() |
![]() |
While these NPCs and props are pretty deep in the pure-white room that doesn’t have a reflective floor, players can be far enough away that they should be able to see some of these entities reflected in the marble floor outside the room.
The chair models replace weapon_blackjacks (this is the pipe weapon every player starts with and cannot be picked up, making it ideal for replacing with a key:model). Two cast_bum_sit NPCs are placed in the air, with monster clip brushes forming a ledge for them to sit on at a height that places them in the chairs.
On the underside, it’s more complicated. A 1-unit alpha brush sits on the back 1-unit behind the weapon_blackjacks to make sure they don’t fall and still leave room for the NPCs to clip into them. The chairss and NPCs are placed with key:angles set to values that will roll them into a position that makes a psuedo-vertical reflection.
A func_wall brush is placed below the NPCs and a trigger_gravity brush set to -5 is placed below that. NPCs are only affected by trigger_gravity when they are airborne, and all entities affected by gravity spawn at ground level without falling. So with this setup, when the level starts, the NPCs on the underside spawn on top of the func_wall, below where they need to be on the chairs. A trigger_always entity triggers on level load and is set to wait 2 seconds to ensure the objects affected by gravity settle, then executes its key:killtarget on the func_wall. This drops the NPCs into the trigger_gravity, which will affect them because they’re falling. The NPCs then quickly float upwards. Their inverted position is actually fine once they collide with the underside’s ceiling without monster clip brushes to space them away from the chairs.
Topside![]() |
Underside![]() |
Each of the 12 columns is separated into 3 destructible regions with func_explosives. The “reflected” destructible portion is part of the same func_explosive entity as its top (this way the destroyed column is also reflected properly), and a tiny 1x1x1 unit brush is embedded high into the non-destructible part of the column to move the center of the func_explosive entity higher, because the debris spawns from the center of the entity (otherwise the “shattering column” effect would happen at the ground level instead of the center of the area that gets destroyed.
![]() |
![]() |
The shadows nearest to the window need to be sharp or they’ll look bad. One way to control the lightmap resolution is to reduce the scale of the texture. The walls in areas that require high definition are swapped to a similar but much smoother texture that can be scaled to 0.063x without showing obvious tiling.
I made and released a Morpheus player skin to coincide with the Halloween version of this map. It’s included in the map file because it’s used by the NPC in the chair.
![]() |
![]() |
![]() |
![]() |
![]() |