Level Creation - Part 2


The following section is a continuation of Level Creation - Part 1 and provides more detailed information on creating Multiplayer levels and environments and includes tutorials and examples.  Topics covered in the tutorials and examples include more information on the Sealed World Rules, the additional creation of level geometry including structures, streams, and terrain features, a discussion on water and how it exists and behaves in Halo, additional applications of smoothing groups, the creation and placement of items such as light fixtures and ladders, the placement of visibility portals for rendering, an explanation of player clipping\containment techniques, and miscellaneous and general tips and suggestions.


Getting Started


This section assumes that the end user has successfully completed and understands Level Creation - Part 1 and any additional reference sections.

The following tutorials, examples, and images will be using the file "tutorial.max" which was created in the tutorials and examples in Level Creation - Part 1.


Modifying the Level


The following tutorials, examples, and images will help demonstrate additional features for Halo levels through the modification of the level geometry.

 

Terrain Modification

The following steps and example images will demonstrate the modification of the surfaces that compose the floor of the level to create some simple hills that will act as a border for the level.


Modification of the level floor to create some simple terrain and surrounding hills:

1) Open 3ds Max and load the tutorial.max file from the Halo\data\levels\test\tutorial\models directory and select the level (object named "level").

2) Select Modify.

3) Under Selection choose Face mode.

4) Select the 2 faces that compose the bottom or floor of the box which is currently the level (its easier to select these faces when Ignore Backfacing is selected under Selection, see the 3ds Max User Reference under Help for more information).

The first image further explains the above procedures.



5)  The selected faces are now going to be Tessellated so that there are more polygons or faces to work with in order to create terrain.  To subdivide or tessellate the selected faces do the following:

a) In the Weld area under Edit Geometry, enter 0.0 in the Edge tension value field.

b) In the Weld area under Edit Geometry, click the Tessellate button 4 times.

The second image further explains the above procedures and shows the final result of the tessellation procedure.



6) The Tessellation procedure will invalidate the assigned texture coordinates or texture mapping.  To help serve as a guideline for the modification of the faces, the polygons or faces will be reassigned texture coordinates. 

a) With the faces that compose the floor selected, select UVW Map from the Modifier List pull-down menu.

b) Select the Top view.

c) In the Alignment area under Parameters, click on the View Align button.

d) In the Alignment area under Parameters, click on the Fit button.

The third image further explains the above procedures.



The polygons around the edges of the level (where the terrain meets the sky) are going to be modified such that they create hills around the edge of the tutorial level.  There are many methods to achieve this including moving the vertices or moving the faces either individually or in groups.  The final result will be that the surround hills will be approximately 128 units high. One such technique for making the hills are listed in the procedures below.

7) To edit the polygons and vertices that compose the terrain, the selected object need to be converted to a mesh again.

a) With the level selected, select Edit Mesh from from the Modifier List pull-down menu.

b) Choose the polygons around the edges of the level such that at the "North" and "South" borders the polygons selected are 1 "row" deep and that the "East" and "West" borders are 2 "rows" deep. 

The fourth image further explains the above procedures.



To create the hills and smooth the faces out follow the procedures below:

8) With the border faces still selected, move the faces up 128 units in the Z-axis.

The fifth image further explains the above procedures.



9) Select faces or vertices and move them to give the bordering hills some variation. Edges were turned and vertices were manually tweaked to smooth out the surround hill geometry.

Turning edges is just basically taking two faces (in this case 2 triangles) and reconnecting or turning the edge such that its orientation is changed.  The triangle count is preserved as well as the non-turned edges, but the selected edge of the triangle now connects to different vertices than the original configuration.  The turn edge functionality (Turn) can be found under Edit Geometry when Edge mode is selected while the object is set as an Editable Mesh (Edit Mesh).

See the User Reference in 3ds Max under Help for more information on moving faces, vertices, and turning edges.

The sixth image or last image further explains the above procedures and shows the final results.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following steps and example images will demonstrate the modification of the surfaces that compose the floor of the level to create simple outdoor terrain.


Modification of the ground mesh to vary the existing terrain:

1) To create a small hill in the middle of the level do the following:

a) Select the level (object named "level").

b) Select Modify.

c) Under Selection choose Face mode.

2) Select the 8 faces that are in the middle of the level.

3) Move these faces up to create a small hill.

The first image further explains the above procedures.



4) To smooth and round the hill do the following:

a) Under Selection select Vertex mode.

b) Select the vertex in the middle of the hill.

c) Move the vertex up in the Z-Axis to help round the hill.

The second image further explains the above procedures.



5) Move the faces and vertices and turn the edges to smooth out the hill and to make it follow the dirt paths outlined in the texture.

The third image further explains the above procedures.



Depending on how the terrain is modified it may be necessary to adjust or reassign the texture coordinates.  Follow the previous procedures for UVW Mapping or projection texture mapping the ground.

6) Rough up the surrounding ground by creating a small rolling hill on the "West" border of the level.  Do not modify the "East" border or area of the level for right now.

7) Smooth the transition between the ground and bordering hills by moving vertices and faces and turning edges.  Again, avoid modifying the area on the "East" border of the level.

The fourth image or last image further explains the above procedures and shows the final results.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following steps and example images will demonstrate the modification of the terrain to create a stream bed.


Modification of the ground mesh to create a stream bed.

1) To create a stream bed on the "East" border of the level do the following:

a) Select the level (object named "level").

b) Select Modify.

c) Under Selection choose Face mode.

2) Select the faces on the "East" side of the level such that they encompass the part of the ground texture that represents the stream bed.

The first image further explains the above procedures.



3) To create the stream bed, more polygons and vertices are needed.  To get a higher resolution mesh, the selected faces are going to be subdivided or tessellated as was done with the original terrain mesh.  Follow the procedures below to tessellate the selected polygons.

a) In the Weld area under Edit Geometry, in the Edge tension value field enter 0.

b) In the Weld area under Edit Geometry, click the Tessellate button once.

The second image further explains the above procedures and shows the final results of the tessellation procedure.



4) Turn the edges that border the outline of the stream on the texture such that the edges follow the stream bed.

5) Create the stream bed by moving the vertices in the middle of the stream down.  To do this, follow the procedures below.

a) Under Selection select Vertex mode.

b) Select the vertices that run approximately up the middle of the stream bed outlined in the terrain texture and move the vertices down in the Z-axis.

6) Move the faces and vertices and turn the edges to smooth out the banks that border the stream and to make it follow the stream bed as outlined in the texture.

In addition, the position in the Z-axis of the vertices that run up the middle of the stream bed were varied.

7) Finally, the faces around the stream as well as the vertices and faces that intersect the ground and border hills were modified to smooth out and vary the terrain features.

Depending on how the terrain is modified it may be necessary to adjust or reassign the texture coordinates.  Follow the previous procedures for UVW Mapping or projection texture mapping the ground.

The third image or last image further explains the above procedures and shows the final results of the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Creation of a Simple Stream

The following steps and example images will demonstrate the creation of geometry that will be used to add a stream to the existing level.


Creation of the stream geometry:

