Copyright: Worldcraft is a trademark of Valve, LLC.  Copyright 1996-98, All rights reserved.
Citation: { Worldcraft is a trademark of Valve, LLC.  Copyright 1996-98, All rights reserved. }


Welcome to Worldcraft 2.0

Worldcraft is a trademark of Valve, LLC.  Copyright 1996-98, All rights reserved.

Introduction to Worldcraft 2.0

Welcome to Worldcraft 2.0, a graphical level editor originally designed for id Software's Quake.  With this release of Worldcraft, you can make your own maps for Quake, Quake II, Hexen II, and Half-Life.

Worldcraft's web site

The most up-to-date releases and information can be found at the Worldcraft web site:

http://www.worldcraft.com/

Go direct!

   •  What's New in 2.0?

   •  Introduction to Editing

   •  Half-Life tutorial

   •  Half-Life Entity Guide

Note: Microsoft's DirectX must be installed to run Worldcraft.  DirectX drivers can be found at either the Worldcraft web site or any Microsoft source.

This help file was updated to meet the Worldcraft 2.0 specs by autolycus, March 1998.  Please send comments or questions regarding this help file to autolycus@planetquake.com


billing time
phase 1	55 hours

phase 2	-

phase 3	20+

phase 1 - user's guide, tutorial, and reference sections

phase 2 - integration of copy-editing changes

phase 3 - half-life entity guide


what's new in 2.0?

Worldcraft 2.0 represents the largest jump in feature enhancements and additions to date.  Below are a list of the new things along with links to more information about them.

There are a few new features on the toolbars.

   •  (MapTools) the Decal tool allows you to take advantage of Half-life's decal feature, which allows you to lay an image ontop of a texture.

   •  (MapTools) the Path tool lets you easily and quickly create paths for objects and monsters to follow.

   •  (MapTools) the Vertex tool has been enhanced; it now allows you to merge vertices by dragging one ontop of another.

   •  (MapOperations) the Ignore Groups button allows you to edit an object independant of whatever group it might be a part of.  This is useful if you want to edit a single piece of a multi-brush entity, or if you'd rather not ungroup a set of structural brushes to work on a single part of it.

   •  (MapOperations) the Cordoning tools allow you to cordon off an area of your map and do quick test compiling without having to wait for the whole level to compile.

   •  (MapViews) a set of buttons control the loading and saving of independant window configurations.  Independant window configurations allow you to customize the views of worldcraft to your liking.

The Texture Application mode (Face Properties dialog) has been enhanced with several new features.  A smooth groups feature allows you to specify an angle at which qrad will consider an object "rounded" and will smooth the lighting accordingly.  Any angles at or under the value specified will be smoothed.  The material feature shows what material type the currently selected texture is.  Material type will effect sounds made directly on the surface of a brush with that texture (footsteps, bullet ricochets, etc).  Last, the Quake II surface parameters are available to you, letting you control things like surface lighting and detail brushes.

There are several new options available to you through the menus as well.

   •  (File) export to dxf - this allows you to export a 3D scene to 3DS format to create a scripted sequence

   •  (Map) entity report - this can be used to manage your entities and do quick searches for specific entities, providing an easy alternative to searching through your map manually.

   •  (Map) load/unload pointfile - this lets you load a leak file generated by the compile tools directly into Worldcraft.  A thick red line will lead you directly to the source of the leak.

   •  (View) hide paths - this acts much like the hide items command.  It will hide any path made with the Path map tool.

   •  (Tools) options - the options dialogs have almost all been modified in some way.  As well, there are two new dialogs - game configurations and build programs.

   •  general

   •  2D views

   •  3D views

   •  textures

   •  game configurations

   •  build programs

The game configurations dialog contains all the information for setuping up multiple game configurations.  This lets you specify what entity set and map format to use, as well as palette and default entity information.

The build programs dialog allows you to specify which compile tools to use with which game configuration.  As well, all values entered here are easily referenced in the expert compile dialog by a series of static variables ($game_exe, $bsp_exe, etc).

The compile tools included for Half-life are somewhat different than previous games, but operate in a very similiar manner.  The tools are as follows:

You should say that qcsg analyzes all the geometry, textures, and entities in your map.  qbsp2 divides that map up into visible areas, and then vis determines more rigorously which polygons are visible and which ones aren't.

You can invent a word "visable", meaning "a level which can be vised" as opposed to "visible", "that which can be seen"

You should explain that ahead of time so people don't think it's a typo

   •  QCSG analyzes all the geometry, textures, and entities in your map.

   •  QBSP2 divides that map up into visable areas.

   •  VIS determines more rigorously which polygons are visible and which ones aren't.

   •  QRAD performs all the lighting calculations.  This can easily take as long as VIS, depending on the complexity of the lighting calculations it must perform.


NewObjectsEntityPopup


NewObjectsPrefabPopup


NewObjectDialogPopup


MapTools bar

next

 Selection Tool

The selection tool allows you to accomplish a number of things.  Its most basic function is to select things.  Once selected, you can click on the selected area to cycle through the three modes (resize, rotate, and shear).  While an object is selected, regardless of the mode it is in, you can click-drag it to a new position.

Tip: While an object is selected, you can clone it by holding shift and click-dragging the object.  See Creating Solids for more information. This can be done regardless of what selection mode the object is in (resize, rotate, or shear).

 Magnify

This tool allows you to, surprisingly enough, increase the magnification factor of the 2D views.  The same thing can be accomplished by pressing the number keys while the mouse cursor is in a 2D view.

 Camera

This tool allows you to place and modify cameras within your level.  While in camera mode, hold shift and left-click and drag a line to create the camera.  A line with a dot (the view point) will be drawn in the 2D views, where you can adjust it until it is pointing in the direction you'd like.  You can place more than one camera in a level, just repeat the above steps.

When you're in camera mode, you can cycle through all available cameras by pressing the PageUp/PageDn keys.  To delete the current camera, press Delete.  More information can be found in Using Cameras.

 Entity Tool

This tool allows you to place point-style entities in a map.  Once selected, the New Object dialog will contain a list of entities from which to choose from. Click on one of the 2D views and press Enter to place the entity.

Note: In order to place a brush based entity (a func_door for example) you must first create the brush with the Block Tool (see below), then select it, and press the ToEntity button on the New Object dialog.  You will be given a list of entities to choose from which will be different than the ones shown with the Entity Tool.

 Block Tool

This is the basic creation tool available to you. It allows you to create any of the different types of primitive shapes.  For more information, see Creating Solids.

 Apply Current Texture

When pressed, the current texture is applied to every face of the selected brushes.

 Apply Decals

This allows you to place decals within the 3D view.

 Toggle Texture Application

This brings up the Face Properties dialog.

 Clipping Tool

Clipping allows you to slice and dice your solids.  For more info, see Clip Planes.

 Vertex Tool

Vertex manipulation gives you complete control over the shape of a  brush.  For more information, see Vertex Manipulation.

 Path Tool

This tool greatly simplifies the creation of paths for trains and monsters.  It allows you to create dynamic paths that you can add and delete nodes to. For more information, see the Making Paths section.

Related Topics:

   •  create solids

   •  using cameras

   •  face properties dialog

   •  entity properties

   •  clip planes

   •  vertex manipulation


MapOperations bar

last

 Carve

When this button is pressed, any selected brush will subtract its shape from the non-selected brushes around it.

 Group/Ungroup

These control the grouping and ungrouping of sets of brushes.  This is not the same as creating VisGroups.  This will create physical groups of brushes that can be acted on collectively, but you do not immediately have control over their visibility or non-visibility.

 Ignore Groups

This allows you to modify individual brushes that are part of a group or entity.

 Hide Selected/Unselect, Show All

Along with the filter control dialog, these buttons are used to control what does and doesn't appear in the 2D and 3D space of Worldcraft.  You use these buttons to create VisGroups.

 Cut/Copy/Paste

These buttons follow the standard windows interface for cut/copy/paste.

 Toggle Cordon State/Edit Cordon Bounds

These buttons allow you to "cordon off" an area of your map.  When the cordon state is toggled on, a thick red line will appear around that area.  When you compile, only the inside of that red area will be compiled, and a box will be placed around the area to seal leaks.

Note: Be sure to place a temporary player start within the bounds of the cordoned area before you test compile that section.

 Toggle Select-By-Handles

When this option is toggled on, you will only be able to select objects by their center handles in the 2D view, and in the 3D view when wireframe mode is being used.

 Toggle Auto-selection

When this option is toggled on, you can drag a selection box around something, and immediately after letting go of the mouse button, the objects will be selected.  Otherwise, you would have to press Enter.

 Texture Lock

This button toggles texture lock mode on and off.  Texture lock allows you to move a brush laterally without disturbing the texture alignments.  Currently, texture lock will not preserve texture alignment when you are rotating a brush.

 Run Map!

This button brings up the current compile dialog.

Related Topics:

   •  carving

   •  groups and VisGrouping

   •  filter control dialog

   •  compile dialogs


MapView bar

last / next

 2D XY/YZ/XZ View

These buttons control which planes are viewed in the current 2D window.

   •  XY (top)

   •  YZ (side)

   •  XZ (front)

 3D Wireframe/Polygonal/Textured View

These buttons control the style of the 3D preview window.

 Toggle Smaller/Larger Grid

These buttons control grid usage.  You can toggle the grid on and off, or make it larger/smaller to suit your needs.

 Load/Save Window States

These buttons are used to save and restore window configurations when the independent window configuration is being used.  More information on window configurations can be found in General options.

Related Topics:

   •  general options


texture dialog

The textures dialog shows you the current texture  you are working with.  Using the Current texture scroll box, you can pick from previously used textures.  The Texture group scroll box allows you to choose which of the various texture groups to use if you do not wish to use all of them.

Texture Browser

The Browse... button opens the texture browser, where you can select from all available textures (as dictated by the Texture group selection).

The Size scroll box allows you to set the displayed size of the textures.   You can choose from 32x32, 64x64, 128x128, or 1:1 (full size).

