User:Angry Beaver/Sandbox: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (breakpoint)
m (→‎Layout The Level '''Very''' Simply: Unicodifying, replaced: [[Image: → [[File:)
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
I get short breaks and occasional times to work on this at work and school, you'll probably see a lot of tiny updates to this but this is my way of transproting documents under development between work, school, and home. TH wiki syntax gets difficult to read and understand without the preview button :).
I get short breaks and occasional times to work on this at work and school, you'll probably see a lot of tiny updates to this but this is my way of transporting documents under development between work, school, and home. TBH wiki syntax gets difficult to read and understand without the preview button :).
I'd appricate any advice or suggestions you have go in talk section and that you do not modify or move any content on/from/to this page, its a constant WIP untill it gets moved to another location, then feel free to edit the article. I just wanna keep my sandbox my work page.
I'd appricate any advice or suggestions you have go in talk section and that you do not modify or move any content on/from/to this page, its a constant WIP untill it gets moved to another location, then feel free to edit the article. I just wanna keep my sandbox my work page.


Line 5: Line 5:
{{Namespace}}
{{Namespace}}


=Designing a Level=
(this section will be the Level Design article once compelte)


{{Int lvl design}}
----
 
==Introduction==
Level design begins deep where that first spark of inspiration comes from. It has many forms to take with a lot of work to be done before, during, and after [[Hammer]] has been loaded. Hammer is a tool for level design, it allows the creation, design, and building of entire levels for the player to explore; thus, a deeper understanding of the level design process would allow the use of Hammer in the most effective way. Hammer makes the level it should not make the idea. Theres lots to learn about Hammer, but theres almost as much to learn about why its used and the process using it takes, what other programs help and where Hammer sits in the level design process.


==Whats Involved==
=Level Flow intergration=
Levels are not self contained entities. The common misconception of thoose begining to learn level design is that you start with a .vmf and end with a .bsp. They need textures and models, they need compiling and cubemaps, they need lots of things. Making a level does not require one file and will never leave just one file. The following is a rundown of exactly what files and programs you'll meet and how thier important. Some are optional, others only appear when an error occurs.
The below is aditional topics and ideas that need intergrating into the [[Level Flow]] tutorial.


{|
== Determine a Route Through the '''Entire''' Level ==
! File Type || Creation || Purpose
|-
| [[VMF]]* || Saving in Hammer || The source file for any map, contains all brushes entities and properties
|-
| [[VMX]] || Saving in Hammer  || A backup version of your .vmf should anything go wrong with the original
|-
| [[GCF]]* || Offical Release || Contains all original content for the game
|-
| [[FGD]]* || Released with game/mod || Hammer's reference guide of all the properties of entities and how to use them.
|-
| [[MDL]] || Released with game/mod || A 3D model that can be placed inside of the level
|-
| [[VMT]] || Released with game/mod || The properties and name of a texture used in the level
|-
| [[VTF]] || Released with game/mod || The physical appearance of a texture
|-
| [[BSP]]* || Compiling || The final version of your map that can be run in game
|-
| [[AIN]] || Compiling || All movement information and hints for [[NPC|NPCs]] in the map.
|-
| [[LOG]] || Compiling || The entire compile log of all the compilers run on the vmf
|-
| [[PRT]] || Compiling || Provides information about [[Visleaf|leafs]] and thier interaction
|-
| [[PTS]]* || Compiling with errors || A helpful guide for finding [[Leak|leaks]]
|-
| [[NAV]] || In game parameter || All movement information and hints for [[Bot|Bots]] in the map.
|-
| [[CFG]] || Released with program || Information used to configure a program's options
|-
| [[VCD]] || [[FacePoser]] || All NPC interaction and sounds for 1 scene as made by faceposer
|-
| [[RES]] || Manually || Detials all custom resources used inside the level
|}


* A sketch on paper of the entire route through a level lays the foundation for a later more detailed design of the entire level. This is particularly important in a level intended for "single-level" play - a single level to be played from beginning to end.
* Without a concept of where the player will start out or end up in a level can result in a patchwork of ladders, steps or bridges which detract from the consistency of a level's design.


{|
=== Layout The Level '''Very''' Simply ===
! Program Name || Where || Purpose
|-
| [[Hammer]]* || <Source SDK>/bin || To edit and create maps
|-
| [[Vbsp]]* || <Source SDK>/bin || Compiles physical spaces and entity properties
|-
| [[Vvis]]* || <Source SDK>/bin || Compiles all calculations for visiblitiy
|-
| [[Vrad]]* || <Source SDK>/bin || Compiles and applies lighting effects
|-
| [[Glview]] || <Source SDK>/bin || Viewing the informationn in prt files
|-
| [[Game Directory#Using VConfig to set the game directory|VConfig]] || <Source SDK>/bin || Configures game setups for Hammer
|-
| [[GCFScape]]* || [http://nemesis.thewavelength.net/index.php?p=26 Here] || Viewing and extraction of files from a gcf
|-
| [[Vmex]] || [http://www.geocities.com/cofrdrbob/vmex.html Here] || [[Decompiling Maps|Disputed]] program for converting a bsp into a vmf
|}


''* indicates files/programs thats should be the most familiar.''
The initial phase of level construction blocks out the route the player must take.


While knowing them all is helpfull its not required. Its best to learn as you go, know what the possibilities are then find out how to use them when it comes time to need them.
* Use just three or four textures, such as the orange and gray '''dev''' textures, nodraw and the skybox texture. Detailed texturing should be much later in the process.
* Layout undetailed blocks for buildings, bridges and open doorways to outline the route the player must take through the level. Swing doors or lift gates can be added later.
* For outdoor levels, add a single light environment. Scene lighting is expensive with regard to compiling time.
* For indoor levels, limit the number of light entities to that necessary to test the route through the level. Again, scene lighting takes a lot of compile time.
* During this phase of design, do not add unnecessary entities or models such as NPCs, barrels or pipes. An exception may have to be made if, for instance, the level requires piling crates on one another as part of the primary route through the map.
* If the level requires stairways, use simple stairs without rails or supports. However, ensure the steps are sized correctly and room layout is sufficient to allow the proper height to be reached. Having to later resize a room that is too small for a long enough run of steps to reach the proper height can be time-consuming. See the section below on making separate test maps.
* Test the layout often, perhaps after adding just a few blocks or hallways. Determine if the size of the map and areas within the map give the "feel" for the level that is desired.


==Start to Finish==
In this screenshot from Hammer, there are only four primary textures used: dev/dev_measurewall01a (orange), dev/dev_measuregeneric01b (gray), tools/toolsnodraw and tools/toolsskybox. The retaining wall and the street are textured but, at this point in the construction, unnecessarily. Although early NPC testing (ground and air nodes, triggers, etc.) has begun, detailed architecture and texturing will be done much later. Note that areas which the player cannot see (roofs, rear walls, etc.) are not even constructed. The backside of walls, floors and sky are all textured in nodraw. At this point, a single light environment entity serves the entire map.
Taking a level from start to finish is a difficult process and is often the hardest thing to do. Developing a working level requires a breakdown of steps to consider and procede through. The key though is not forgetting to consider what decisions are going to have to be made and what decisions have been made earlier. Flowing from one stage to the next will ensure a compelte feeling design and expidite the process. Hammer isn't a blind development tool, have an image an picture a plan. Without one lots of time will be lost to accomodating changes and altering whats already been made. Start with a pencil and paper and work all the way up to final product. Images on the right correspond to an example of the process being followed.


===Concept===
[[File:Bj simple textures.JPG||Simple Layout]]
A map needs a Theme, a Storyline, and Key Points before development can begin. Start with a blank piece of paper. First write down what game the level is for, then write down what the level is. Is it a hostage map, is it a deathmatch arena, or is it point control? On top of that, where is it? Is it in Iraq, is it on the moon, or is it a bunker being stomred by nazis? Write down what the user will be trying to do when they play the level. These three form the theme, a counter strike hostage map based in las veags for example. Next comes the biggest question of all, why? What is the players motivation, what is the storyline of this level. Is Gordon freeman still fighting for freedom from opression, is your mission to defuse the bomb under parliment before it explodes, or is it just to kill everything moving around. Storyline can take as much space as needed but the more the better. not having sufficent ideas behind your storyline often leads to weak designs that are no fun.


===Evaluation===
=== Make Separate Maps to Test the Layout ===
<Does it work?>


===Construction===
Using separate small maps to test portions of the larger level map saves large amounts of compile time.
<how to go about making it>
 
===Re-Evaluation===
<now you can see it, is it right? is it FUN?>
 
===Releasing===
<getting it ready for everyone else>
 
==Mechanics==
<making the map do what you want and how important it is>
 
==Gameplay==
<working you map for the game your playing>
 
==Conclusion==
<something deep and meaningfull>


For instance, if the level requires an assault by a patrol, create a new map to layout simple block obstacles or cover and determine the general desired movement of the troops. From this map, the required area needed in the level map can be more precisely layed out. However, don't add the NPCs to the level map until later.


If the level requires jumping across gaps or moving entities to gain access to ledges or stair sizing, a test map can be used to determine the proper distances without requiring a complete compile of the level map. Once the information has been determined, adjust the level map but do not add entities such as crates or barrels to the level map unless required.


----




Line 116: Line 51:
==Introduction==
==Introduction==
Now the why has been covered lets get deeper into the how. While all the menus and buttons and functions are well documented its not often clear what tool you'll need. You want a slope, should you carve, vertex manipulate, split, or even use a primitive? All will work but it becomes a trick to know which tools to use where and why.
Now the why has been covered lets get deeper into the how. While all the menus and buttons and functions are well documented its not often clear what tool you'll need. You want a slope, should you carve, vertex manipulate, split, or even use a primitive? All will work but it becomes a trick to know which tools to use where and why.
{{todo| guide the user through the toolbar documentation, recomend tools and procedures}}


==Conclusion==
==Conclusion==
<something deep and meaningfull>
<something deep and meaningfull>
=Misc=
This section aims to go through [[Hammer|Valve Hammer Editor]] and show you whats availble, the tools and the processes you follow to get things done including what the tools are being used for, and the best ways to use them. While all the possible views, tools, and options are documented elsewhere this is the guide of where to look for them and how and when to use them. This is more than just how to use Hammer, its why your using it and what its doing when you take each step. This is important to know as understanding the reason is the best way to reach the goal.

Latest revision as of 02:38, 7 January 2024

I get short breaks and occasional times to work on this at work and school, you'll probably see a lot of tiny updates to this but this is my way of transporting documents under development between work, school, and home. TBH wiki syntax gets difficult to read and understand without the preview button :). I'd appricate any advice or suggestions you have go in talk section and that you do not modify or move any content on/from/to this page, its a constant WIP untill it gets moved to another location, then feel free to edit the article. I just wanna keep my sandbox my work page.


This is a personal page on my own namespace. If you have anything to add, questions, comments, or managed to find something I didn't, please post on the talk page instead. Thanks!



Level Flow intergration

The below is aditional topics and ideas that need intergrating into the Level Flow tutorial.

Determine a Route Through the Entire Level

  • A sketch on paper of the entire route through a level lays the foundation for a later more detailed design of the entire level. This is particularly important in a level intended for "single-level" play - a single level to be played from beginning to end.
  • Without a concept of where the player will start out or end up in a level can result in a patchwork of ladders, steps or bridges which detract from the consistency of a level's design.

Layout The Level Very Simply

The initial phase of level construction blocks out the route the player must take.

  • Use just three or four textures, such as the orange and gray dev textures, nodraw and the skybox texture. Detailed texturing should be much later in the process.
  • Layout undetailed blocks for buildings, bridges and open doorways to outline the route the player must take through the level. Swing doors or lift gates can be added later.
  • For outdoor levels, add a single light environment. Scene lighting is expensive with regard to compiling time.
  • For indoor levels, limit the number of light entities to that necessary to test the route through the level. Again, scene lighting takes a lot of compile time.
  • During this phase of design, do not add unnecessary entities or models such as NPCs, barrels or pipes. An exception may have to be made if, for instance, the level requires piling crates on one another as part of the primary route through the map.
  • If the level requires stairways, use simple stairs without rails or supports. However, ensure the steps are sized correctly and room layout is sufficient to allow the proper height to be reached. Having to later resize a room that is too small for a long enough run of steps to reach the proper height can be time-consuming. See the section below on making separate test maps.
  • Test the layout often, perhaps after adding just a few blocks or hallways. Determine if the size of the map and areas within the map give the "feel" for the level that is desired.

In this screenshot from Hammer, there are only four primary textures used: dev/dev_measurewall01a (orange), dev/dev_measuregeneric01b (gray), tools/toolsnodraw and tools/toolsskybox. The retaining wall and the street are textured but, at this point in the construction, unnecessarily. Although early NPC testing (ground and air nodes, triggers, etc.) has begun, detailed architecture and texturing will be done much later. Note that areas which the player cannot see (roofs, rear walls, etc.) are not even constructed. The backside of walls, floors and sky are all textured in nodraw. At this point, a single light environment entity serves the entire map.

Simple Layout

Make Separate Maps to Test the Layout

Using separate small maps to test portions of the larger level map saves large amounts of compile time.

For instance, if the level requires an assault by a patrol, create a new map to layout simple block obstacles or cover and determine the general desired movement of the troops. From this map, the required area needed in the level map can be more precisely layed out. However, don't add the NPCs to the level map until later.

If the level requires jumping across gaps or moving entities to gain access to ledges or stair sizing, a test map can be used to determine the proper distances without requiring a complete compile of the level map. Once the information has been determined, adjust the level map but do not add entities such as crates or barrels to the level map unless required.



Hammer in Depth

(this section will be the Hammer in Depth article once compelte)


Template:Int lvl design

Introduction

Now the why has been covered lets get deeper into the how. While all the menus and buttons and functions are well documented its not often clear what tool you'll need. You want a slope, should you carve, vertex manipulate, split, or even use a primitive? All will work but it becomes a trick to know which tools to use where and why.

Conclusion

<something deep and meaningfull>