1) To create the surface of the stream do the following:

a) Deselect the level (object "level") and select Create.

b) Make sure that Standard Primitives is selected in the pull down menu.

c) Under Object Type, click on the Plane button.

d) In the Parameters area, set the Length Segs value to 8 and the Width Segs value to 1.

The first image further explains the above procedures.

 



2) Create the plane such that it roughly covers the area of the stream bed.

3) The stream is going to be made a separate object from the object "level". 

Under Name and Color, name this object "stream", the object color was also set to blue, this is not necessary but makes it easier to distinguish this object.

The second image further explains the above procedures.



The plane of polygons will now be manipulated so that it fits the stream bed. 

4) Follow the procedures below to modify the plane so that it makes a stream.

a) Select Modify.

b) The plane needs to be converted to a mesh so that it can be manipulated. Select Edit Mesh from from the Modifier List pull-down menu.

c) Under Selection select Face mode.

d) Select all the faces for the stream.

e) Move the selected faces down in the Z-axis to form the surface of the water.  The plane of polygons should be slightly below the lowest edge or bank of the stream bed.

The third image further explains the above procedures and shows the final result of the performed procedures.



5)  Edit the vertices to make the polygons that compose the object "stream" conform to the shape of the stream making sure that all edges extend into or past the geometry that composes the stream bed.

6) The stream is going to be setup such that it "flows" from North to South.

Notice how the edges of the polygons are positioned such that they are either parallel to the flow direction or perpendicular to the flow direction of the stream.  This will make the texture mapping or application of texture coordinates for the stream shader (that will be scrolling to simulate the water moving) easier.

The fourth image or final image further explains the above procedures and shows the final result.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following steps and example images will demonstrate the creation and application of the Multi/Sub-Object material group and Sub-Material needed to complete the stream.


Creation of the stream Material Group\Multi/Sub-Object:

1) In 3ds Max select the stream object.  Open the Material Editor.

2) Select an empty Material Group.  This Material Group is currently set to a Standard Material.

3) Click on the Standard button to bring up the Material/Map Browser.

4) In the Material/Map Browser click on Multi/Sub-Object.

5) Click on OK.

The first image further explains the above procedures.



6) This Multi\Sub-Object is going to be called "stream".  Type this name into the Multi\Sub-Object description window. 

The name does not matter since it is not exported, the Multi\Sub-Objects are being used to organize and apply like groups of materials to objects being created for the level.  This will be demonstrated repeatedly in the tutorials and examples.

7) Now apply the Multi\Sub-Object to the stream object.  Since the "stream" object is selected, click on Assign Material to Selection.  This Multi\Sub-Object has now been assigned to the "stream" object.  The Sub-Materials for this Multi\Sub-Object can now be applied to the object using the materials associated ID number.

8) Just for organization, the extra Sub-Materials were deleted by selecting the Sub-Material to delete and clicking on Delete until the desired number of Sub-Materials remained, in this case, 1 Sub-Material.



The single Sub-Material is now going to be named the name of the shader which will be applied to the surfaces and appear in the game.

9) To name or label Sub-Material ID 1 do the following:

a) Click on the Sub-Material button to go from displaying the Multi/Sub-Object Basic Parameters window in the Material Editor to displaying the Shader Basic Parameters, Blinn Basic Parameters, Extended Parameters, SuperSampling, Maps, Dynamic Properties and Viewport Manager.

The second image further explains the above procedures.



b) Enter the name "example_tutorial_stream" into the name or label field.

10) To display a texture or image for this material when applied to a surface do the following:

a) Under Blinn Basic Parameters, click on the small box to the right of the Diffuse color setting.  This will display the Material/Map Browser.

b) Click on Bitmap.

c) Click on OK and the Select Bitmap Image File window will now be displayed.

The third image further explains the above procedures.



11) To select an image to display for the material do the following:

a) In the Select Bitmap Image File go to the bitmaps directory under Halo\data\levels\test\tutorial_examples.

This directory SHOULD exist if the Halo Editing Kit was installed and set up properly following the instructions under Halo Editing Kit Installation in the Creating a Development Environment section under General Reference.

The files in the tutorial_examples level represent the final result of the tutorial and example process and is provided as a reference to aid in the learning process.

b) Under the bitmaps directory there should be several .tif image files.  Select the example_tutorial_stream.tif file.

As was mentioned previously, the resources under the tutorial_examples directory represent the end result of all the examples and tutorials contained within the Halo PC Editing Reference. 

The Halo End User Editing Kit provides many resources including a wide range of tags as well as image resources (.tif files) that can be used in the creation of Halo multiplayer levels. 

The files provided also exist as examples and learning aids for those wishing to create their own custom game resources whose creation and modification may not be covered currently in the Halo PC Editing Reference.

For now, the completed or provided example resources will be used for the following examples for the sake of simplicity.

c) Click on Open.

The fourth image further explains the above procedures.



To return to the previous options in the Material Editor window click on the Go to Parent button.

12) In the Material Editor, enable the display of the material by clicking on the Show Map in Viewport button.

13) The Sub-Materials should be displayed on the Material Sample.

The stream geometry that has been created does not currently follow the Sealed World Rules, it has open edges.  This will be solved by adding a Special Shader Symbol to the material name.

14) In the name or label field add a "!" character to the end of the name "example_tutorial_stream".

The name of the Sub-Material should now be "example_tutorial_stream!".

The Shader Symbols table located in the General Reference section Materials Overviewshows that the "!" symbol tells Tool that when this surface is compiled into the level data tag do NOT associate any collision information with it. 

This surface is now RENDER ONLY.  Because of this, it can have open edges and now satisfies the Sealed World Rules.

15) To return to the Multi/Sub-Object Basic Parameters click on the Go to Parent button.

16) Close the Material Editor window.

The fifth image or last image further explains the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


With a material having been created and assigned to the faces that compose the stream object, the faces must have mapping coordinates created for them.  These mapping coordinates or "texture mapping" will allow the base maps or textures that are in the form of a .bitmap data tag and are referenced in the shader data tag to properly display for the specific faces.

The following procedures and example images will demonstrate using Unwrap UVW to apply texture or mapping coordinates to the faces that compose the stream geometry.


Application of texture coordinates to the faces that compose the stream geometry:

1) Select the stream.

2) Select Modify.

3) Under Selection, select Face mode.

4) Select all the faces that compose the stream geometry.

5) Using the Modifier List pull-down menu select Unwrap UVW.

The first image further explains the above procedures.



Apply the texture coordinates to make the texture for the stream follow the shape of the geometry. 

6) Click on the Edit button under Parameters.  This will display the Edit UVWs window.

7) In the Edit UVWs window click on the Show Options button at the bottom to show additional properties.

8) In the Edit UVWs window under Bitmap Options enter in the Width field 64 and enter in the Height field 512. 

The example_tutorial_stream.tif texture should now display properly.

The second image further explains the above procedures. 

9) Select Move mode in the Edit UVWs window.

10) Map the stream texture to the faces of the stream geometry by moving the vertices.

11) Once this is done, close the Edit UVWs window.