The Filter box allows you to type in a string.  Any texture that has that string as a part of its name will be displayed.  You can specify more than one filter string.  For example, if you specify the search string "+0 1", textures such as sign7 and sign37 will be displayed.  Previous search strings can be accessed by clicking on the down arrow.

The Only used textures option will make the browser only display textures that have been used in your level.  This will allow you to narrow your texture usage down and avoid using different textures for the same purpose.  This will have an effect on both WAD and WAL type texture systems.

The Mark button will allow you to mark (select) all texture faces that contain the selected texture.  You can then adjust those faces as required (textures, surface attributes, etc).  This is best used in conjunction with the Face Properties dialog.  If the normal "Apply Textures" map tool is used, every face of a brush that has one face selected will have the new texture applied.

The Replace button (also accessible through the Tools menu) will bring up the Replace Textures dialog

Related Topics:

   •  replace texture dialog

   •  textures options


Filter Control Dialog
filter control dialog (VisGroups)

VisGrouping is a powerful tool for limiting visible objects in the map. This allows for much easier editing on large levels but does required that you use the .rmf file type for saving your maps since the .map format doesn't include the VisGroup information.

Visgroups are created using the Hide Selected and Hide Unselected buttons on the MapOperations toolbar.  When a VisGroup is created, it is inserted in the VisGroups portion of the Filter Control dialog with a name of "n objects", where n is the number of objects in the VisGroup.  The name can be changed by clicking on the group, then clicking on it again (but not double-clicking!).

There are a number of buttons that can be used in the Filter Control dialog:

Apply

Will cause unselected VisGroups to become invisible in the 2D and 3D views.  Select a group by clicking just to the left of its name.  A small hand should appear.

Edit

This allows you to edit the name and color of a VisGroup, as well as add and remove new groups.

Mark

This will cause selected VisGroups to be highlighted in the 2D and 3D views.

Purge

This will remove any groups from the VisGroup window that no longer contain any objects.

Note: You can delete a VisGroup from the list by dragging it out of the filter control dialog window.

Another feature of the Filter Control window is the ability to merge two VisGroups.  This is done by dragging one group on top of a second.  Worldcraft will ask if you want to combine the two groups, and if you do, they will be merged and the first group will take on the VisGroup properties (name, color) of the second group.

Related Topics:

   •  groups and Visgrouping

   •  MapOperations toolbar


objects dialog

The New Objects dialog controls all the facets of creation within Worldcraft.  Entities, prefabs, brushes - the creation of all this can be controlled from here.

toWorld (Ctrl-T)

Will remove any entity settings of the selected solid or group of solids. See Tools|Move To World for further details.

toEntity (Ctrl-W)

This will attach the currently selected solid or group of solids to an entity.  See Tools|Tie To Entity for further details.

Categories

When the Entity Tool is active, no categories are available.  With Block Tool selected, there will be at least one category available: the "Primitives", which contain Worldcraft's four basic solid shapes: block, cylinder, spike, and wedge.  If any Prefab libraries have been defined, then the library names will also be listed here.

Object

This list contains all objects that belong to the chosen category.  For entities, the list contains all entity classes available.  For solids, if the 'Primitives' category has been selected, then this list contains the four types of primitives.  If a Prefab library has been selected, then this list contains all objects in the library.

Faces

This selector becomes active if the Block Tool is active, and either 'cylinder' or 'spike' is the current solid type. The value, which can be changed by either keyboard or clicking LMB on the little arrows), represents the number of side faces the cylinder/spike will be created with.

Create Prefab (Ctrl-R)

This will let you turn a selected object into a prefab object which will be easily reusable.  When you press this button, a Create Prefab dialog will pop up.  Here you can enter the name and description of the prefab, as well as choose which library it will be placed in.

Related Topics:

   •  creating entities

   •  creating solids

   •  creating prefabs


file menu

next

New

This will open a new blank map.  You will have the option of picking which game profile to use. (Worldcraft 2.0 supports Quake, Quake II, Hexen II, and Half-Life editing).

Open...

