This tutorial will cover KernCore's techniques that were presented in Portal: Project-Alpha
Posted by reepblue on Oct 18th, 2009
Intermediate Level Design/Theory.
For this tutorial, I'll be sharing KernCore's mapping techniques on how he designed and lit the maps in Portal: Project-Alpha. It is important that I tell you that this is for people that know their way around the hammer editor tool and had made a good amount of maps before.
Setting up Source SDK for Project-Alpha (Optional)
First off, if you want to map for Project-Alpha, this part will make things easier for you. Making a segment in the GameConfig.txt file will take away the need to copy your map and paste it in the Project-Alpha folder if you were to compile it under the Portal hammer editor.
1) Go to your C:\Program Files\Steam\steamapps\username\sourcesdk\bin\orangebox\bin file.
2) After the last game, paste and edit this in the GameConfig.txt file.
"GameDir" "c:\program files\steam\SteamApps\SourceMods\Portal Project Alpha"
"GameData0" "c:\program files\steam\steamapps\username\sourcesdk\bin\orangebox\bin\portal.fgd"
"GameExe" "c:\program files\steam\steamapps\username\portal\hl2.exe"
"BSP" "c:\program files\steam\steamapps\username\sourcesdk\bin\orangebox\bin\vbsp.exe"
"Vis" "c:\program files\steam\steamapps\username\sourcesdk\bin\orangebox\bin\vvis.exe"
"Light" "c:\program files\steam\steamapps\username\sourcesdk\bin\orangebox\bin\vrad.exe"
"GameExeDir" "c:\program files\steam\steamapps\username\portal"
"MapDir" "c:\program files\steam\steamapps\username\sourcesdk_content\portal\mapsrc"
"BSPDir" "c:\program files\steam\SteamApps\SourceMods\Portal Project Alpha\maps"
(Where it says "username", replace it with your SteamID. You can also edit the "MapDir" location as well.)
Making Things In Hammer
Open Source SDK, Go to the tab that reads "Portal: Project-Alpha". Then open hammer. For this tutorial, make a new vmf file and just make a simple box similar to this.
Make sure the walls are 256 units tall. Then clip them in half. Texture it with test chamber textures. Also add a info_player_start entity and the weapon_portalgun entity.
By now, you should have a box room with a player start and a portal gun. Next I'm gonna show you how KernCore did the observation rooms. These are just hollow boxes with a texture to reflect light. First off, make 128 x 128 unit hole in the upper wall.
Now to the observation room. Make an observation window similar to this.
KernCore paid close attention to the Portal trailer and has concluded that Valve made the observation rooms just small boxes around the frame of the window that reflected light. Lets make the box now. Use the nodraw texture and make your window similar to this.
The side walls on mine are 64 units wide, 16 units thick, and 128 units tall . Back wall is 128 units tall, wide and 16 units thick. By now, the walls around the window are just nodraw textures. Lets get the right texture that reflects light. Through out the Project-Alpha campaign, KernCore used the reflectivity_90b texture. (dev/reflectivity_90b) You can experiment on this and might take it farther. For now, sponge off of KernCore.
With me turning off "Show Nodraw Faces", you can see the inner box without the camera view moving. Now for the entities. The observation rooms in Project-Alpha can contain 2 or 3 light entities. First off place a light entity in the box.
The light is dead center on the side but a bit off from the top as seen here. Next, we need to set the light values.
Brightness "183 204 218 150 "
BrightnessHDR "183 204 218 150"
Constant "200000 "
That is all you need to do for the light entity. Next is the 2 light_spots. Make a light_spot entity and place it as shown.
Set its values to:
Pitch Yaw Roll "Set it facing the back of the box"
Brightness "202 255 255 1000 "
Outer (fading) angle "75"
One last thing. This light_spot is by choice if you need it. This creates the shadows. Depending were you want the light to cast, place it in the upper part of the box with the angle of your need.
Set its values to:
Brightness "206 225 255 3200"
BrightnessHDR "206 225 255 0"
Inner (bright) angle "15"
Outer (fade) angle "40"
Now place it in the hole that we made earlier if you did not before. Cover the top part of the window if you made the window frame a func_detail. When finished, should look like this when its compiled. (But don't do so yet.)
Your done. You can add additional lighting if you want or need too. Before I end this tutorial, I wanted to mention on how KernCore created the hallway shadow effect like the trailer.
First make a hallway like this.
I've selected the back to show you that wall is textured with the black tool texture. (tools/black) Now make a brush with the Block Light texture. (tools/toolsblocklight) You can fill the hallway with the brush and clip it to an angle.
At the end, place a brush with the invisible tool (tools/invisible) and tie it to a func_noportal_volume. You can make this a teleport trigger or a level change. That is more detailed and I will not explain it here. Just add the details and when compiled, it should look like this.
Compiling (The most important part)
So your all set to compile. You got a light source (observation room/other lights) and a end. So lets compile. However, Compiling maps for Project-Alpha is a tad different then compiling for Portal.
When you compile, make sure HDR is unchecked. "Don't run the game after compiling" is your choice. You will receive plenty of texture errors. Ignore these errors, they are harmless to the map. But when you exit the Source SDK to map for something else, remember to turn it back on. Thanks to the wall edits in the mod, Project-Alpha looks better without HDR. It gives it that old feeling.
I'm done and your on your own. Using normal techniques with some of KernCores, you can make your own Project-Alpha maps. You can also try 1/4 Life's Color Correction (beta.raw) along with Valves test chamber Color Correction. Doing this will make the map look like the Test Chamber 13 edit I did. A big thanks to KernCore for learning these techniques and joining the Project-Beta team. Without him, Project-Alpha would have been impossible!