The third image further explains the above procedures and shows the final result.  

12) To make the stream part of the level, it must be linked or attached to the reference frame.

a) Select the stream object.

b) Click on Select and Link.

c) Click on Select by Name, this will display the Select Parent window.

d) In the Select Parent window select "frame".

e) Click on Link.

The fourth image or last image further explains the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The stream now has a material and mapping coordinates applied to it that once viewed in game will scroll and give the appearance of running water.

For additional water effects the stream bed will have a different material applied to it than the currently applied terrain material. Such additional water effects include: the sound of water splashing when the player runs through the water or stream bed, the water particle effects when the player runs through the stream or stream bed, and the explosion effects and particle effects that occur when such an event occurs in the stream.

It should be noted that the steam in the examples and tutorials is the simplest case of creating or "simulating" water.  Before continuing, a short discussion on water and water volumes and how they exist and behave in Halo is in order.

Water and Water Volumes in Halo

Water in Halo is very simple, almost to the point where water does not truly exist (at least in the sense that most people that have edited or created water in other games are used to).  This is understandable since there are no specifically designed underwater missions or environments in Halo.  In the case of streams, the water is shallow and the player cannot get under the surfaces of the water and be completely immersed.  Couple these facts with the game play mechanic that the player in the role of the Master Chief has a self contained suit of armor and has no fear of drowning, there was no need for complicated underwater player behaviors, physics, and effects.

The majority of water encountered is in the form of simple streams.  This kind of "water" has 2 parts: a stream surface with a shader whose settings simulate a water surface (small waves, flowing water, etc...) and the terrain underneath which has specific settings so that when objects interact with the terrain water effects occur (particles, sprites, sounds, etc...) giving the appearance that the stream itself is water.  It is this kind of water that is demonstrated in the tutorial below.

There is one instance in the game where a large volume of water exists that the player can interact with or go "completely under water", this occurs for the island level in single player Halo, Silent Cartographer and in its multiplayer derivative, Death Island.

In this instance, the water is still very simple.  Just like the stream example, there are the water surfaces that have the water shader effects and the terrain or surfaces underneath that are setup to simulate water with the effects that occur when objects interact with these surfaces.  In the case of the water surfaces, these are defined with a .shader_transparent_water where as the streams use .shader_transparent_chicago or shader_transparent_chicago_extended shader tags.  The water is made to have no collision using the "!" Render Only Shader Symbol just as with the stream example below.

The combination of the .shader_transparent_water and water fog volumes described below determine additional game behaviors such as the ability of vehicles to travel over the water (Ghosts will eventually stop and sink).

For large volumes of water, a water fog volume is created.  This is done by adding the fog plane Shader Symbol "$" to the material names for the water surfaces, or a similar plane is created with another fog plane defined shader assigned to the surfaces of the plane.  The volume is defined to be a water fog volume by enabling the "is water" flag located in the .fog tag. 

Fog planes or volumes (suchs as those seen throughout the game and in the chasm in the multiplayer level Gephyrophobia) as well as water fog volumes are all created in a similar manner. 

Make a plane that covers the entire area and extends past the level borders (this plane does not have to follow the Sealed World Rules), face the normals for the faces of the plane upwards, apply a material with the fog plane symbol or use the +unused special material (this material has no collision nor will it draw) with the fog plane symbol (to create the material +unused$).  In Sapien, create a fog reference (a .fog tag that contains fog color and density as well as other properties) for the "fog palette" and then enter the volume and set the .fog palette entry to be applied to this volume.

The following procedures and example images will discuss the implementation of materials to achieve water effects.  The faces that compose the stream bed will be assigned a material that will give the stream the appearance of being water when the player and other game objects interact with it.


Creation and application of the stream bed material:

The stream bed material will be identical to the surrounding terrain material except for the fact that its physics material settings for the shader will be set to "water" instead of "dirt", this can be observed in the provided example shader files previously mentioned.

This new material will be added as a new Sub-Material to the "tutorial terrain\sky" Multi/Sub-Object.

1) Open the Material Editor and select the "tutorial terrain\sky" Multi/Sub-Object.

2) Add a third Sub-Material by clicking on Add.

3) Set up this new Sub-Material exactly like Sub-Material ID 2 (example_tutorial_ground) except name this Sub-Material "example_tutorial_streambed"

4) Close the Material Editor.

The first image further explains the above procedures.



The new example_tutorial_streambed Sub-Material will now be applied to the stream bed.  Follow the procedures below.

5) Select the level.

6) Select the Modify tab.

7) Select Face mode.

8) Select the stream bed faces, this includes all faces under the stream surface as well as those faces that partially intersect the stream surface.

9) Set the faces to Material ID 3.  Leave the Smoothing Group still set to 2 since we want the lighting for the terrain and stream bed to be blended together.

The second image or last image further explains the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Creation of a Simple Base Structure

The following procedures and examples will show the construction of a simple base structure. 

Eventually, the structure will be "mirrored" or copied to create a second opposing base structure, this will be covered in subsequent tutorials along with the creation of Multi/Sub-Object material groups and the application of the Sub-Materials and texture coordinates to the faces of the base structure.

The following procedures and example images will demonstrate the creation of a simple base structure.


Creation of the base structure geometry:

When creating a level, particularly indoor environments and\or buildings or structures, it is always helpful to have a scale reference.  The dimensions of various game elements of Halo, including the player dimensions, are available for reference in the Halo Player Statistics.

Another technique is to use a reference model.  The Halo Editing Kit includes a simple reference model for the player (the Master Chief) and a vehicle (the Warthog).  The following procedures will demonstrate how to merge or import a reference model for use as scale reference for the creation of the base structure geometry.

1) In 3ds Max go to File and select Merge.  This will open the Merge File window.

2) In the Merge File window go to the master_chief directory under the Halo\data\characters\reference directory structure.

3) In this directory there will be a master_chief.max file, select this file.

4) Click on Open. The Merge window will now appear.

The first image further explains the above procedures.



5) In the Merge window, select the Master Chief object in the list.

6) Click on OK.

The Master Chief reference model will now appear in the level and can be moved and rotated as necessary.  For this tutorial, the reference model will be moved to the southern dirt patch of the level where the base structure will be constructed.

Note that the model may appear below the terrain but will be selected, move the model up to make it visible.

The reference model will NEVER be linked to the reference frame and only exists as a reference tool.  Since the model is not linked to the frame, it will never be part of the level and will never be exported. Therefore, the model can be kept in the .max file and does not have to be deleted each time the level is exported to a .jms.

The second image further explains the above procedures.



7) To create the core geometry of the base structure follow the procedures below.

a) Select Create.

b) Select Box and create a box that has the following dimensions:  Length: 280.0 Width 96.0 Height 96.0 and that has Length Segs: 2 Width Segs: 1 and Height Segs: 1.

c) Position and align the box such that it is roughly in the center of the dirt spot but slightly more towards the center of the level.

The third image further explains the above procedures.



The box will now be manipulated to create a ramp and simple hallway.

8) To make the front ramp to the base do the following:

a) Convert the box to a mesh (Edit Mesh).

b) Make the first segment of the box into a ramp by welding (Vertex Mode and Weld) the top 2 vertices to the bottom 2 vertices.

The fourth image further explains the above procedures and shows the final result of the above procedures.



9) To create the simple hallway the side faces of the back segment for both sides are deleted as well as the bottom faces for the two segments.

The fifth image further explains the above procedures and shows the final result of the above procedures.



10)  Extend the hallway by extruding the side edges (Edge Mode, Select the Edges, and Shift-Drag)

11) The ramp was slightly extended also by just selecting the front vertices and moving them forward.

The sixth image further explains the above procedures and shows the final result of the above procedures.



12)  The faces that form the top of the base were hidden to make the construction of the internal hallway and features easier.

Vertices were then created and aligned to form the beginning of the doorways for the hallway.  The top vertices were scaled inwards to add a slight taper to the door way once it is completed.

Note that the Master Chief reference model was moved to help determine how big the hallway and entrances\exits should be.

The seventh image further explains the above procedures and shows the final result of the above procedures.



13) Using the newly created and existing vertices, polygons or faces were created to make the sides of the bases with the hallway doorways cutout.

14) The floor and ceiling for the hallway were also created by creating polygons or faces using the newly created vertices.

The normals for the visible collideable faces must point in the proper direction.

The eighth image further explains the above procedures and shows the final result of the above procedures.



15) The faces that compose the hallway ceiling were hidden to make the viewing and construction of the hallway walls easier.

The hallway walls were created by creating polygons or faces using the existing vertices.

The ninth image further explains the above procedures and shows the final result of the above procedures.



16) All of the faces were unhidden and the base was named "blue base" by entering this name into the object name field.

The tenth image or final image further explains the above procedures and shows the final result.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following procedures and example images will demonstrate the modification of the base structure and the addition of ladders.


Creation of ladder guides and ladder faces:


When adding ladders to a level, it is always good to provide some geometry that helps "guide" the player while getting on or off the ladder and that helps keep the player from falling off or shifting on the ladder as the player travels along the ladder face.

1) Two ladder guides or grooves are created on the back side or "South" side of the base structure.

2) The guides or grooves will provide an inset for the ladder faces or polygons to be placed.

Since the ladder faces must be offset from the back face of the grooves and cannot be created using the front vertices additional vertices and faces are created midway on the sides of the inset grooves.  The reason for this is because if the ladder faces were created using the front vertices multiple edges would be created.  Multiple edges are invalid due to the fact that they break the Sealed World Rules.

3) The edges at the start of the ladder guides or grooves are beveled or angled to help guide the player onto the ladder as the player approaches the ladder faces from any angle.

The first image further explains the above procedures and shows the final results of the geometry modifications.



4) The faces that will be become the actual ladders are added using the middle vertices set into the grooves created for the ladders.

The second image or last image further explains the above procedures and shows the final results of the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following procedures and example images will demonstrate the modification of the base structure for the inclusion of a teleporter gateway.


Creation of a teleporter gateway:


When adding teleporters to a level, it is always good to provide some geometry that helps "guide" the player on entering or exiting a teleporter.  This teleporter guide or gateway is also useful in visually indicating to the player the existence of the teleporter as well as the area they must enter in order to trigger the teleporter.

1) A doorway or gateway for the teleporter is created on the back side or "South" side of the base structure.

The first image further explains the above procedures and shows the final results of the geometry modifications.



2) The visible teleporter "field" is added by creating faces that fit the opening but are NOT attached to the base meshes (the vertices and associated edges do not align but the edges are flush with the surrounding surfaces or faces). 

The faces are then inset.  The faces created form a curved surface for aesthetic purposes.

These faces will be made render only later when materials are applied just as the stream faces were and therefore these faces may have open edges since they will be non-solid (no collision).

The netgame flags required to make the teleporter work will be placed using Sapien and will be demonstrated in the Population section.

The second image or last image further explains the above procedures and shows the final results of the above procedures.



Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following procedures and example images will demonstrate the addition of lights to the base hallway.


Addition of lights to the base hallway:

The tunnel for the base will need some basic lighting.  Lighting and radiosity will be covered more in depth in the Radiosity (Lighting) section.

1) Two lights were added to the tunnel by creating 2 faces for each light and then moving these faces slightly off the surface of the tunnel ceiling (this prevents z-buffering render anomalies and Tool compilation errors). 

Note that these lights currently do not follow the Sealed World Rules since they have open edges. As was demonstrated with the creation of the stream in the level, these faces will be made "render only" and will have no collision once the appropriate material is applied to the faces.  These faces will then comply with the Sealed World Rules.

In this case, the light faces WILL be visible AND cast light for use in radiosity.  As will be covered in the Radiosity (Lighting) section, faces can emit light and not render, or render and not emit light, or both. 

The Master Chief reference model was moved or hidden in the example image.

The image to the right further explains the above procedures and shows the final results for the procedures outlined above.


Click to Open Larger Image in New Window


Separation of the Level into Separate Mesh Objects

Before creating the Multi/Sub-Object material group for the base structure created above and applying the materials, texture coordinates, and smoothing groups to the base structure faces, the structure must be made part of the level and satisfy the Sealed World Rules.

There are several ways to build a level.  It is perfectly valid to make the entire level a single mesh that satisfies the Sealed World Rules.  It is also perfectly valid to create a single Multi/Sub-Object that contains all the Sub-Materials for the level and apply it to this single large mesh.

Since there are so many parts to a level and a level can become quite large and cumbersome to work with, it is very advantageous to separate the level into several objects.  These objects can then have their own individual Multi/Sub-Object material group.  This separation of mesh parts and material groups greatly helps in the organization of the level and greatly decreases the cumbersome nature of dealing with a single large mesh when creating something as complicated as a game environment. 

It is the latter approach that will be followed and demonstrated in the proceeding tutorials and examples.

When the level data is exported using Blitzkrieg, only the vertices and subsequent face data (material type\name, smoothing group, texture coordinates, etc...) are exported.  Therefore, objects that meshes are separated into only exist in 3ds Max.  Because of this, as long as the vertices and related edges match exactly between the mesh objects (satisfying the Sealed World Rules), the exported data will reflect this.  The level will export and compile properly.

The following procedures and example images will demonstrate the merging of the base with the level terrain to create polygons to seal the world and to match the relevant vertices and associated edges.  The faces that compose the base will then be detached from the level mesh to create a separate object that will have a separate Multi/Sub-Object material group.  The base object will then be linked to the reference frame.

The following procedures and example images will demonstrate the merging of the base with the level terrain to satisfy the Sealed World Rules.


Merging the base structure with the level object:

1) Select the level (object named "level").

2) Under Edit Geometry click on Attach to activate attach mode.

3) Now click on the base object (object named "blue base").

The base has now been merged and is a part of the level geometry.

The base may change color or have a texture or textures suddenly applied to it, this does not matter since it will have materials and texture coordinates properly assigned to it later.  This is the result of merging the faces of the base (which have a default material id number associated with them) with an object that already has a material assigned to it.