This will bring up a browse window from which you can load game maps.  The file type will default to .RMF (Worldcraft's proprietary map format), although you can also choose to load .MAP files.

Close

This will close the currently selected map.

Save

This will save the currently selected map.  It will be saved in whatever format it was loaded (.RMF or .MAP).

Save As...

This will bring up a browse window and allow you to save the currently selected map with a different name and/or map format.

Export to .MAP

This will allow you to save the current map as a .MAP file without changing the name or format of the current map.

Export to .DXF

This will allow you to save a special map that will be used in a scripted sequence.

Run

This will bring up the currently selected compile dialog (either the regular compile dialog, or the expert compile dialog).

Exit

Exit the program and return to the happy fun Windows95 desktop.

Related Topics:

   •  game configuration options

   •  compile dialogs


edit menu

last / next

Undo command

This is the standard Undo command.  You can set the Undo history in Tools->Options->General Options.

Note: if you are getting low memory warnings, it may help if you set the number of undo levels to a lower value.

Redo command

This allows you to Redo a previous command.  The Redo history is the same size as the Undo history.

Disable Undo/Redo

In certain situations, it may be wise to disable the Undo/Redo function.  For example, if you are doing something that will require a rather large memory footprint, like deleting a large portion of your map.  Its also probably a good idea to save your map before you do this, just in case.

Cut/Copy/Paste

These all follow the Windows standards, and do exactly what their name implies.

Paste special...

See the Paste Special dialog for information.

Delete

Useful for deleting things.  Can also delete and delete.  In extreme situations, you can also delete.

Clear selection

This will clear all selections.  This is useful when the object selected is not visible in the current 2D or 3D windows.

Select all

This will select everything visible in the current map.  This can be useful for VisGrouping.

Properties

This will bring up the currently selected object's Properties dialog.

Related Topics:

   •  general options

   •  paste special dialog

   •  visgroups

   •  properties dialog


map menu

last / next

Snap to grid

Will cause objects and selection boxes to snap to the current grid.

Show grid

You can use this to toggle the grid display on and off.

Grid settings

This allows you to increase or decrease the current grid size.

Show Information

This simply gives you some statistics on the currently selected map.

Entity report

This gives you extensive information on entity usage in the current map.  See Entity Report dialog for more information.

Check for problems

This will check the current map for errors.  See Check For Problems for more information.

Map properties...

This will bring up an entity properties dialog that will allow you to edit the Worldspawn properties for the current map.  The information presented here will be different for each game, but all involves controlling the defaults for the level.

Load/Unload Pointfile

In the case where your map is not totally sealed, the compile tools will report a leak and produce a leakfile which contains the info Worldcraft will need to trace a line from one of the map's entities to the source of the leak.

Related Topics:

   •  entity report dialog

   •  check for problems

   •  entity properties


view menu

last / next

Screen Elements

This gives you control over what is and isn't displayed on your Worldcraft desktop.

2D XY YZ XZ

This controls what planes are displayed in what windows.

   •  XY (top)

   •  YZ (side)

   •  XZ (front)

3D Wireframe/Filled Polygons/Textured Polygons

These buttons control the style of the 3D preview window.

Autosize 4 views

This will divide the available desktop space into 4 equal portions for the 3D and three 2D windows.

Center Views on Selection

This will cause all the 2D views to center on whatever object is selected in the current map.

Show Connections

Selecting this option will toggle on and off visible connection between entities that are linked by matching target/targetname values.

Hide Items

Selecting this will hide all entities from the view. By default this is off.

Hide Paths

This will toggle on and off the visibility of paths made with Worldcraft's Path tool.  However, paths are always visible when the Path tool is selected.

Hide selected objects

This command will hide the selected objects, and make a new VisGroup with them.  It is the same as pressing the Hide Selected Objects button on the MapOperations toolbar.

Show hidden objects

This command will make the all hidden objects visible, including VisGroups.

Related Topics:

   •  grouping and VisGrouping


tools menu

last / next

Carve

This will take the selected object and carve its shape out of the surrounding area.  For more information, see Carving in the Reshaping Solids section.

Make Hollow

You must have a brush selected for this to work.  It will ask you to supply a value for wall thickness.  Positive numbers will keep the hollowed brush the same size, and negative numbers will cause it to expand.

Group/Ungroup

This will physically bind two or more objects together so they may be acted upon simultaneously.  This has nothing to do with VisGrouping.

Tie to entity/Move to world

These commands can move an object back and forth between the world and entity types.  Moving an object to the world will strip all entity properties from it.  When you tie an object to an entity, a dialog will pop up with a list of all available brush entities.

Texture application

This will switch the current tool to the Texture Application tool.

Replace textures

This will bring up the Replace Textures dialog which allows you to search and mark or replace all textures of a certain type.

Texture lock

This option toggles texture lock mode on and off.  Texture lock allows you to move a brush laterally without disturbing the texture alignments.  Currently, texture lock will not preserve texture alignment when you are rotating a brush.

Snap selected to grid

Not all objects will align perfectly to the grid.  Some objects, such as entities, are occasionally difficult to align with the grid.  This command will snap the bottom of the entity to the grid.

Transform

This brings up the Transform dialog which allows you to rotate, scale, and move an object a precise value in any of the X, Y, or Z planes.

Align objects

This allows you to align an object with the grid, like Snap to grid, but with more option as to where it actually aligns itself.

Flip objects

This allows you to flip objects horizontally or vertically (or both, to mirror the object).

Prefab Factory...

This brings up the Prefab Factory dialog, which allows for creation and maintenance of Worldcraft's prefab (.OL) files.

Create Prefab

This will allow you to turn the currently selected object into a prefab. The Create Prefab dialog will appear, and you can enter a name and description, as well as choose which prefab library the prefab will belong to.

Options...

This will bring up the Options dialog group.  For more information, select one of the following:

   •  General

   •  2D Views

   •  3D Views

   •  Textures

   •  Game Configuration

   •  Build Programs

Related Topics:

   •  carving

   •  grouping and VisGrouping

   •  texture application tool

   •  replace textures dialog

   •  transform dialog

   •  prefab factory


window menu

last / next

This is a standard Windows menu.  The only thing out of place is the Messages option, which will bring up Worldcraft's Messages window.  The message window will report any problems Worldcraft had with loading its game configuration files.  Typically, you will only see a message there if you have modified your FGD file in some way and made a mistake.

Common errors you will see...

error parsing quake.fgd, line 1055: redefinition of class 'func_bobbingwater'

To fix this, you would have to delete one of the entities definitions in the file.  Most likely, you should delete the first occurrence of it, as it probably has been improved my a patch, and there will be more options programmed into it in the newer version. When removing an entity from the quake.fgd file, care must be taken to remove the entire entity definition. This includes the first line, and everything in between its [ and ] brackets.

error parsing quake.fgd, line 1052: expected @

error parsing quake.fgd, line 1052: unrecognized section in name base

These will occur when you neglect to put a '@' before you start to define an entity, starting a definition with SolidClass, as opposed to @SolidClass.

error parsing quake.fgd, line 1052: expecting '(', but found ':'

This will happen when you don't place a '=' character in the entity definition's first line (@SolidClass base(Appearflags) func_bobbingwater : "Bobbing Water")

error parsing quake.fgd, line 1054: expecting string

This occurs when you do not properly add the quotations around a string. This is most commonly done when, by mistake, you are setting up a default value for a string, and enter something like 4, as opposed to "4".


help menu

last

Help Topics

This option brings up the help file you're currently reading, so I'll assume you are somewhat familiar with its function.

Worldcraft homepage

This will take you to http://www.worldcraft.com/

Editing site

This will take you to http://www.planetquake.com/worldcraft/

About

This brings up the About dialog which contains version, copyright, and contact information.


replace textures dialog

Available from both the texture browser, or through the Tools menu, this dialog allows you to replace all textures of a certain type with a different texture.

Find/Replace

These text boxes and texture pictures show the texture to be found in the map, and the texture to replace the "found" textures with.  For either texture, the texture browser is available.

Replace In

The Replace In section lets you specify what should and shouldn't get replaced.  You can replace everything, or only marked objects, and you can choose to include or exclude hidden objects.

Action

This lets you choose which search-and-replace method you would like to use...

   •  Replace exact matches

   •  Replace partial matches

   •  Substitute partial matches

[  ] Do not replace textures (mark solids found)

You can enable this option to only mark the texture faces instead of replacing them with a texture.  This is extremely useful if you would like to modify the texture attributes of every texture of a certain type, but don't want to select each one manually (while you are in the Face Properties dialog).

Related Topics:

   •  texture dialog

   •  textures options


compile dialogs

Worldcraft has two types of compile dialogs: the normal, and the expert.

Normal Compile

The normal compile dialog gives you some very basic control over the compiling process, enough for simple testing of levels.

The Additional game parameters will be appended to the game execution command, allowing you to feed special commands to the game.  The QBSP, VIS, and LIGHT processes are all dependent upon the game Build Programs settings.

Expert Compile

Expert compile mode is extremely useful when you want more than the limited options available to you in the normal compile settings (from above).

Configurations

This is a pull down list with all the different compile profiles.  Using the Edit button, you can add, remove, and edit any of the various configurations you might have.

Compile/run commands

This is the list of commands specific to each Compile profile.  You can add and delete new commands using the New and Remove buttons.  Commands can be edited through the Command Properties section of the dialog.  Move Up and Move Down allow you to change the order of the commands.

Command Properties

Command

You can manually enter the command here (which is fine in the case of compile programs like qbsp.exe, etc), or choose from a list of commands by pressing the Cmds button.  You will be able to choose from:

   •  Executable

   •  Change Directory

   •  Copy File

   •  Delete File

   •  Rename File

   •  Game executable (with directory) ($game_exe)

   •  BSP program ($bsp_exe)

   •  VIS program  ($vis_exe)

   •  LIGHT program ($light_exe)

Parameters

You can enter the command parameters here either manually, or by pressing the Params button.  Available to you through the Params button are:

   •  Map Filename (no extension) ($file)

   •  Map Filename (with extension) ($file.$ext)

   •  Map Path (no filename) ($path)

   •  BSP Path (no filename) ($bspdir)

   •  Game Directory ($gamedir)

Note: all the $variables are setup in the Game Configurations and Build Programs dialogs, accessible from Tools | Options

Use Long filenames

This will allow a map to be output with its full name, in the case of a map with a name over 8 characters.  Note that this can cause problems with loading the map in games that do not support long filenames.

Ensure file post-exists

Enabling this option and entering a filename will cause you to be notified if the certain file does not exist after the compile process.

Use Process window

This will let the compile process use the process window, rather than spawning MS DOS prompts.

Related Topics:

   •  game configuration options

   •  build programs options


introduction to editing

Building Blocks: foundation of 3D design

Blocks.  Wedges.  Cylinders.  Spikes.  These are the solids given to you to work with.  You can carve 'em, clip 'em, and manipulate 'em.  You can combine these solids to make any shape possible, real or imagined. This is known as constructive solid geometry (CSG) and this is the editing style Worldcraft uses.

When using these objects (also referred to as brushes) it is best to think of them as solid material.  A common mistake made by many people new to editing is to place a single cube in a level, and stick a player start point smack dab in the middle of it, and expect that to work.  You'd soon find out it doesn't.  A cube room has six sides: 4 walls, a floor, and a ceiling.  Likewise, it would require six brushes to form this room in Worldcraft.

Entities

So, you say you want more in your game world than inanimate solids?  Well then, what you want are entities.  Where brushes are "world objects", used to form the basic inanimate structure of your level, entities are the objects that move, have sound, are interactive, and are basically anything that "does something."

Entity Types

There are two types of entities: point based and brush based.

Point based entities exist only at a certain exact point.  These are entities like lights (non texture based, of course) and monsters/players.  Monsters do have an area, but this is defined by the game code and is not modifiable from within the map.  Some point type entities are just that: points.  For example, the env_beam entity (controls Half-Life's beam effects) uses two info_target entities as targets.

Brush based entities are entities that depend on a brush for their physical presence (like doors, trains, and other moving entities) or "area" (like triggers, which require an activation field).

Object Creation

Now that the objects themselves are defined, you might be asking "How do I actually make these things?"  Brushes are take the least effort.  Entities are slightly more complex

brush creation

   •  select the Block tool

   •  define the brush properties in the New Object dialog

   •  drag a box in the 2D windows, being sure to size it appropriately in each of the 2D windows

   •  press Enter to create the object

entity creation

(point based)

   •  select the Entity tool

   •  select the appropriate entity from the list in the New Object dialog.

   •  click on the 2D window to place the entity position, adjusting in each view as needed.

   •  press Enter to create the entity

(brush based)

   •  follow the steps for brush creation (see above)

   •  switch to the Selection tool

   •  select the brush

   •  press the to Entity button on the New Object dialog.  A list of brush based entity selections will pop up.  Choose the appropriate one.

Note: More than likely, you are going to have to adjust the properties of the entity after you create it.  Brush based entities start with their entity properties available for modification.  You will have to select a point entity (or previously made brush entity) and press Alt-Enter to access its properties.

Now that the basics are out of the way, there are some simple rules and guidelines that should be kept in mind while designing levels.

"Thy level shall be sealed" This is arguably the most important rule.  Your level should have an inside and outside.  There should be no holes, not even the tiniest crack, allowing access from one part to the other.  The short version of the reason is this: it will prevent the compile tools from fully running on your level, and the level will end up not being optimized for the rendering engine.  This will produce slower game play and may cause some objects to flash in and out of existence in your level.

"Know thy limits" ...that is, know the limits of what you're working with.  Knowing the engine limits, and more importantly, knowing when you are approaching them or crossing them, is extremely important.  There are a number of tools built into the engine to help you with this.  They can be accessed by typing the commands in the game console.

r_speeds [1/0] (gl and software modes) this is the first scale of measurement most people turn to and, all things considered, will give you a fairly good estimate of how your level will run on other people's machines.

r_speeds gives you a series of numbers that are dynamically generated as you look around your level.  You will get a line something like "60fps  3ms  31 wpoly  0 epoly" ... the important values to watch are the wpoly and epoly values.  Wpoly values should be kept under 600, and wpoly values under 3500.

r_drawflat (software mode) although this doesn't give you any hard numbers, it does show you how your brushes have been cut up by the compile tools.  Instead of texturing the level, it is drawn flat-shaded, much like Worldcraft's flat-shaded 3D view, except that each polygon face is drawn in a different color.  This can help you identify problem areas in your level where the polygon count may be reduced.

r_draworder (software mode) this is another tool that, although it gives you no numbers, does give you valuable information to help you optimize your level.  Enabling this will cause the engine to render in reverse order, showing you exactly what the engine is seeing.  In some cases, there can be quite a difference between what you see and what the engine is seeing, due to the fact that the engine can see through entities and occasionally around corners.

"Thou shalt keep thy level simple" ..er, to a point, of course.  This goes hand in hand with the above rules.  Making huge, open areas with lots of obstructions or highly detailed areas tend to drive up the polygon counts.  This is not to say that your levels should all be boxes devoid of detail, just that you should be aware of the limits, and try to push them, but avoid going past them.

"Too much of a good thing..." ...is a good thing no more.  Things like colored lights and beam effects are extremely cool, but excessive use of special things tends to detract from the level as a whole.  When adding things to your level, ask yourself "What is the purpose of this? Why is it here?"

"Know your environment" This isn't strictly related to level design, but it will help you immeasurably if you know the game, the tools, and the editor inside out.  Taking the time to familiarize with all the game entities will ensure that you use everything to your full advantage.

Related Topics:

   •  creating solids

   •  texturing

   •  vertex manipulation, clip planes, and carving

   •  creating entities


General
general options

The General options dialog allows you to specify whether you want to use the independent windows setup or not.  You can also set the number of undo levels here.

Tip: if you are receiving low memory warnings, it may be a good idea to set the number of undo levels to something lower.

Independent window Configuration

Worldcraft's Independent window configuration is simple to use and extremely handy.  You can setup the windows virtually any way you'd like.  Below are some examples.  You can use the Load/Save buttons on the MapView toolbar to save and restore your Independent windows setups.

You can acheive virtually any windows setup that you'd like:

   •  classic

   •  supersize

   •  QE4 look-alike

Related Topics:

   •  2D view options

   •  3D view options

   •  textures options

   •  game configuration options

   •  build programs options


2D Views
2D views options

Crosshair cursor

When this is enabled, the pointer will turn into a crosshair when it is over a brush.

Default to 15 degree rotations

When rotating a brush, the rotations will automatically be in 15 degree increments.

Display scrollbars

If this is disabled, scrollbars will not appear in the 2D views.  You will be able to scroll the views by using the arrow keys.

Draw Vertices

If this is enabled, brush vertices will be shown in the 3D views.

White on black color scheme

Brushes will appear as white lines drawn on a black background.  When this is not enabled, the reverse is in effect.

Keep grouping when clone dragging

When clone dragging (selecting an object, holding down shift, and dragging the object), this will enable the newly cloned object to retain any grouping properties of the original object.

Center on camera after movement in 3D

While in camera mode, if you use the mouse to move around the 3D view, the 2D views will automatically center on the new camera position if this option is enabled.

Use Visgroup colors for object lines

When this is enabled, the object lines for any non-entity brush will be whatever color is specified in their visgroup when viewed in the 2D views.  Objects not associated with a visgroup will still appear white.

Arrow keys nudge selected object/vertex

When this is enabled, you can move a selected object or vertex by using the arrow keys.  Note that the mouse cursor's position in the 2D views will dictate which direction the object will move.

Reorient primitives on creation in the active 2D view

When this is enabled, primitives will be oriented with their "top" shown in whichever 2D view it was created in.  This is most easily shown when creating a cylinder.  With this option disabled, the cylinder will be oriented so that the round part shows up in the xy 2D view, regardless of which view you created it in.  This is mostly just a time saving feature.

Automatic infinite selection in 2D windows (no ENTER)

When this is enabled, dragging a selection box over an object or objects will immediately cause them to be selected (normally you would need to press ENTER).  This option can be turned on and off from the button bar as well (see Toggle auto-selection).

Selection box selects by handles only

When using a selection box to select a number of objects, it defaults to selecting any object the box touches.  With this option enabled, it will only select those objects whose "handles" (the small "x" at the center of each object) are within the selection box.

Grid: Size

This will be the initial grid size when you start a new map.  The options are 8, 16, 32, 64, 128, and 256 units.  You can change the grid size while editing by pressing "[" and "]".

Grid: Intensity

This is a slide bar from 0 to 100.  It sets the intensity (brightness) of the grid lines.

Grid: Highlight every 64 units

This will highlight the grid every 64 units.

Grid: Highlight every [nnn] grid lines

This will highlight a grid line once every nnn lines.

Grid: Hide grid smaller than 4 pixels

If the grid size is smaller than 4 pixels, it will generally appear as a gray background instead of a grid, unless zoomed in extremely close.  When enabled, this option turns off the grid when it gets that small.

Related Topics:

   •  general options

   •  3D view options

   •  textures options

   •  game configuration options

   •  build programs options


3D Views
3D view options

Hardware Acceleration

This will enable Worldcraft to use hardware acceleration.  Worldcraft uses Direct3D acceleration.

Reverse mouse Y axis

This option only affects movement within the 3D window.  When it is enabled, the Y axis is reversed, resulting in the aircraft style movement (forward to look down, backward to look up).

Back clipping plane

This enables you to drastically improve your performance in the 3D view.  Normally it is set at 5000 which basically will draw as far back as the level goes (like Quake without Vis information).  Setting this to a lower number will clip off the back portion (which is usually not visible anyway) and should noticeably speed up the 3D view.  The lowest value for this is 500, which is fine if you're doing a walk through of an area of the level.

Related Topics:

   •  general options

   •  2D view options

   •  textures options

   •  game configuration options

   •  build programs options


Textures
textures options

Add (WAD/PAK)

Add will bring up a dialog box from which you can select a texture WAD, or in the case of games like Quake II, a PAK file.  The textures displayed while editing a level depend on what texture format is specified in the Game Configuration for the game profile you are working in.

Add WAL Group

Instead of adding a PAK file, you can add individual WAL directories.  This gives you greater control over which textures are used, but also results in a decrease in performance compared to using the PAK format.  You can use both PAK and WAL format at the same time.

Remove

Remove will cause the selected texture WAD to be removed from the list.  This may be needed if you are running low on memory or using compile utilities that do not support multiple texture WADs.

Extract Textures

This will bring up MakeTex which will let you pull the textures out of as many PAK files as you'd like and place them in one WAD file.  (In the case of a WAL texture system, the WALs will be extracted to their appropriate directories)

Texture brightness

This affects the gamma of the textures.  If they appear light or dark in Worldcraft, you can adjust that here.

Related Topics:

   •  general options

   •  2D view options

   •  3D view options

   •  game configuration options

   •  build programs options


Game Configurations
game configurations options

The Game Configurations dialog allows you to setup game profiles, each of which contain a number of modifiable elements, including texture format, map format, entity file and defaults, and location information.  It is extremely important that the information you enter here is correct, as Worldcraft may behave quite unpredictably otherwise.

Configuration

Allows you to pick one of the game profiles (Quake, Quake II, Hexen II, and Half-life at the moment). You can click on the edit button to add, remove, and copy the game profiles.

Game Data Files

You can specify here which data file Worldcraft will use for entity support for this game profile.  You have the options of adding, removing, or editing the game file.

Texture Format

You can specify here what texture format will be used with the current game profile.  Currently support are WAD2 format (which Quake and Hexen II support), WAL/PAK format (Which Quake II uses), and WAD3 format (Half-life).

Map Type

You can choose the current profile's .MAP format here.  Currently you can choose from Quake, Quake II, Hexen II, and Half-life.

Default PointEntity class

This allows you to specify which point based entity is the default when you first start a map.

Default SolidEntity class

This allows you to specify the default solid based entity.

Game Directory

You can specify the game directory here (for use in the expert compile mode as $gamedir).  This is the directory that contains the game executable.

RMF Directory

You can specify the default map directory here.  This is the directory where the maps will be saved, not where they will be compiled.

Palette File

You can specify the palette location here.  If you were working on a project with a modified palette, you would specify that palette here.

Related Topics:

   •  general options

   •  2D view options

   •  3D view options

   •  textures options

   •  build programs options


Build Programs
build programs options

The Build Programs Option dialog lets you specify all the executables for your game configurations.  Just choose a game configuration, and then browse to the game and build executables.  If you plan to do your compiling from within Worldcraft, it is important that these settings are correct.

These executables can be referenced in the expert compile mode as follows:

     •  game executable = $game_exe

     •  bsp program = $bsp_exe

     •  lighting program = $light_exe

     •  vis program = $vis_exe

     •  .BSP directory = $bspdir

Note: When using the regular compile mode, .BSP files (compiled game maps) will be copied to what you specify as the .BSP directory.  When you use expert compile mode, you must make sure the maps get copied there yourself using the $bspdir variable.

Related Topics:

   •  general options

   •  2D view options

   •  3D view options

   •  textures options

   •  game configuration options


paste special dialog

This menu allows multiple pasting of the clipboard contents with offsets and rotations. This relieves the work in creating something such as a picket fence where you can make one rail, then copy it multiple times with on offset for each new object.

Number of copies to paste

The number of new copies to paste.

Start at center of original

With this in it's default position of on, offsets and rotations are relative to the location and rotation of the original item in the clipboard. With it off, the new objects will be created relative to the center of the two previously selected windows.

Group copies

Turning this on will group all resulting objects together.  See Group and Ungroup on the MapOperations toolbar for more information. The default is off.

Offset (accumulative)

The three boxes here allow offset values for X, Y and Z.  With each additional paste, the next object will be offset from the previous one by these values which are given in Quake units.  The '<' buttons beside each box will automatically insert the current grid settings.

Rotation (accumulative)

These settings work in the same fashion as the Offset values, except that they apply rotation with each successive paste.

Related Topics:

   •  grouping and VisGrouping


properties dialog

The Properties dialog box is the primary method of modifying entity properties, and also allows you to adjust VisGroup properties for one or many brushes.

Class Info

The Class Info section is where you will modify entity properties.  As is apparent from the above picture, there are two different modes you can be in, SmartEdit, and not SmartEdit (toggled by the button, circled).  When you use the SmartEdit mode, all of the entity's keyvalue descriptions are shown to you. If you are already familiar with the entity properties, you may find it more convenient to turn this mode off and manually insert the keyvalues.

Flags

This section is also only available when editing an entity's properties.  You will find listed here all the available flags for an entity.  They can be toggled on or off.

VisGroup

This section allows you to assign or take away a VisGroup from the selected object.  You can also bring up the Object Groups dialog from here.  For more information, see Working With VisGroups.

Timeline

Timelines are Half-Life specific.  They allow you to specify an exact period in hours and minutes when the selected entity will be in the level.

Related Topics:

   •  creating solids and entities

   •  groups and VisGroups


prefab factory

Much like the Entity Report dialog allows you to manage entities, the Prefab Factory allows you to easily manage your collection of prefab libraries, including adding and deleting objects and editing existing prefab objects.

Select a Library

This allows you to select the library you want to work on at the moment. The three buttons to the right work directly on the selected library.  Add Library will create a new empty library.  Remove will delete the library from your harddrive.  Edit will allow you to edit the name and description of the library.  The description of the currently selected library is displayed under the library selection box.

Note: prefab libraries are stored in your Worldcraft directory, in the prefabs directory.  You can manually add and delete them directly.

Objects in library

This displays the objects available in the currently selected library and allows you to work upon them using the four buttons to the right.  Add object will bring up a browse box and let you pick from .MAP and .RMF files to add to the library as prefab objects.  Remove will delete the selected object from the library.  Edit will allow you to edit both the name and description, and the map data of the currently selected object.  Export object will let you export the currently selected object as a .MAP file.

When you select an object, its description, if any, will be displayed in the Object notes section.

Related Topics:

   •  creating prefabs


check for problems

Opening this dialog will cause Worldcraft to run through your map and notify you of any errors it finds.

When you select one of the errors, the entity/solid will be highlighted (if applicable) and three options become available to you.  'Go to error' will center the 2d windows on the selected error object, 'Fix' will fix that error, and 'Fix all (of type)' will fix all errors of the selected type.

Some common errors that may occur in your maps...

Invalid solid structure

The solid has invalid structure, probably as a result of vertex manipulation.  What this means is that the solid is not convex in every plane.

Solid Entity (entity_name) is empty.

This solid-entity contains no solids. Fixing the error deletes the entity.

Entity (entity_name) has unused keyvalues.

The entity contains keyvalues that are not used in its class. You can fix this error with the Fix button.  Note that this error will pop up if you are taking advantage of custom compile tools which add keyvalues to entities, but you are not using an FGD file that has these special keyvalues listed.

There is no player start.

There is no player start in the map. To add one, select the Entity (axe) tool, drag the crosshairs to the position you want the player to start at, and press ENTER.


transform dialog

This dialog will give you precise control over a selected object.

You have the option to rotate, scale, or move the selected object in any of the x, y, or z planes.  Values entered are in units, except in the case of rotation, where degrees are used.

Related Topics:

   •  creating solids


connecting rooms
tutorial: connecting rooms (tut2.rmf)

last / next

There really is no secret trick to joining two rooms.

To start with, you're going to need two rooms.  Do this by cloning the room from the last tutorial.  (See the cloning section in creating solids from the User's Guide).  Place the second room 128 units away from the first room.  Your top view should look like this:

You will want to delete the second player start (by the red arrow), so there's only the one in the first room.  Now, we need to make a hole in each room so we can connect them together.  We will do this by carving a piece out of the two inner walls.

This is quite simple to do.  First, create a brush that displaces the area that you want to carve (the selected brush in the picture above).  Now, click the selected object with the right mouse button, and select Carve from the menu.  This will cut out a hole from each wall, but leave the carving object blocking them.  Press Delete to get rid of the carving piece.  You will be left with two rooms separated by a small area of the void.

Now we need to seal this level by making a small hallway area between the two rooms.

And the survey says...

Press F9 and Enter to compile and run the map.

Well, still not all that exciting, but hey, at least its not a simple cube room.  In the next tutorials, we'll spiff this up by adding some different textures and details.

Related Topics:

   •  carving

   •  creating solids

   •  texturing


using light
tutorial: using light (tut4.rmf)

last / next

The rooms are starting to look much better than when we started out, but the lighting is rather bright and has no apparent source.  We will fix this now.

First, here's our baseline picture...

Now, delete both of the point based light entities.  Their time is up.  Create a rectangular solid of 32x48x16 units with the texture c1a1w1d.  Using the texture application tool, apply the +0tnnl_lgt1 texture to the underside of the newly created solid.  Place this solid centered just above hallway between the rooms.  Do this for both sides.  As usual, press F9 and Enter to compile and test your map.

Note: If your level turned out all black, that means that the +0tnnl_lgt1 texture is not listed in the default RAD file.  This RAD file controls the default color and brightness of texture lights.  It is located in the half-life\valve directory.

To make a custom RAD file for this level, make a text file in valve/maps/ (or wherever you're compiling the map) and enter the following:

+0~TNNL_LGT1     240 230 100 10000

and save the file as levelname.RAD.  The format of each line is simply: "texture_name redvalue greenvalue bluevalue brightness", one texture per line.

If you instead want to add this light to the default RAD file, you will find lights.rad in the half-life\valve\ directory.  You can add the same line to it.

As you can see, it looks way better like this.  Texture lighting tends to look more natural and much more realistic than point based lighting.  Once you've setup your default RAD file, texture lighting is extremely easy to use.

Point Based Lights

That said, point based lights aren't totally useless.  They are much more customizable from within the map than a texture based light.

The Properties dialog for the light allows you to customize the brightness, color, appearance (flickering, fading, etc), target, and name.  Also, in the Flags section, you have the option of making the light start dark.

In the level for this tutorial, I've created a small light fixture in the middle of the hallway.  Underneath, I've placed a light entity with a Brightness (key of "_light") of value "243 183 22 100".  This means, the light has an RGB color value of 243 183 22, and a brightness of 100.  The Appearance (key of "style") has a value of 6, which is listed as "Flicker A" in SmartEdit's pulldown list.

The difference is...?

When you compare the difference between the level after the last tutorial, and as it is now, you'll see it is quite dramatic.

In the next tutorials, we'll be adding some details, both brush and entity based, to make this a little more like a "real" place.

Related Topics:

   •  creating entities

   •  properties dialog

   •  detailing your level


detailing your level
tutorial: detailing your level (tut5.rmf)

last / next

Details.  These are the things that aren't necessary to the gameplay of your level, but they do help to give it a certain atmosphere, which is essential.  Right now, the tutorial level is just a couple boxes separated by a tube.  There really isn't anything in it to draw your attention besides a flickering light.  This must change!

Once again, here is out baseline picture...

Now, I'm thinking..."What are these rooms??"  This is the main question that should help you decide what to put into a room as details.  This could be some type of control room.  In that case, there would be some type of computer equipment.  Most places will have some type of ventilation system. Let's say this room has it exposed.  Some pipes, running to...who knows where?  Basically, you have free reign to add all the touches to the level that make it "yours".

Go ahead and add stuff to your tutorial level, or load up tut5.rmf in Worldcraft to see my example.

As you can see from the above pictures, details make a big difference.  Some of the things done were:

   •  signs - the biohazard sign and the emergency shower sign give the area a realistic look. Half-Life's texture set includes a number of signs that can be used within your levels.

   •  furniture and accessories - in the starting room, there is a swivel chair and ashtray, and a shelving unit with some random boxes on it.  None of this would matter in gameplay of course, but it gives the level an interesting look.

   •  exits - although they don't go anywhere, and in fact do not even open, I've inset two doors in the level to make it appear like this is actually a part of a building.  It is important to make the player feel like he is not just being dropped into a box.

   •  interactive objects - the medikit box on the wall can open, dispensing health.  (It is actually a rotating door with its "healthvalue" key set to "15", so that when the player opens the door, 15 health points are transferred to him).  The boxes on the shelves are explodable if shot.

   •  shaping - the immediate tendency for most people when they start editing is to make everything square and flat.  Square rooms, doors flush with walls, and things like that.  It is important to get to know the three main types of brush shaping Worldcraft has to offer: Carving, Clipping, and Vertex Manipulation.

Sounds like fun...

Sound is another important aspect of a level.  Up until now, the only sound you'd hear in your level is your own footsteps.  Let's add some other sounds now.  The computer, pipes, and flickering light are candidates for sounds.

To give an object a sound, you need to place an ambient_generic entity near it. The only thing you'll need to do in the entity properties is specify which WAV file to play.

Evolution

Well, from the first tutorial to now, you can see quite a bit of evolution at work.

In the next part of the tutorials, we'll be populating the level with some friendly and not so friendly people.

Related Topics:

   •  creating solids

   •  clipping, carving, and vertex manipulation

   •  creating prefabs

   •  monsters and NPCs


using the monster AI
tutorial: adding monsters and NPCs (tut6.rmf)

last / next

While the structure and lighting of a level can paint a nice atmosphere, it is the monsters which can give it a distinct personality.  Half-Life offers both hostile and non-hostile (NPC) monsters.

NPCs can be used to "give life" to your level.  In the above picture, a scientist inspects a drafting board.  After a good look, he continues about the room doing various tasks and inspecting things.  One of the interesting things you can do is get monsters to interact with each other, as shown in the shot below.

"yes Johnny, they're just dancing."

The tutorial level has been expanded quite a bit now.  The two basic rooms are still there, along with a larger design room and a side office.

If there is one thing you should keep in mind when placing monsters in your level, its their purpose.  Looking at the example level, the purpose of the three monsters is quite clear.  The scientist is working.  The zombie is, well, doing what a zombie does, and the headcrab is looking to make you a zombie as well.

To go along with this purpose, you can also make it look like monsters are doing more than shuffling from point A to point B.  The scientist in the tutorial map, for example, walks around the room, consults various documents and drawings, and always proceeds back to the computer to give it a good smack.  This is done through the use of scripted_sequence entities.  (scripted sequences are covered in the Half-Life editing guide).

You can make monsters interact with one another as well.  In the example map, try leading the zombie into the work area of the scientist.  Once the zombie has the scientist in sight, he will pursue and dispose of the scientist. Then, of course, his attention will turn back to you.

Use the AI!

Half-Life presents you with monsters that have a will to survive.  They have significant improvements in AI, compared to previous games, that allow them to achieve that goal of survival.  A common method of increasing level difficulty with previous games was to throw more and more monsters at a player.  With Half-Life, you have a more interesting, albeit more difficult, option, that of using the AI effectively.

Rather than throw a pack of human grunts against a player, setup the area so that a pack of 4, for example, can attempt to out-maneuver him.  Force both the monsters and the player to play a game of strategy.  This can create a tense atmosphere as well as present the player with a struggle that requires thought to overcome.  Unless your prefer run-shoot-run-run-shoot games, of course.

One interesting thing about the Half-Life AI is that you have allies and enemies, and your enemies will attack you and your allies as a group.  This could lead to an interesting scenario where you must guide a group through a level without them getting killed.

Related Topics:

   •  creating entities

   •  the final word


face properties

The Face Properties dialog allows you to manipulate the texture properties of selected brush faces.  There are a number of texture attributes available:

Note: while in Texture Application Mode, you can select multiple faces of a brush by ctrl-clicking them, or you can select the entire brush by shift-clicking one of the brush faces.

Scale (X/Y)

You can modify the scale of a texture to shrink or enlarge it.  Numbers less than 1 shrink, and over 1 enlarge.  You can use negative values to mirror the texture in one or both planes.

Shift (X/Y)

This simply allows you to shift the texture around in the X and/or Y planes.

Note: The shift values are in relation to the grid settings.  It can be extremely helpful to align a brush first to the grid, then move the brush to its intended location with Texture Lock enabled.

Smooth Groups

Half-Life's compile tools allow you to specify a "smooth value" angle.  Brushes that meet at or under this angle will be "smoothed" to appear rounded.

Rotation

Rotation allows you to rotate (!) the texture on the brush face.

Texture Group

You can choose from which texture group you will browse textures from

Material

Half-Life allows you to specify the material type of textures.  Material type will affect the sounds made on those textures (walking, ricochets, etc).

Quake 2 Parameters

When using the Quake II map format, the surface and content attribute boxes are enabled, allowing you to take full advantage of the specific Q2 surface properties.

Related Topics:

   •  MapTools toolbar


entity report

The Entity Report can be used to manage your entities and do quick searches for specific entities, providing an easy alternative to searching through your map manually.

Entities

This box lists the entities in your level based on what is specified in the Filter section.  You can select a single entity, or multiple entities by shift-clicking or ctrl-clicking.  With entities selected, you can use the four buttons to the right: Mark, Go to, Delete, and Properties.

Filter

Here you can specify filters so the only certain entities are displayed.  First, you can choose whether all types of entities will be displayed, or only brush or point based entities.  You can also decided whether currently hidden entities should be displayed.

When searching for a specific entity or group of entities, it will be convenient to use the search by key/value or search by class.  While searching by key/values, entities with partial matches will be shown unless the Exact checkbox is checked.

Related Topics:

   •  creating entities

   •  entity properties

   •  interacting with entities


MakeTex

This program will extract the texture information necessary for creating levels from Quake or Quake II based games.  You must have installed the registered version of the game for this to run.

step 1.  Type in the location of Quake (I or II) on your hard drive or press the Browse button to select it

step 2. Select the subdirectories to extract textures from.

step 3. If you are using a Quake I type game, enter the name of the texture WAD file you want to create.  The WAD extension is automatically included.  This is ignored for Quake II type games.

step 4. Click on the Go! button to extract the information, or press ESC to stop the program.

Related Topics:

   •  texture options

   •  texturing solids

   •  texturing tutorial


vertex manipulation

What is Vertex Manipulation?

Vertex manipulation allows you to move individual vertices and edges of a solid, easily creating odd (and sometimes invalid) shapes.  This is useful for modifying specific pieces of a group of objects, where resizing would interfere with other objects in the group.  Also, it allows you to make shapes that are impossible with Plane Clipping, and extremely difficult to do with carving.

Vertices and Edges

A vertex (or plural, vertices) is a corner of a solid.  Moving one vertex will not effect any other vertex, but it will change the position of any edges associated with it.  An edge is a point between two vertices which, when moved, will change the position of its two associated vertices, as well as their associated edges (no other vertices are effected besides the first two).

The usage is as follows:

1. Select the object(s) you would like to use vertex manipulation on. (fig. 1)

2. Select the vertex manipulation (VM) tool from the MapTools toolbar.  The selected solid will turn into a wireframe-type solid with partial shading (fig. 2).  Vertices will be marked as white dots, and edges as yellow dots.

Note: You can keep pressing the VM button, or press Shift-V, to cycle through the 3 VM modes.  They are: vertices and edges (default), vertices only, and edges only.

3. Click on the vertices/edges you want to move.  They will be highlighted (fig. 3).  Note that you can move both vertices and edges.

4. You can either drag the selected vertices or edges with the mouse, or move them in the selected 2D view using the arrow keys.

Tip: To undo anything done in VM mode, you will have to first exit VM mode.

Face Splitting

Face splitting allows you to add additional faces to a brush.  Simply select two opposing edges (fig. 3) and press Ctrl+F.  This will turn the two edges into vertices, and place a new edge between them (fig.4).

Related Topics:

   •  creating solids

   •  clip planes and carving


clip planes

What are Clip Planes?

Clip planes enable you to precisely make a cut in a solid, leaving you the option to keep either or both parts of the resulting two solids.  It is in some ways quicker and more efficient than carving or vertex manipulation.

Using clip planes is very easy:

1. Select the object to be clipped. (fig. 1)

2. Select the Clip Plane button on the MapTools toolbar.

3. Drag a line across the selected object. (fig. 2) This is the clip line.  The part of the object to be kept will be highlighted in thick white lines.

Note: You can cycle through the clip modes by clicking on the clip plane button, or by pressing Shift-X (fig.2, 3, 4).  You can move both points of the clip line by holding CTRL and dragging one point of it.

4. When you are satisfied with the potential resulting object, press Enter to perform the clip. (fig. 5, 6)

Related Topics:

   •  vertex manipulation and carving

   •  creating solids


carving

Carving a volume out of solids

In Worldcraft, any solid can be used to carve a volume out of other solids.  For example, you can place a solid within the room's wall and tell Worldcraft to subtract the solid from the wall - effectively punching a hole right through the wall!  This feature is not limited to using cubic shapes as a carving tool:  any solid - cylinders, cubes and wedges - can be used to carve other solids.

While carving, especially with a cylinder, it is best to carve the smallest areas possible.  What tends to happen is you have an area you want to punch a hole in, so you make an object with the same shape you want the hole, say for example a cylinder.  If you take that cylinder and carve a circle out of a large wall, the whole wall will be broken up.  Instead, a more efficient way to carve would be to first carve a square hole (the same size as the circle) and leave the square in place.  Then you can take the cylinder and carve a hole in the small square.   This will eliminate the splintering effect for the wall.

Carving a volume from a solid

Carving in Worldcraft is a simple task.

step 1.  In this step, you have the object you want to carve into (in blue), and the object you will be carving with (in red).  You should have the red object selected.

step 2.  Position the carving object so that it is where you want the hole to be.

step 3.  Press Ctrl+Shift+C, or right click on the selected object and select Carve.  You can also press the Carve button on the MapOperations toolbar.

step 4.  Either delete the object you used to make the carve, or you can now use it to fill the hole, as a door for example.

Note: In the picture labeled result, you can see that the cube  (which was previously one object) is now broken into 4 separate objects.  This is because the game engine cannot handle concave objects, and Worldcraft has broken it into convex pieces.

Related Topics:

   •  creating solids

   •  clip planes and vertex manipulation


creating solids

Creating Solids from Scratch

Creating solids is quite simple.  The process always follows the same four basic steps:

1. select the Block tool

2. in the New Objects dialog, select the primitive shape in the Objects selection box.  You will have 4 options:

   •  block

   •  wedge

   •  cylinder

   •  spike

3. drag a box in a 2D view, making sure it is the correct size and in the correct position in each of the views.

4. press Enter to create the solid

Creating Solids by Cloning

Cloning provides a simple way to quickly duplicate an object or group of objects.  This includes both brushes and entities, and groups can contain a mixture of both.

1.  Select the Selection tool.

2.  Select the object (brush, entity, or group of brushes and/or entities) that you would like to clone.

3.  Hold shift, and click and drag the selected object to its new position with the left mouse button.

4.  While shift is still being held, release the mouse button.  The object has now been cloned.

Placing Prefabs

Prefabs take the idea of cloning one (or two, or three...more like a dozen) step further.  Once you have a prefab library created (see creating prefab libraries), it is a simple task to insert them into your level.

There are two ways to put a prefab into your level.

The more simple of the ways is to select the prefab library from the Categories selection box, and the specific prefab from the Object selection box, and then press the Insert original prefab button.  This will insert the selected prefab in the center of the 2D views.  You can do this with either the Selection or Block tool selected.

The second way to insert a prefab is with the Block tool.

First, with the Block tool selected, create a box the same approximate size you want the prefab to be.  Then select the prefab library and prefab object.  Last, press enter to create the prefab.  This will create prefabs at any size you specify, rather than inserting them at original size and having to resize them manually.  The object circled in the last picture is the prefab in its original size.

Related Topics:

   •  creating entities

   •  creating prefab libraries

   •  texturing


Creating Prefabs
creating prefab libraries

Prefab libraries allow you to easily store pieces from your levels that can be used over and over.  Good examples of this would be hallways, light fixtures, unique objects (vehicles, etc), and furniture.

The first step in creating a library is...well...creating the library.

In the Prefab Factory dialog, click on the Add Library button.  The Edit Library dialog will appear.  In this, you can enter the name of the library and a brief description.  Press Enter to create the library.

Now, you have an empty library and a map with several objects you'd like to add as prefabs.  The process is quite simple.

Find the object in your map, and select all of it.  In the New Objects dialog, press the Create Prefab button.

The Create Prefab dialog will appear allowing you define the name and description of the prefab, as well as which library it will be placed into.  Repeat this for as many objects as you'd like.

Placing Prefabs

Placing the objects you make is just as simple.

Simply select the library from the Categories list, select the object from the Objects list, and press the Insert original prefab button.  The object will be inserted in your map, centered in the 2D views.  For more information on placing prefabs, see creating solids.

Related Topics:

   •  creating solids and entities

   •  Prefab Factory dialog

   •  New Objects dialog


Working with VisGroups
grouping and VisGrouping

Worldcraft offers two ways of keeping track of items in your level: normal grouping and visibility grouping (VisGroups).

Grouping

Normal grouping is used to literally "glue" things together.

The object shown above is made of eight brushes.  If you were to click on a single piece when the object is ungrouped, only that piece would be selected, and you'd have to ctrl-click each piece to select the whole thing (or drag a selection box over the whole thing).  When the object is grouped however, clicking on any individual piece while select everything in the group.

   •  brushes do not need to touch in order to be grouped together

   •  groups may contain any combination of brushes and entities

   •  you can work on an individual piece of a group of objects by enabling the ignore groups option

   •  grouped objects can be combined with VisGroups (see below)

VisGroups

VisGroups are somewhat like normal groupings in that they make managing groups of objects easy.  VisGroups do this in an entirely different way though.  Let's say you have the following section in your map:

Now, let's say you want to be able to make the furniture a group, but you still want to move each piece around independently from the other.  This is precisely what VisGroups are good for.

First, select the furniture pieces, then click on the hide selected objects button.  This will do two things: hide the objects in the 2D and 3D views, and create a new VisGroup with the selected objects.

The new VisGroup will appear in the Filter Control dialog named after the number of objects it contains.  To change this to something more suitable, select the VisGroup, then click on it again.  You will be able to change the name to whatever you like.  As well, you can click to the left of the name and a hand will appear next to the VisGroup.  This is how you set which VisGroups are visible and which are not.  You must press the Apply button for the changes to take effect.

Some things you can do with the mouse in the Filter Control dialog:

   •  drag one group onto another group  (this will cause the first group to be merged with the second group, and the resulting group will keep the name of the second)

   •  drag a group out of the Filter Control dialog (this will allow you to delete VisGroupings)

If you make the furniture group visible, then select it and press the Mark button, the group will be highlighted in the 2D and 3D views.

The other two options available to you are Purge and Edit.  Pressing the Purge button will remove any VisGroups from the Filter Control dialog that do not actually contain any objects (which is possible if you have deleted objects or made one VisGroup part of another.

The Edit button brings up the Object Groups dialog.

This dialog allows you to change the name and color of existing VisGroups, or delete them.  Deleting the VisGroup does not actually delete the group's objects, it just take's away the VisGrouping from them, making them individual unlinked objects.  You also have the option of creating new (empty) VisGroups with the New group button.

The last way you can use VisGroups is through an object's properties, in the VisGroup tab.

The above dialog will also be a part of an entity's Properties dialog.  To assign the object to a VisGroup, just select the appropriate group.  To remove the VisGrouping from this object, click on (no group).

Related Topics:

   •  creating solids and entities

   •  MapOperations toolbar

   •  Filter Control dialog

   •  Properties dialog


entity properties

The Properties dialog box is the primary method of modifying entity properties, and also allows you to adjust VisGroup properties for one or many brushes.

Class Info

The Class Info section is where you will modify entity properties.  As is apparent from the above picture, there are two different modes you can be in, SmartEdit, and not SmartEdit (toggled by the button, circled).  When you use the SmartEdit mode, all of the entity's keyvalue descriptions are shown to you. If you are already familiar with the entity properties, you may find it more convenient to turn this mode off and manually insert the keyvalues.

Flags

This section is also only available when editing an entity's properties.  You will find listed here all the available flags for an entity.  They can be toggled on or off.

Timeline

Timelines are Half-Life specific.  They allow you to specify an exact period in hours and minutes when the selected entity will be in the level.

Related Topics:

   •  creating solids and entities

   •  properties dialog


creating entities

Entities give life to your level.  They are the monsters, the doors, the items, that certain something-something that gives a level its uniqueness.

There are two types of entities: point based and brush based.

Point based entities exist only at a certain exact point.  These are entities like lights (non texture based, of course) and monsters/players.  Monsters do have an area, but this is defined by the game code and is not modifiable from within the map.  Some point type entities are just that: points.  For example, the env_beam entity (controls Half-Life's beam effects) uses two info_target entities as targets.

Brush based entities are entities that depend on a brush for their physical presence (like doors, trains, and other moving entities) or "area" (like triggers, which require an activation field).

point based entity placement

The placing of entities is a simple procedure.

1.  Select the entity tool (of course!)

2.  From the New Objects dialog, select the entity you want.

Note: the entity list in the New Objects dialog is for point entities only.  For information on brush based entities, please refer to the following section.

3.  Click in a 2D window, then position the entity cursor with the mouse.

4.  Pressing Enter will create the entity.

Tip: You will most likely need to edit the entity properties after you place a point entity.  This can be done by selecting the entity and pressing Alt-Enter.  The properties dialog pops up automatically for brush based entities.

brush based entity placement

Brush based entities are a bit more complicated to place, but they also follow a simple procedure.

1.  Build the object where you would like it.  You can use as many brushes as you'd like while building a brush based entity.  This example uses 6 brushes to build a door (pictured at top right).

2.  Select the entire object.

3.  On the New Objects dialog, press the toEntity key, which will turn the selected objects into a brush based entity and...

4.  ...bring up the entity properties dialog.  You can select the appropriate entity from the Class list box, in this case func_door.  Once the entity type is selected, you will be able to modify the entity properties as needed.

Tip: You can bring up the entity properties for a brush based entity in the same way you do for a point based entity: select, and press Alt-Enter.

5.  You will notice that brush based entities will appear as a different color in the 2D windows, typically the purplish color shown here.

Related Topics:

   •  creating solids

   •  entity properties

   •  interacting with entities


Texturing
texturing solids

Good texturing is definitely one of the most important aspects of creating a level.  Worldcraft's tools give you easy access to all of the texture properties.

The first interaction you will have with textures will most likely be through the  Textures dialog.

The Textures dialog shows you the current texture that you are working with.  Using the Current texture scroll box, you can pick from previously used textures.  The Texture group scroll box allows you to choose which of the various texture groups to use if you do not wish to use all of them.

Texture Browser

The Browse... button opens the texture browser, where you can select from all available textures (as dictated by the Texture group selection).

The Size scroll box allows you to set the displayed size of the textures.   You can choose from 32x32, 64x64, 128x128, or 1:1 (full size).

The Filter box allows you to type in a string.  Any texture that has that string as a part of its name will be displayed.  You can specify more than one filter string.  For example, if you specify the search string "sign 7", textures such as sign7 and sign37 will be displayed.  Previous search strings can be accessed by clicking on the down arrow.

The "Only used textures" option will make the browser only display textures that have been used in your level.  This will allow you to narrow your texture usage down and avoid using different textures for the same purpose.  This will have an effect on both WAD and WAL type texture systems.

The Mark button will allow you to mark (select) all texture faces that contain the selected texture.  You can then adjust those faces as required (textures, surface attributes, etc).  This is best used in conjunction with the Face Properties dialog.  If the normal "Apply Textures" map tool is used, every face of a brush that has one face selected will have the new texture applied.

The Replace button (also accessible through the Tools menu) will bring up the Replace Textures dialog

Texture Application Mode

You will eventually need to modify a texture in some way.  The

Face Properties dialog (Texture Application mode) allows you to manipulate the texture properties of selected brush faces.  There are a number of texture attributes available:

Note: while in Texture Application Mode, you can select multiple faces of a brush by ctrl-clicking them, or you can select the entire brush by shift-clicking one of the brush faces.

Scale (X/Y)

You can modify the scale of a texture to shrink or enlarge it.  Numbers less than 1 shrink, and over 1 enlarge.  You can use negative values to mirror the texture in one or both planes.

Shift (X/Y)

This simply allows you to shift the texture around in the X and/or Y planes.

Note: The shift values are in relation to the grid settings.  It can be extremely helpful to align a brush first to the grid, then move the brush to its intended location with Texture Lock enabled.

Smooth Groups

Half-Life's compile tools allow you to specify a "smooth value" angle.  Brushes that meet at or under this angle will be "smoothed" to appear rounded.

Rotation

Rotation allows you to rotate (!) the texture on the brush face.

Texture Group

You can choose from which texture group you will browse textures from

Material

Half-Life allows you to specify the material type of textures.  Material type will affect the sounds made on those textures (walking, ricochets, etc).

Quake 2 Parameters

When using the Quake II map format, the surface and content attribute boxes are enabled, allowing you to take full advantage of the specific Q2 surface properties.

Surface

light - Emit light from the surface, the amount of light is specified in the 'value' field.  The color of the light depends on the average color of the texture.

slick - Makes surface slippery (use with discretion)

sky - This surface is sky, the texture will not be drawn, but the background sky box is used instead

warp - The surfaces warps (like water textures do)

trans33 - Surface is 33% translucent, for stuff like windows/force fields

trans66 - Surface is 66% translucent.

flowing - The texture wraps in a downward 'flowing' pattern (warp must also be set).  Control the direction of flow by rotating the texture.

nodraw - Used for non-fixed-size brush triggers and clip brushes

hint - Indicates a primary BSP split.  Good for telling the bsp where to cut up your map.  Most useful when used in conjunction with the gl_showtris console command.

skip - completely ignore, allowing non-closed brushes

Content

solid - default for all brushes

window - brush is a window

aux - not used

lava - the brush is lava

slime - the brush is slime

water - the brush is water

mist - creates a non-solid brush

playerclip - Player can not pass the brush (other things can)

monsterclip - monster's can't pass the brush (player and other things can)

current* - Direction of current in the brush (usually water brushes)

origin - Special brush used for specifying origin of rotation for rotating brushes

monster - should never be on a brush, only in game

corpse - not used

detail - This is special, explained below

translucent - Use for opaque water that does not block bsp views

ladder - Brushes with this content allows a player to move up and down a vertical surface

Note: When modifying the content properties of a brush, each brush face must have the same contents enabled.  Otherwise, you will get a "Brush with mixed contents" error.

Related Topics:

   •  Textures dialog

   •  Replace Textures dialog

   •  Face Properties dialog

   •  Texture Options dialog


interacting with entities

There are as many ways for the player to interact with entities as there are entities.  The purpose of this section is to give you an idea of what some of the common entities are, and what you can do with them.

Doors, Platforms, and Buttons

These are probably the most common physical entities in a level.

This type of entity can provide a sense of realism for the player and create a more immersive game environment.

These entities can be activated in a number of ways.  By themselves, they can be activated by "using" them, or simply by walking up to them.

Note: You can make a "use" key by binding +use to a key of your choice.  For example, to make Enter the "use" key, at the console, you would type "bind Enter +use" (without the quotes).

All of these entities can also be triggered by other entities.  This is most commonly done with a func_button or one of the triggers (trigger_once, trigger_multiple, etc).

In the above picture, when the player runs into the trigger (circled), the door (dotted-outline) will open.

Another reason to use a trigger in this manner is when you have two objects that must act in concert with each other.  The two pictures above show the same scene in the game (top) and in the editor.  In the game picture, you will notice that the window in the door is translucent.  Because of the way entities and transparency work, the window must be a separate entity from the door.  However, they both must be activated at the same time obviously.  To make this work, both the door and window (which is also a func_door) are given the same "targetname" keyvalue, and the trigger (circled) targets that keyvalue.

As with entities in general, triggers can be brush based or entity based.  Brush based entities create an activation field which the player must walk through.  Point based entities must be activated by some other trigger.

For more detailed information, please refer to the tutorials and the Half-Life entity guide.

Related Topics:

   •  creating entities


the first room
tutorial: the first room (tut1.rmf)

next

The first obstacle most people encounter when learning to build in 3D is how to make that first room.

A basic room is a floor, walls and ceiling.  This requires 6 brushes (solids).  The exploded view of a room should make that quite clear.  Note that a room must be sealed in order for it to be compiled properly.

Selecting a Texture

First, you'll want to pick the texture you want to work with.

1.  On the Textures dialog, click on the Browse button.  This will bring up the texture browser.

2.  In the texture browser, in the Filter box, enter crete3_wall01.  This will narrow the texture group down to only the textures with the filter string in their name.  You should be left with only one texture available.  Select that.

Note: You don't need to use the filter to select a texture; you can, instead, use the scroll bars and search through the complete texture list.  The texture filter was used here to make it more simple.

Creating the Room

Now, construct the room itself.

1.  Select the Block tool by clicking on the icon on the MapTools toolbar, or by pressing Shift-B.

2.  In one of the 2D views, click-drag (with the left mouse button) a box that is 256 x 256 units. In each 2D window, make sure the box is 256 x 256 units.  When it is set correctly, press Enter to create the box.

Tips: The status bar at the bottom of the screen holds some useful information for you.  The numbers in the box third from the left hold the width, length, and height of the current object.  This can be adjusted by manipulating the object in the 2D windows.

Second from the left is the zoom factor for the currently active 2D window.  This can be adjusted by placing the mouse cursor in one of the 2D windows and pressing the plus and minus keys, by pressing the numbers 1 through 0 for preset zoom settings, or by switching to the Magnify tool and pressing the left mouse button to zoom in or the right mouse button to zoom out.

The last section of the status bar holds the grid setting for the 2D windows.  This can be adjusted up or down by pressing the left square bracket and right square bracket ([ and ]), or through the grid settings option in the Map menu.

Now, you have a single, solid cube.  To make it a room, continue with the following:

3.  Switch to the Selection tool, and click on the "x" in the middle of the newly created object.  This will make the object selected.  You will be able to tell a selected object by its red outline.

4.  Click on the object with the right mouse button, and select Hollow from the menu.  You will be prompted for a value for the wall thickness.  Enter 16 and press Enter.

The Player Starting Point

You also obviously need a place for the player to start.  This is done by placing an info_player_start in your level.

1.  Select the Entity tool from the MapTools toolbar

2.  In the New Objects dialog, select info_player_start from Objects list box.

3.  With the left mouse button, click in one of the 2D views.  The entity placement cursor will appear (in green).  You can use this to position the entity in each of the 2D views.  When you have it approximately where you'd like it, press Enter to create the entity.

Let There Be Light!

If you have no lights in your level, everything will appear black.  For this first example, we will place a point light in the level.

1.  Select the Entity tool from the MapTools toolbar

2.  In the New Objects dialog, select light from Objects list box.

3.  As above, place the entity in the level.  This time, center it in the middle of the room.  Press Enter to create it.

Your level will now look like this:

Run this puppy

To run your level now, press F9, then Enter.  The level certainly isn't very exciting yet, just a square room with concrete walls, floor, and ceiling.

In the following tutorials, you will connect this room with another, and begin adding details and different lights.  Eventually, we'll be placing a few monsters to make things interesting.

Related Topics:

   •  compile dialogs

   •  connecting rooms


using the cameras
using cameras

Worldcraft provides you with precise control over the camera movements in your map.  By placing cameras in your map, you can make the 3D view display any part of your level, possibly helping your visualize solutions to editing problems.

Camera Placement

Placing cameras in Worldcraft is extremely simple.

1.  Click on the Camera tool on the MapTools toolbar.

2.  Hold Shift and with the left mouse button, click-drag a line.  This will create a thin red line with a large dot at one end.  The dot is the camera's starting point, and this is where the 3D camera view will originate.  The red line is the camera's viewing angle.  You can adjust either end of the line to change the camera position.

Note: You can follow the above steps to create as many cameras in your level as you need.  There are a number of options available to you when using multiple cameras (you must have the Camera tool selected to take advantage of these):

PageUp:  cycle up to the next camera position

PageDn:  cycle down to the last camera position

Delete:  delete the current camera position

Shift:  hold shift and click-drag with the left mouse button to create a new camera.

Tip:  While in camera mode, you can modify the camera in any 2D plane to create any viewing angle you like.

Keyboard Shortcuts

There are a number of keyboard shortcuts that you can use to quickly maneuver through the 3D view without switching to the Camera tool.

While holding the SpaceBar:

   •  holding the left mouse button will allow you to rotate your angle of view in any direction, with the viewing point remaining stationary.

   •  holding the right mouse button will allow you to move left, right, up, and down while keeping the viewing angle constant.

While holding the SpaceBar and Shift:

   •  the left mouse button acts the same as above

   •  the right mouse button allows you to move forward and backward, as well as from side to side.

Related Topics:

   •  MapTools toolbar


texturing
tutorial: texturing (tut3.rmf)

last / next

Textures are easily one of the most important aspects of a level.  They can create or detract a great deal from the atmosphere, and so, a certain amount of thought must be put into your texture selections.

For this tutorial, you'll want to make sure the camera is inside part the tutorial level.  You'll also need to be able to move it around to look at specific parts of the level.  For information about moving the camera and 3D view, see using cameras in the User's Guide.

Choosing the Textures

The first thing to do is decide what kind of theme your level.  You don't need to go into exhaustive detail here, just have a general idea.

After a quick scan of the textures, I've decided to use con1_bord04 for the floor, and c2a4_h2g for the walls.  We'll leave the ceiling as-is for now.

With the Selection tool selected, ctrl-click the floor brushes until they're all highlighted.  Then, when you have the con1_bord04 texture selected as the current texture, press the Apply Texture button.  This will apply the texture to all sides of the selected brushes.

To do the walls, we'll do it a bit differently.

Toggle texture application mode on, and when the Face Properties dialog comes up, make sure that the Current texture is c2a4_h2g and the button at the bottom says Mode: Lift+Select.  Now, in the 3D view, click on all of the walls with the right mouse button.  This will apply the current texture to the wall.  Move around the level as described in using the camera, and apply the texture to all of the walls.

What's behind door number one...

Press F9 and Enter to compile and run the map.

This is a tad better.  In the next tutorials, we're going to make the lighting a bit more realistic, and add some details to the rooms.

Related Topics:

   •  using cameras

   •  texture dialog

   •  face properties dialog

   •  using light


the final word

last

What makes a good level?

The answer to that question can both fill volumes, and be answered in a single line: A good level is a fun level.  Victor Hugo wrote "If a writer wrote merely for his time, I would have to break my pen and throw it away."  That is to say, don't design just for the simple sake of designing a level.  Rather, design a level to be used.  Give the level purpose, motion, and character, and it will be a good level.  All aspects of design will contribute to that, and must be balanced against each other.  In the end, people are going to judge the level on whether or not they liked playing it.

Purpose

A level with purpose draws the player in.  It both gives the player a goal, and creates the sense that something is being accomplished aside from and apart from what the player is doing.  This can be loosely termed as realism, although that may be too broad of a word.

Motion

Give motion and momentum to your level in both a physical and temporal sense.  I'm referring less to doors, trains and buttons, and more to the motion of consequences.  By looking at a level, you should be able to know, or at least guess, what has happened before you arrived, and at least have an inkling of what will happen in the immediate future.  Give the player a sense that he is running through a living area, where things happen.

Character

This can be used to describe the lighting, the structure, the relative ambiance of a level.  The character of a level can determine, and is partly determined by, its purpose and motion.

No single piece of a level can be classified under one of the above categories, but falls into all of them at once, or rather, none of them, unless considered with each part of the level as a whole.

Know thy enemy

The one thing holding you back from making "the perfect level" is the limitation placed upon you by both the engine and by current technology.  While designing levels, always be sure to keep track of your levels performance data, being sure to stay in the range you set at the start of your project.

"A building is alive, like a man.  Its integrity is to follow its own truth, its one single theme, and to serve its own single purpose.  A man doesn't borrow pieces of his body.  A building doesn't borrow hunks of its soul.  Its maker gives it the soul, and every wall, window and stairway to express it."

- (Roark) Ayn Rand, The Fountainhead


tutorial overview

This tutorial will take you through the steps needed to construct your first level.  It takes you through seven stages.

Stage 1 - The First Room

The easiest and possibly most important step in learning to make maps is your first room.  This gives you a bit of background and walks you through the construction of a room with light (definitely not a room with a view, however).

Stage 2 - Connecting Rooms

Here you'll see how to join two rooms with a short section of hallway.

Stage 3 - Texturing

We'll explore some methods of placing textures in your levels.

Stage 4 - Using Light

Light is one of the most important elements in a map.  Some lighting methods are discussed here.

Stage 5 - Detailing Your Level

Here you'll see how to add detail to your level.

Stage 6 - Adding Monsters and NPCs

Ah, the spice of life.  Populating your levels with Nasties and Not-So-Nasties.

Stage 7 - The Final Word

This is a small essay on the philosophy of map design.  It is mostly in reference to single player/coop levels

This tutorial by no means attempts to cover every aspect of map design.  What it does do is set you along on the course to discover everything you'll need.

Related Topics:

   •  introduction to editing

   •  creating solids

   •  creating entities

   •  using the camera


ShowInformationPopUp


ScreenElementsPopUp


view planes


CreatePrefabPopUp


AboutDialogPopup


IndyWindow1Popup

classic


IndyWindow2Popup

supersize


IndyWindow3Popup

QE4 look-alike