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. |
|
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. |
|
The following steps and example images will demonstrate the modification of the terrain to create a stream bed. |
|
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. |
|
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. |
|
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. |
|
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 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. |
|
The following procedures and example images will demonstrate the modification of the base structure and the addition of ladders. |
|
The following procedures and example images will demonstrate the modification of the base structure for the inclusion of a teleporter gateway. |
|
The following procedures and example images will demonstrate the addition of lights to the base hallway. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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 procedures below will demonstrate the creation and placement of planes that will define Portal volumes and Exact portal volumes. |
|
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. |