The first image further explains the above procedures and shows the final results of the above procedures.



4) Toggle Attach mode off by clicking on Attach again.

5) Select all the faces or vertices that compose the base structure and then move the base down in the Z-Axis so that it is flush or even with the terrain underneath it.

6) Delete the ground faces that are adjacent or around the base.

The second image further explains the above procedures and shows the final results of the above procedures.



7) Create polygons to fill in the hole around the base and attach the base geometry to the surrounding terrain geometry. 

Make sure to fill in the holes and gaps in the ladder guides (the area behind the ladder faces).

8) Assign these newly created faces to Material ID 2 and Smoothing Group 2.

9) Select all the faces that create the terrain and apply a UVW Map (Top down projection texture mapping) to fix the texture coordinates (as demonstrated before).

The third image or last image further explains the above procedures and shows the final results of the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The following procedures and example images will demonstrate  the separation of the base into a separate object that will eventually be linked to the reference frame.


Separating the base structure from the level object:

1) Select the level.

2) Enter Face mode and select all the faces that compose the base structure.

3) Under Edit Geometry click on Detach.  The Detach dialog window will appear.

4) In the Detach dialog window enter "blue base" in the Detach as: entry field, this will detach the faces to a separate object called "blue base".

5) Click on OK.

The image to the right further explains the above procedures.


Click to Open Larger Image in New Window


Application of Materials to the Base

Now that the blue base has been separated into a separate object, a separate Multi/Sub-Object material group will be created.

The following steps and example images will demonstrate the creation of the Multi/Sub-Object material group and Sub-Materials needed to complete the base structure.


Creation of the base structure Material Group\Multi/Sub-Object:

1) In 3ds Max select the blue base object.  Open the Material Editor.

2) Select an empty Material Group.  This Material Group is currently set to a Standard Material.

3) Click on the Standard button to bring up the Material/Map Browser.

4) In the Material/Map Browser click on Multi/Sub-Object.

5) Click on OK.

The first image further explains the above procedures.



6) This Multi\Sub-Object is going to be called "base structures".  Type this name into the Multi\Sub-Object description window. 

7) Now apply the Multi\Sub-Object to the blue base object.  Since the "blue base" object is selected, click on Assign Material to Selection.  This Multi\Sub-Object has now been assigned to the "blue base" object.  The Sub-Materials for this Multi\Sub-Object can now be applied to the object using the materials associated ID number.

8) Just for organization, the extra Sub-Materials were deleted by selecting the Sub-Material to delete and clicking on Delete until the desired number of Sub-Materials remained, in this case, 8 Sub-Materials.

9) The Sub-Materials are now going to be named and linked to images (Diffuse maps).  Since this has been demonstrated before, the Sub-Material properties will be listed in the table below.

Note: The .tif file reference is the image to be linked to in Diffuse Map settings. 

The directory containing these images is the same as the previous examples: Halo\data\levels\test\tutorial_examples\bitmaps

Make sure that in the the Material Editor, to enable the display of the materials by clicking on the Show Map in Viewport button for each Sub-Material.

ID Name Diffuse Map (.tif file)
 
1 example_tutorial_metal example_tutorial_metal.tif
2 example_tutorial_panels example_tutorial_panels.tif
3 example_tutorial_metal_floor example_tutorial_metal_floor.tif
4 example_tutorial_plate_floor example_tutorial_plate_floor.tif
5 example_tutorial_ladder%^ example_tutorial_ladder.tif
6 example_tutorial_lights_blue! example_tutorial_lights_blue.tif
7 example_tutorial_lights_red! example_tutorial_lights_red.tif
8 example_tutorial_teleporter! None (Diffuse color set to green)


Note that the Shader Symbols have been included.  The Sub-Material example_tutorial_ladder%^ demonstrates that materials can have multiple Shader Symbols applied.  In this case the ladder material has been made viewable from both sides or two-sided using the % symbol and has been made a ladder or climbable by the player using the ^ symbol.

The .tif files listed above were included with the Halo PC End User Editing Kit.

As before, the completed or provided example resources will be used for the following examples for the sake of simplicity.

Once all the Sub-Materials have been created, named, and linked to their reference images, close the Material Editor window.

The second image or last image further explains the above procedures and shows the results in the Material Editor.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Now that the blue base has been separated into a separate object and a separate Multi/Sub-Object material group has been created, the Sub-Materials as well as texture mapping coordinates will be applied.

The following steps and example images will demonstrate application of the Sub-Materials needed to complete the base structure.


Application of Materials and Texture Coordinates to the base and base surfaces:

The following table describes the areas of the base and what material is applied to them.

Base Area Material Applied ID
 
All the faces that compose the teleporter gateway at the rear of the base example_tutorial_metal 1
Faces that compose the tunnel ceiling example_tutorial_metal 1
Faces that compose the side walls of the tunnel example_tutorial_metal 1
All the faces that compose the sides of the base (front, right, left and back faces including the ladder guide grooves. example_tutorial_panels 2
Tunnel floor faces example_tutorial_metal_floor 3
Top faces of the base and ramp example_tutorial_plate_floor 4
Ladder faces located at the rear of the base example_tutorial_ladder%^ 5
Base lights located in the tunnel example_tutorial_lights_blue! 6
Not applied to any surfaces for this base example_tutorial_lights_red! 7
Faces for the teleporter shield located at the rear of the base example_tutorial_teleporter! 8


Once the material is applied, the faces have texture coordinates assigned.  The texture coordinates or texture mapping is applied to the surfaces using a combination of projection mapping (UVW Map) and UVW Unwrapping and mapping (Unwrap UVW).

The images to the right further explain the above procedures and several images have been provided showing the base from several angles to show the final base material application and texture alignment.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Now that the blue base has had Sub-Materials as well as texture mapping coordinates applied to the surfaces that compose the base, smoothing groups will be applied.

The following steps and example images will demonstrate the application of smoothing groups to the surfaces of the base.

 

Assigning smoothing groups to the base surfaces

All the faces of the base structure were selected and all the smoothing groups were cleared (Clear All under Smoothing Groups while in Face mode.)

Smoothing groups were then applied to the surfaces of the base.  There are many ways to apply Smoothing Groups to all the faces geometry.  The Smoothing Groups below were applied manually.

The following table describes the areas of the base and what Smoothing Group is applied to these surfaces.


Base Area/Surfaces Smoothing Group ID
 
Faces that compose the front of the teleporter gateway 8
Faces that compose the back of the teleporter gateway 8
Faces that compose the inset sides of the teleporter gateway 9
Faces that compose the tunnel ceiling 6
Faces that compose the inset floor of the teleporter gateway 2
Faces that compose the inset ceiling of the teleporter gateway 11
The external faces on the top of the teleporter gateway 10
The external faces that compose the sides of the teleporter gateway 12
Faces that compose the side walls of the tunnel 7
Faces that compose the sides of the inset grooves for the ladders 4
Faces that compose the sides of the base with the tunnel doorways 4
Faces that compose the sides of the ramps 4
Faces that compose the front faces of the base 5
Faces that compose the walls on the rear of the base 13
Tunnel floor surfaces 3
Top surfaces of base and ramp 3
Ladder surfaces located at the rear of the base None
Base lights located in the tunnel None
Faces for the teleporter shield located at the rear of the base None


Creating the Opposing Base Structure

Now that the blue base structure has been completed, it can be copied and used to construct a second base structure on the opposite end of the level.

The following procedures will demonstrate the structure being "mirrored" or copied and rotated 180 degrees to create a second opposing base structure.  Both base structures will then be attached as to the reference frame.


Copying and mirroring the base structure:

1) Select the blue base.

