Jump to content
xisto Community

Level Design In Source Sdk

Recommended Posts

A great way for beginners to get into level design is through the Source SDK's built in level editor: Hammer.

What is the Source SDK?


The Source SDK is an easy to use software development kit produced by Valve for use in games that run on the Source engine, such as Portal 2, Team Fortress 2, and Half-Life 2. Of particular interest to the beginner level designer is the Hammer World Editor. The best part is that it is free to anyone who has installed Steam (Valve's digital distribution platform), and can be downloaded from the "Tools" tab in your Library.

Intro to Hammer


Hammer is a relatively simple world editor that allows its users to quickly develop simple levels. Of course, to make a working level for a game, there are hundreds of factors to consider, depending on the kind of game you want to design for. The basic interface shows you four windows within the Hammer window: 3D View, 2D View (Top Down), 2D View (Left Side) and 2D View (Right Side).

The Windows


The four windows are your workspace, like a blank canvas in Photoshop. The 3D View window is a visualizer into your new level, allowing you to see sort of a rough draft of your level without having to compile it and run it in a game. The 2D Views allow you to drag out brushes along the X, Y, and Z axes.



The term brushes refers to what can essentially be described as platforms. These are (usually) the physical objects that make up your level, but can also be scripted sequences to activate things within your level, depending on the texture you assign to them. To draw a brush out, you first click on the brush icon: Posted Image, and then simply drag out an area in one of your 2D windows. Don't worry if you don't get your brush exactly right when creating it, you can always resize it by clicking and dragging on one of the white squares that appear on the outline of the shape while selected. The best part about Hammer is that every brush always remains self contained, so you can edit it as much as you would like after its creation, including changing the texture on it.




Textures are of course the "skin" given to your brush. The texture window is on the right hand side of your screen by default, and looks like this: Posted Image. To select a texture, you simply click the browse button, which will bring up a dialogue containing all of Hammer's built in textures. You can type into the name bar at the bottom of the textures dialogue to help make your search more specific, or you can just look through all of the textures to pick one you like. When you create a brush, the brush will have the currently selected texture on it, but your texture can be easily changed by clicking on the brush, finding a new texture, and then clicking the reskin button:

Posted Image



Entities are pre-scripted objects that you can put into your map, the most important of these being the "light" entity and "info_player_start" entities. To create an entity, click on the entity button: Posted Image, and then click on the position where you want the entity placed in the 3D view window. The listed entities are the most important because one, info_player_start, tells the game where to spawn the player, and without it, the player cannot be spawned. The other, light, simply creates a light to make your area visible.

With four walls, a floor and a ceiling, and the entities listed here, you can make a quick and easy map which can be compiled and instantly ported into any Source game, so you can see the fruits of your labor almost instantly.

Share this post

Link to post
Share on other sites

Let's continue the tutorial with some slightly more advanced content: Tool Textures


Trigger Texture

The trigger texture is a texture that can be applied to any brush after its creation. During the map's run-time, all trigger textures are invisible and non-solid, and initially do nothing. In order to make a trigger do something, select the brush (either in 3D View or in a 2D View) and press Ctrl + T. This will bring up a brush properties box. From this box, you can choose almost a hundred different properties, such as "trigger_teleport", "trigger_hurt", "func_respawnroom", and "func_resupply". In order, these will: teleport a player to a destination (an info_teleport_destination entity), create an area that will harm the player(s), create a respawnroom, and create an area that will resupply (refill the health and ammo) the player. To make a map more advanced than walls and a floor, Trigger is absolutely necessary, since it will allow the creation of hurtful objects (such as toxic sludge, lava, cacti or other things), or to simply open a door when you walk up to it.


Nodraw Texture


The Nodraw is an invisible texture that remains solid during run-time. It is most commonly used as a way to keep players from exiting the map, but can also be used for more creative means, such as a series of invisible platforms that lead to a secret area. Bullets, players, NPCs and projectiles cannot travel through the Nodraw, so it functions exactly like any other solid brush. Important to realize about the Nodraw texture is that it can (and should!) be applied to the faces of brushes that will not be seen by the player during the game. This allows your map to compile faster, run smoother, and have a smaller file size. Of particular note, the creation of water is facilitated through Nodraws, by simply placing a water texture on the top face of a Nodraw brush.


Player Clip Texture


The Player Clip functions exactly like a Nodraw to players, but NPCs, bullets, and projectiles ignore it. This is an excellent way to keep players out of an enemy spawning room, which is mostly only useful for preserving the illusion of "this is a building full of enemies" as opposed to "this is a place where enemies just spawn out of nothing". Since the Player Clip allows bullets to pass through it, a player will never feel like it is unfair for enemies to stay behind it, since they can still shoot or otherwise harm them from the other side.


Skybox Texture


Skybox does exactly what is written on the tin, creates a box that creates a sky. The downside to the idea of a Skybox is that any area that allows you to see off the map will reveal sky under your map, as if the patch of land you're on is floating high in the sky. When trying to create an immersive map, it's important to keep this in mind and make sure that the player will not be able to see the bottom of the skybox from any point on the map. This can be averted by using a 3D Skybox, which produces a fully rendered environment outside of the map in a separate area that cannot be accessed under normal means (using noclip or putting a secret teleporter will allow players to get there, however). 3D Skyboxes are difficult to make, but rewarding when created correctly.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.