Clone the object (Ctrl V).  This will bring up the Clone Options window.

2) Make sure that Copy is selected under Object. Under Name enter the name "red base".

3) Click on OK.

The first image further explains the above procedures.



As mentioned before, constructing the level such that it is centered on the origin can help in the creation of the level, especially when having to duplicate or mirror geometry such as base structures.

In the procedures below, the red base objects Pivot point will be moved to the origin of the level (X: 0.0 Y: 0.0 Z: 0.0) and the newly copied or created "red base" will be rotated about this point. 

Using this technique also insures that structures are equally distanced from features in the level, thus making the level more balanced with respect to game play for the player or for teams.

4) With the red base object still selected go to the Hiearchy tab.

5) Under the Adjust Pivot section, click on Affect Pivot Only.  The pivot point for the base object will appear.

6) Move the pivot point to the origin of the level (X: 0.0 Y: 0.0 Z: 0.0).

The second image further explains the above procedures.



7) With the red base object still selected, go to the Modify tab.

8) Rotate the base 180 degrees around the Z-Axis. The easiest way to do this is to follow the procedures below:

a) Enter Rotate mode by clicking on the Rotate mode button.

b) Right Click on the Rotate mode button to bring up the Rotate Transform Type-In window.

c) Enter 180 into the Z: field under Absolute: World and hit enter.

The object will be rotated around the pivot point and will now appear on the opposite side of the level the same distance from the origin that the blue base object is.

The third image or last image further explains the above procedures and shows the final results of the base rotation.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Now that the red base has been rotated, it must be attached to the level and the holes in the mesh patched by adding polygons and matching vertices and edges to satisfy the Sealed World Rules.  The base will then be detached from the level mesh into its own object again and will have some minor material adjustments made.  Finally, both bases will then be attached to the reference frame.

The following procedures will demonstrate the red base structure being attached to the level mesh, the level mesh and structure being modified to satisfy the Sealed World Rules, the faces that construct the red base being detached into a separate object, the modification of materials to distinguish the base structure, and the linking of both bases to the reference frame.


Completing the red base structure:

1) Select the level object.

2) Under Edit Geometry, enter Attach mode by clicking on Attach.

3) The Attach Options window will appear, select Do Not Modify Mat IDs or Material.

The base will temporarily have the "tutorial terrain\sky" material applied to it since this is the material for the "level" object. As a result, the textures or materials on the faces of the base will appear incorrect. 

This is fine since the "Do Not Modify Mat IDs or Material" option was selected and this will keep the material assignments for the base correct.  When the faces for the base are selected and detached to form the separate red base object again, the "base structures" Multi/Sub-Object will be applied and the base will have the correct materials again.  No additional work will be needed.

The first image further explains the above procedures.



4) As demonstrated in the previous tutorial, remove the faces around the base.

The second image further explains the above procedure and shows the final results of the procedure.



5) Create polygons to attach the base structure to the terrain mesh.  Once completed, fix the texture coordinates for the terrain in the same manner demonstrated when doing this same procedure for the blue base.

The third image further explains the above procedures as well as shows the end result of the above procedures.



6) Select all the faces that compose the base structure. 

7) Under Edit Geometry, click on Detach. The Detach dialog window will appear.

8) In the Detach dialog window enter "red base" in the Detach as: field.

9) Click on OK.

The fourth image further explains the above procedures.



10) Select the red base object.  Open the Material Editor, select the "base structures" Multi/Sub-Object

11) Click on Assign Material to Selection.

12) Close the Material Editor.

The fifth image further explains the above procedures.



The base should now appear with the correct materials assigned and appearing on the faces of the structure.

13) To help distinguish this as the red base, the blue lights in the base hallway or tunnel will be turned into red lights by following the procedures below:

a) Select the faces that compose the hallway lights.

b) Apply Material ID 7 to these faces.

c) Adjust the texture coordinates (Unwrap UVW).

The sixth image further explains the above procedures as well as shows the final results for the above procedures.



14) Finally, attach the bases to the reference frame by doing the following:

a) Select both the red base and blue base objects. 

b) Click on Select and Link.

c) Click on Select by Name.  The Select Parent window will appear.

d) Select "frame" from the list.

e) Click on Link.

Both levels will now be a part of the level since they are linked to the frame.

Since the vertices and corresponding edges for each base matches the terrain mesh, the Sealed World Rules are satisfied.

The seventh and final image further explains the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Player Clipping Techniques

It is sometimes necessary to create additional collision geometry in the level that prohibits the ability of the player to reach certain areas of the level or to help smooth the movement of the player around certain geometry.  This technique is sometimes referred to as "player clipping".  Geometry that is not rendered, but only affects the player and vehicles is added to the existing geometry of the level.

Restricting access to certain areas of the level such as the tops of canyon walls, roofs of structures, pillars, etc... can be crucial in creating a good game play experience.  The player must not be allowed to exploit the game environment and break the game mechanics.  A good example are the Capture the Flag (CTF) game modes in Halo, if a player has the flag and can take it to an unexpected area where it is easily defended or they cannot be reached, this breaks the game.  Fortunately, Halo does have mechanisms to help when objectives such as the flag or oddball get into odd areas, these items will eventually respawn or reset after a specific amount of time.

Restricting the player is also often used to keep the player from seeing "behind the scenes" of the level by preventing the player from seeing past the edges or over the tops of the core geometry of the level, typically where the level geometry for the terrain mesh intersects with the faces used to render the sky model or sky box.

The following tutorials will discuss the uses of and demonstrate the creation of the player clipping material and the implementation of player containment or player clipping.


Creating the "player clipping" material.

The first step is to create a special material or shader that will not allow the player or vehicles to pass it but still allows objects and projectiles to pass.

1) As demonstrated before, a new Multi/Sub-Object will be created.  Open the Material Editor and select an empty Multi/Sub-Object material group.  This Material Group is currently set to a Standard Material.

2) Click on the Standard button to bring up the Material/Map Browser.

3) In the Material/Map Browser click on Multi/Sub-Object.

4) Click on OK.

The first image further explains the above procedures.



5) This Multi\Sub-Object is going to be called "player clip".  Type this name into the Multi\Sub-Object description window. 

6) Just for organization, the extra Sub-Materials were deleted by selecting the Sub-Material to delete and clicking on Delete until the desired number of Sub-Materials remained, in this case, 1 Sub-Material.

7) The Sub-Material is now going to be named and linked to images.  To name or label Sub-Material ID 1 follow the procedures below.

Click on the Sub-Material button to go from displaying the Multi/Sub-Object Basic Parameters window in the Material Editor to displaying the Shader Basic Parameters, Blinn Basic Parameters, Extended Parameters, SuperSampling, Maps, Dynamic Properties and Viewport Manager.

The second image further explains the above procedures.



8) Enter the name "example_tutorial_playerclip*" into the name or label field.

Notice the "*" Shader Symbol which denotes that this material will be treated by Tool and the game as collideable only, it will not render in the game.

9)  To display a texture or image for this material when applied to a surface do the following:

a) Under Blinn Basic Parameters, click on the small box to the right of the Diffuse color setting.  This will display the Material/Map Browser.

b) Click on Bitmap.

c) Click on OK and the Select Bitmap Image File window will now be displayed.

The third image further explains the above procedures.



10) To select an image to display for the material do the following:

a) In the Select Bitmap Image File go to the bitmaps  directory under Halo\data\levels\test\tutorial_examples.

b) Under the bitmaps directory there should be several .tif image files.  Select the example_tutorial_playerclip.tif file.

This image is used as a guide to see the player clipping surfaces in 3ds Max and will never appear in the game.  Any image can be used.

As was mentioned previously, the resources under the tutorial_examples directory represent the end result of all the examples and tutorials contained within the Halo PC Editing Reference. 

The Halo End User Editing Kit provides many resources including a wide range of tags as well as image resources (.tif files) that can be used in the creation of Halo multiplayer levels. 

The files provided also exist as examples and learning aids for those wishing to create their own custom game resources whose creation and modification may not be covered currently in the Halo PC Editing Reference.

For now, the completed or provided example resources will be used for the following examples for the sake of simplicity.

c) Click on Open.

The fourth image further explains the above procedures.



To return to the previous options in the Material Editor window click on the Go to Parent button.

11) In the Material Editor, enable the display of the material by clicking on the Show Map in Viewport button.

12) The Sub-Material should be displayed on the Material Sample.

13) To return to the Multi/Sub-Object Basic Parameters click on the Go to Parent button.

14) Close the Material Editor window.

The fifth image or last image further explains the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


With the "player clipping" material created some simple player clipping geometry will be created.  The geometry created to block the player must not have any open edges and must form a sealed volume.  The player clipping geometry follows the Sealed World Rules.

The player clipping geometry is going to be kept as a separate object so that it can be better organized with its special material and so that it can be hidden or handled more easily in 3ds Max.

The following procedures will demonstrate the implementation of player containment or player clipping.


Creating player clipping or player collision geometry.

To keep players from waiting or "camping" in the recessed portions of the teleporter gateways a "clip" plane is going to be created over the front faces of the teleporter gateways.

1) Select the blue base and hide the teleporter shield polygons or faces.

2) Create 2 faces that cover the front of the teleporter gate.

3) Under Edit Geometry click on Detach.  The Detach dialog window appears.

4) Enter "player_clip" in the Detach as: field.

5) Click on OK.

The first image further explains the above procedures.



6) Apply the player clip material to the object and assign the Sub-Material to the faces.

a) Select the newly created player_clip object and apply the player clip Multi\Sub-Object material group. 

b) Select the faces and clear any Smoothing Groups and apply Material ID 1 to the faces.

Perform Steps 1-6 on the red base to create the same player clipping plane for the teleporter gate on the red base. 

Both player clipping pieces of geometry should be attached together to form a single "player_clip" object.

The second image further explains the above procedures.



The final set of player containment or player clipping geometry that will be created is a border around the edge of the surrounding hills. 

This barrier will prevent the player from getting on top of the hills and seeing past the edge of the world where there is no geometry since only the sky box is drawn past this border.

7) Select the level object.

8) Select the 2 faces that form the top of the sky.  Delete these faces.

The third image further explains the above procedures.



9) Select Edge mode.

10) Select all the edges that comprise the front edges of the surrounding hills.

The fourth image further explains the above procedures.



11) While still in Edge mode, extrude these edges up to create new faces by holding down Shift while moving up in the Z-Axis.

The fifth image further explains the above procedures.



12) Make the new vertices and edges even with the sky box vertices and edges.  Follow the below procedures:

a) Select Vertex mode and select the top most vertices of the newly created polygons.

b) Click on the Top view.  Under Edit Geometry click on View Align, this will make the vertices even in the XY plane.

c) Now move the vertices to be even with the vertices at the top of the sky box.

The sixth image further explains the above procedures and shows the final results of the above operations.



13) Remove any extra faces that may have resulted from extruding the edges.  Once this is complete, create polygons (using the existing vertices) to seal the top of the world again so that it satisfies the Sealed World Rules.  All of these faces should be made the +sky material by setting their Material ID to 1.

This technique may seem cumbersome or wasteful but for the type of level that the tutorial level represents it is necessary in order to get the clipping planes to work properly, the level to export and compile properly, and to satisfy the Sealed World Rules.

Remember that the number of faces used to construct the sky does not matter since the sky model gets rendered to these faces and the triangle count from the sky model is what will count in this instance.

There are many ways to construct a game environment and its surrounding terrain and sky box surfaces.  It is quite common for all the sky box faces to have their top vertices pulled to a single vertex in the center of the level at a very high distance in the Z-Axis.  Sometimes, the sky faces are not set back as they are in the tutorial level, instead the sky box faces are used as the boundaries for the level and serve to keep the player from accessing any areas where the player's presence is not desired.

It is recommended that for outdoor levels that have vehicles that there be quite a bit of space left in the Z-Axis.  This allows weapons that have a long range and that can fire in an arc (such as the Fuel Rod Gun) to have room to fire without colliding with the ceiling or sky.  It is also nice to allow the Halo physics to have room to work so that when vehicles get hit with explosions they have room to do flips and other spectacular vehicular acrobatics.

The seventh image further explains the above procedures and shows the final results of the above operations.



14) Hide the newly created top faces of the level.  Now, select all the faces that will compose the player clipping surfaces. 

15) Under Edit Geometry, click on Detach.  The Detach dialog window will appear. 

16) Enter the name "player_clip_01" in the Detach as: field.

17) Click on OK.

The eighth image further explains the above procedures and shows the final results of the above operations.



18) Apply the player clip material to the object and assign the Sub-Material to the faces.

a) Select the newly created player_clip_01 object and apply the player clip Multi\Sub-Object material group. 

b) Select the faces and clear any Smoothing Groups and apply Material ID 1 to the faces.

In the example picture the faces also had a simple box map projection applied to them (UVW Map), but this is not necessary, it just makes the faces easier to work with visually.

The player_clip object was then attached to the player_clip_01 object to keep all the player_clip surfaces under one object.

The player_clip object was then linked to the reference frame (frame object).

The ninth image or final image further explains the above procedures and shows the final results of the above operations.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Placement of Portals

The final step to completing the core geometry for the level is the addition of surfaces or planes that define portals.  These portals are used by the engine for several purposes.

The primary function of these portals are as "visibility portals", portals that the Halo game engine uses to try and cull out objects that cannot be seen to improve performance by not rendering such objects. 

The portals in general help break up the level so that it can be handled in parts to help performance in general.  Attributes can also be set for portals, such as ambient sounds to play in the portal as well as environmental audio effects.  Portals can also be used to define weather volumes and fog volumes.

There are 2 kinds of portals that are defined, "portals" and "exact portals".  The following are descriptions for each:

1) Exact Portals:  These are portals defined by surfaces or planes with the +exactportal material applied to them.  Exact portals are created such that the faces (edges and vertices) match the surrounding geometry (edges and vertices).  These faces in effect create a "seal".  The volume that is between these surfaces or planes is an exact portal.  The direction of the normals of the faces helps determine how the portal is defined.

2) Portals: These are portals defined by surfaces or planes with the +portal material applied to them.  These portals are created by faces or planes that are used to divide the game environment.  These planes must create a seal with the level, but do not have to match vertices and the associated edges with the surrounding geometry.  These planes are much more loosely defined and placed in the level and are used to break or divide the level up into sections.  The direction of the normals for the faces helps determine how the portal is defined.

A volume defined as an Exact portal CAN have standard Portal areas defined within it and vice versa as long as the above rules outlined in their definitions are satisfied.  However, an open ended or non-enclosed Portal cannot intersect an Exact portal, a "vis error" or rendering anomaly will occur.  In other words, be careful to not let a Portal plane improperly divide or bisect an Exact portal volume.

Portals can be used to help portal horizontally (looking left and right in the XY plane) AND vertically (looking up and over objects or geometry that vary in the Z-Axis).

The tutorials below will demonstrate the creation and placement of planes that will define Portal volumes and Exact portal volumes.


The creation of the portal Multi/Sub-Object material group:

The first step is to create the portal materials.

1) As demonstrated before, a new Multi/Sub-Object is created.  Open the Material Editor and select an empty Multi/Sub-Object material group.  This Material Group is currently set to a Standard Material.

2) Click on the Standard button to bring up the Material/Map Browser.

3) In the Material/Map Browser click on Multi/Sub-Object.

4) Click on OK.

The first image further explains the above procedures.



5) This Multi\Sub-Object is going to be called "portal materials".  Type this name into the Multi\Sub-Object description window. 

6) Just for organization, the extra Sub-Materials were deleted by selecting the Sub-Material to delete and clicking on Delete until the desired number of Sub-Materials remained, in this case, 2 Sub-Materials.

7) Enter the names "+portal" into the name or label field for Sub-Material 1 and "+exactportal" into the name or label field for Sub-Material 2.

These are Special Material names, more information on these materials as well as all Special Materials can be found in the Special Materials section in the Materials Overview reference section.

The Diffuse colors for these materials were set and for each Sub-Material the Show Map in Viewport option was toggled on.

The second image or last image further explains the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


The procedures below will demonstrate the creation and placement of planes that will define Portal volumes and Exact portal volumes.


The creation and placement of portals:

The hallways for the 2 base structures (blue base and red base) will be made Exact portal volumes.

Later, when the level is running in the game, use rasterizer_wireframe 1 to view the level and exit and enter the hallways to see how the level geometry and objects are not drawn from the player view as this portal volume is entered and exited.

1) Select the blue base. In Face mode, create 2 polygons that exactly fit the doorways of the hallways.

2) Make sure the normals for the faces point outwards, this will help define the volume between the faces. the normals can be viewed by clicking on the Show Normals check box under Selection.  If the normals are not easily visible, the lengths of the visual representations of the normals can be increased using the Scale value.

3) Detach the faces for the Exact portals by clicking on Detach under Edit Geometry.  The Detach dialog window will appear. 

4) In the Detach as: field enter the name "base portals".

5) Click on OK.

Repeat the above procedures 1-5 for the red base and combine the 8 faces that compose the portals into 1 object called "base portals".

The first image further explains the above procedures.



6) Now select the "base portals" object and apply the "portal materials" Multi/Sub-Object.

Once this is complete, assign the +exactportal material to the faces by selecting all the faces and setting the Material ID to 2 for the faces.

Once this is complete, the "base portals" object should be linked to the "frame".

Note that the portal materials are at 80% opacity, this is just a setting in the Sub-Material and has no effect in game, it is just used as a visual aid in 3ds Max.

The two hallways have now been defined as Exact Portal volumes.

The second image further explains the above procedures and shows the final results of the listed operations.



The level will now be divided using standard Portals.

7) Deselect all objects.  Under Create click on Plane.

8) Enter the following values in the listed fields, Length Segs: 1 and Width Segs: 5

9) In the Right view, create the plane such that the edges extreme edges extend past the extents of the level.

Take this plane and create 3 more planes for a total of 4 planes that run lengthwise "North" to "South".

The third image further explains the above procedures and shows the final results of the listed operations.



10) Convert all the planes into an Editable Mesh (Edit Mesh) and Attach all the planes into 1 object called "terrain portals".

11) The planes and faces were all aligned to try and divide the level evenly.  Vertices and the associated edges and faces were aligned along major edge boundaries in the level.

The fourth image further explains the above procedures and shows the final results the above procedures.



12) To further subdivide the level into more portals, faces running "West" to "East" were created using the existing vertices and edges for the planes.  Only the middle 4 edges and associated vertices were used. In addition, the edges were extended past the level boundaries.

Make sure that the normals are consistent for all the faces, this will determine how the portal volumes are created.

In the example, the faces running "East" to "West" have their normals pointing North, while the faces running "North" to "South" have their normals facing "East".

13) Select all the faces and Clear All the Smoothing Groups and apply Material ID 1 to all the faces to assign the +portal material.

Once the above procedures are completed, link the "terrain portals" object to the reference frame "frame" object.

The level has now been portalled.

The fifth image or last image further explains the above procedures and shows the final results the above procedures.


Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window






Click to Open Larger Image in New Window


Saving the Level

At this point, the level should be saved. To save the level do the following:

1) Go to File.

2) Click on Save As.

3) In the Save File As dialog window go to the Halo\data\levels\test\tutorial\models directory (this directory was created in the above section Creating a Level Directory) and save the file as "tutorial.max" by entering this name in the File name: field. 

4) Click on Save.

The level is now saved.  This level will be used in the tutorial and example areas of the next sections.  It may also be a good idea to make a backup of this file.


Conclusion of Level Creation - Part 2


The level geometry is now "complete" and can be successfully exported and compiled and is ready to go through the steps that will get it running in Halo.

As previously mentioned, a completed version or example version of the level created in the tutorial sections can be found under the "Halo\data\levels\test\tutorial_examples" directory.  The source and related materials have been provided as a reference to aid in the learning process.

Once the user has successfully completed the tutorials in Level Creation - Part 1 and Level Creation - Part 2 they can proceed to the next section Level Exporting.

Please note that the section Level Exporting and the subsequent sections will assume that the end user has completed all of the examples and tutorials up to and including those in Level Creation - Part 2. The remaining sections in Multiplayer Level Design will use the completed "tutorial.max" file from these sections.