mirror of
https://github.com/unknownworlds/NS.git
synced 2024-11-30 16:30:59 +00:00
54a4ac5469
git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@85 67975925-1194-0748-b3d5-c16f83f1a3a1
1727 lines
106 KiB
HTML
1727 lines
106 KiB
HTML
<html>
|
|
<head>
|
|
<title>Natural Selection Mapping Guidelines</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
</head>
|
|
|
|
<body bgcolor="#FFFFFF">
|
|
<h3 align="center"> </h3>
|
|
<div align="center">
|
|
<table width="90%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><font size="+2">Mapping guidelines for
|
|
Natural Selection </font></b></font></td>
|
|
<td colspan="2">
|
|
<div align="right"><font color="#FFFFFF"><b><font size="+1">Version
|
|
.7a, last updated July 25, 2001</font></b></font></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p> </p>
|
|
<table width="85%" border="1" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><font size="+1">Introduction</font></b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> This guide will provide all the info needed to create levels
|
|
for Natural Selection. It describes the ideas and philosophies
|
|
needed to make levels that are true to the game's spirit. This
|
|
document is the official reference for all game specific entities
|
|
as well. Please post on the <a href="http://overmind.org/cgi-bin/UltraBoard/UltraBoard.cgi?action=Headlines&BID=4&SID=335">mapping
|
|
forum</a> or write <a href="mailto:flayra@overmind.org">flayra@overmind.org</a>
|
|
if you have comments or questions on anything here. Good luck!</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><font size="+1">Design philosophies</font></b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>There are some design philosophies that should be observed
|
|
to make cohesive maps that work well for Natural Selection.</p>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Rules to know about</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>When the game first starts, the marines have a pre-game
|
|
sequence (<a href="http://overmind.org/strathl/OldGameDescription.html">link</a>)
|
|
on their dropship which gives the aliens have some time
|
|
before the marines can advance through the spacecraft.
|
|
During this time, the faster aliens should have time
|
|
to reach almost all the way to the marine starting location,
|
|
to wait quietly in the rafters or dark corners. The
|
|
marines will want to storm out of their dropship immediately,
|
|
but there shouldn't be enough time for aliens to get
|
|
all the way to the room the marines deploy into. </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Basic structure</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>The marines don't know where the aliens starting location
|
|
is, so there needs to be three to five starting locations
|
|
that are roughly equidistant from the marine starting
|
|
location. This fact, along with the desired intentional,
|
|
committal and strategic nature of the game, imply a
|
|
circular, web-like connected map structure, with the
|
|
marine staring point at the center. The desired optimal
|
|
behavior for the marines is advancing in one or many
|
|
squads, spreading out to find the alien base. Speed
|
|
is not to be stressed, a minimum of losses should be
|
|
more valuable to winning. The marines should spread
|
|
out and find the source of the aliens with some urgency,
|
|
but not at a high expense of resources. In the beginning
|
|
of the game, the marines have to commit to one or more
|
|
branches of the web. A squad that has chosen one branch
|
|
shouldn't be able to quickly fall back and regroup with
|
|
members that chose another branch, the aliens should
|
|
have the ability to cut squads off from each other.
|
|
</p>
|
|
<p>This basic structure should also have areas where the
|
|
aliens can take alternate paths, not accessible to the
|
|
marines. Ventilation shafts, electrical tunnels and
|
|
power conduits allow aliens to ambush and flank vulnerable
|
|
marines. These alien-only paths should connect the alien
|
|
hive rooms and with each other and allow the aliens
|
|
to travel between adjacent web branches. They shouldn't
|
|
be overdone though, as the marines need to be able to
|
|
easily understand which openings should be watched or
|
|
blocked off if they want to fortify an area. There can
|
|
be occasional hidden openings, but most should be obvious
|
|
gratings, still fans, holes and access tunnels. The
|
|
aliens should be encouraged to use the areas accessible
|
|
to the marines about half the time. Making tunnels harder
|
|
to get to or a farther distance than the regular hallways
|
|
could help encourage this.</p>
|
|
<p>There should be a good choke point or two between the
|
|
marine starting point and each hive room, so the marines
|
|
can decide to build a safe area, or choose locations
|
|
for deploying siege weaponry or phase gates. Ideally
|
|
there would be at least one marine-accessible location
|
|
from outside each hive room that the marines could shoot
|
|
at the hive from. A desired viable strategy would be
|
|
finding the hive, fortifying an attack point by welding
|
|
all openings shut and deploying siege and defensive
|
|
marines. The aliens should prevent this from happening
|
|
or upgrade to anti-siege aliens before this happens
|
|
or pay the price. In other words, the marines should
|
|
be allowed to stage a good attack on the hive, not only
|
|
by running into the final room and engaging the aliens
|
|
close up on their turf. Generally there should safer
|
|
areas where the marines can cover each other and leapfrog
|
|
forward, connected by less safe narrow passageways.
|
|
The ultimate goal is organized marine movements by squad,
|
|
advancing and covering each other.</p>
|
|
<p align="left">Strive to make the lighting feel dark,
|
|
but never actually be dark. A near-dark corner or two
|
|
is fine, but never make areas that are completely dark.
|
|
This promotes replay and reduces general frustration.</p>
|
|
<p align="center"><img src="devshots/alien3.jpg" width="400" height="357"></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>The marine starting point</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> The marine starting point should be the center of the
|
|
map. There should be at least two exits leading out and
|
|
it should be easily defensible with turrets, mines and
|
|
overwatch. There should be no ventilation shafts into
|
|
this area, only hallways or wide passage ways that multiple
|
|
marines can advance through or hold. It is undecided if
|
|
aliens will be allowed into this area and how they will
|
|
be prevented from entering if not.</td>
|
|
</tr>
|
|
</table>
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Alien hive rooms</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> At the end of each of the web-branches should have
|
|
a medium-sized area suitable for alien spawning and for
|
|
a tank-sized alien hive structure. There should be five
|
|
to ten alien spawning points arrayed around or within
|
|
the hive structure. These rooms should also be conducive
|
|
for fighting for the aliens, so there should be short
|
|
passageways and cover suitable for flanking, turning and
|
|
enveloping. There could also be a level-over-level or
|
|
vertical aspect that would be hard for marines to fortify.
|
|
There should be many passageways in and out of these rooms,
|
|
ones that link up to other adjacent hive rooms but are
|
|
only accessible to aliens. There should be occasional
|
|
passageways that are accessible for aliens or marines
|
|
with jetpacks, but travel between most hive rooms should
|
|
require going halfway back to the marine start first.
|
|
There are also certain desired visual characteristics
|
|
of hive rooms (it's not decided exactly what form the
|
|
hive rooms will take yet, coming soon).</td>
|
|
</tr>
|
|
</table>
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>The marine/alien continuum</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Good levels will let players recognize where they are
|
|
at all times and hint at which way to go. One way of
|
|
doing this is by having the marine starting location
|
|
be the highest altitude of the map, then having the
|
|
path the each alien hive room be below that. That way,
|
|
a marine knows which direction to go to run towards
|
|
or away from an enemy. Most importantly, he knows how
|
|
to run away and rejoin his team if he wandered off and
|
|
is feeling scared...</p>
|
|
<p>Additionally, the look and feel should change between
|
|
the marine and alien starting points. Choose an artistic
|
|
style for each side, then carry it through fully. Make
|
|
it as though the jungle-like aliens have somehow transformed
|
|
their areas of the ship into their natural habitats
|
|
from their homeworld. A flooded boiler room could be
|
|
decorated with with draped cables and floating debris
|
|
to simulate a "bog". A hive room could could
|
|
have treelike structures with connecting "branches",
|
|
formed by fallen transmitters and posts. Make the marine
|
|
base camp completely dry, then have some dripping water
|
|
nearby, changing to puddles of standing water close
|
|
to the hive rooms, then having the hive rooms be waste
|
|
deep water. Make the marine side "dead" and
|
|
the alien parts "living". Consider choosing
|
|
two drastically different color or lighting schemes
|
|
and slowly morphing between them as the players travel
|
|
from one area to the other. Try making the marine side
|
|
technological and controlled, the alien side organic
|
|
and primal, then see how slowly you can transition between
|
|
the two. Or make the marine side quiet (good for marines
|
|
to hear the alien growls and squeals) then create a
|
|
massive fan room and generators that drone out voice
|
|
communication and scare the marines as they get farther
|
|
away. Or use only ambient and lights coming from fixtures
|
|
on the marine side, then only ominous texture lights
|
|
towards the aliens. Have little "ambient movement"
|
|
on the marine side, then have moving fans, malfunctioning
|
|
elevators and unexpected gusts of steam erupting from
|
|
pipes as the marines get closer. </p>
|
|
<p>This continuum will really help players know where
|
|
they are, and get them to feel the tension they should
|
|
as they leave their territory. Most importantly, get
|
|
creative and work whatever continuums you've chosen
|
|
into your level as deeply as you can. </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Shared experience and
|
|
landmarks</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> One of the sub-goals that the game tries to accomplish
|
|
is to have memorable and cinematic games and to strengthen
|
|
to bonds between players. Games where you say "remember
|
|
when you punched the elevator button and backed away and
|
|
as it slowly opened we say the elevator was FULL already
|
|
and turned to run....". One way to accomplish this
|
|
is to have sections of the map which cause a group of
|
|
players to pause and look in the same direction, or to
|
|
wait for another player to do something. An event that
|
|
causes players to realize for a moment, that they're all
|
|
doing the same thing. The marines especially should be
|
|
watching each other often, so their actions should be
|
|
relevant. Creating landmarks like this also makes it easy
|
|
to describe parts of the map during or after the game,
|
|
allows impromptu battle plans and allows for more reacting
|
|
by both sides. If the marines hear a a bay door opening
|
|
and they're all in sight, they know the aliens have breached
|
|
an area and can react. If the aliens listen for a tram
|
|
to start up, they can visualize where the marines are
|
|
and try to track them (or the marines can outwit them
|
|
by hitting the button and then not using it). So these
|
|
landmarks and shared experiences promote interaction between
|
|
teams and teammates, and makes the games more enjoyable
|
|
and memorable. Try to add at least a few of these elements
|
|
per map, especially around chokepoints. Make certain areas
|
|
wide enough for multiple players to walk, fly or scuttle
|
|
through at once or a quadruple-wide ladder that multiple
|
|
players could use. Create somewhat noisy freight elevators,
|
|
loading bays, a door that can only be opened by having
|
|
two buttons being pressed by two players at once, bridges,
|
|
clocks that show you when an event is going to happen,
|
|
anything that gets players to recognize each others actions
|
|
or makes one player dependent on another. These landmarks
|
|
are much more important for the marines, as the aliens
|
|
generally will lead coordinated but separate attacks.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Fleshing out the world</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> The ambiance is especially important in this game.
|
|
Maps can create many powerful custom effects. One great
|
|
way to do this is to create detailed little sub-areas
|
|
of the map that can only be viewed, not entered. Create
|
|
a little side-passage with a half of a broken electrical
|
|
door showing exposed wires, puddles and blinking lights
|
|
behind it. Create wire gratings that only partly conceal
|
|
a hopelessly detailed mess of pipes and and wheels. A
|
|
hole in an elevator shaft that reveals a cafeteria that's
|
|
now a grotto. A crack in the wall that shows a hollowed
|
|
out area filled with cables. <a href="http://www.planethalflife.com/crinity">Crinity</a>
|
|
is the true master of this and it makes a huge difference
|
|
in creating ambiance and wonder in his maps.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>The ready room and the absence
|
|
of menus</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Another sub-goal of this game is to reduce the amount of time
|
|
players spend in a non-immersive environment. So instead of
|
|
the text menus to choose your team as in other games, this game
|
|
has a the concept of the "ready room". The theme and
|
|
layout of the ready room can fit into the theme of the map but
|
|
keep it easy to use. At minimum, there should be a door with
|
|
a sign that says "Join marine team", another door
|
|
that says "Join alien team", one that says "Join
|
|
a auto-assigned team" and the last that says "Watch
|
|
game". When you join a server, you spawn in immediately
|
|
into the ready room. You choose what you want to do by interacting
|
|
with the map, i.e., by walking through one of the doors, or
|
|
just hanging out in this area and talking with other players
|
|
in the ready room, waiting for the match in progress to end
|
|
or the map to change. There is also one more door that should
|
|
say or indicate "disconnect from server".</p>
|
|
<p>The ready room should be an unconnected area of the main map,
|
|
but make it far enough away from the main game area so ambient
|
|
sounds from one area aren't heard in the other. There should
|
|
be at least ten info_player_start entities, as all the players
|
|
on the server could spawn in here at once. Make the room dramatic
|
|
and make the routes to each door an inviting choice. Maybe an
|
|
animated hologram of a marine or an alien inviting players to
|
|
their doors will get people into the mood of your map. Use animated
|
|
lights on runways leading to the doors, spawn point facing and
|
|
other factors and railings to lead players out of the ready
|
|
room into the game. Try making the spectator door up a small
|
|
stairway to a balcony that implies the height needed to adequately
|
|
watch the game in progress. Have klaxons going off at the beginning
|
|
of the round for dramatic tension. When a game that can't be
|
|
late-joined has started, use the entities below to close the
|
|
appropriate doors dramatically and display other instructions.
|
|
</p>
|
|
<p>When a player wants to leave a game in progress, he can exit
|
|
through a door at their starting point labeled "leave game"
|
|
or whatever is appropriate and clear for your map theme. </p>
|
|
<p>The ready room is a dramatic way to wrap the game and serves
|
|
as a mini meta-game in itself. Unfortunately, it's also more
|
|
work for the level designers. If this idea doesn't work out
|
|
so well, I'll be adding traditional text menus in..</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Alien design considerations</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> The aliens have many movement types including wall-running,
|
|
gliding, flying and "ollying" (jumping off walls) Additionally,
|
|
aliens come in different sizes, the biggest of which is a bit
|
|
bigger than the general player model. Try to make areas that accommodate
|
|
and promote these movement types and try to let the alien players
|
|
skill level scale. Do this by making glides or "ollies"
|
|
that are really hard for aliens to make, but possible. Make vertical
|
|
columns in the ceiling that house lights and are accessible from
|
|
a tunnel, so gliders can silently glide down from them. Make a
|
|
few big wide hallways near the alien hives so the bigger aliens
|
|
don't have trouble attacking. More to come in this area... </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><font size="+1">Visual entities</font></b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>env_gamma</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>This entity changes your monitor's gamma ramp for your
|
|
map. Half-life engine games don't modify your monitor's
|
|
settings, so they have an effect gamma slope of 1.0.
|
|
Making your gamma ramp steeper will make your colors
|
|
more vibrant and will give lots more contrast to your
|
|
maps. Quake III does this to great effect (John Carmack
|
|
calls it "overbrightening". For a detailed
|
|
technical paper on this, check the <a href="http://home.inforamp.net/%7Epoynton/GammaFAQ.html/">here</a>.
|
|
What you really need to know is that changing this setting
|
|
can give your map lots more contrast make everything
|
|
look much more vivid. However, this setting drastically
|
|
affects your map's lighting, so you won't want to tweak
|
|
this when you're almost done your map. Try to decide
|
|
early on what setting you'll use by doing some letting
|
|
tests, then stick with it. There may be some compatibility
|
|
problems with gamma values over or around 1.7, so don't
|
|
depend too much on the gamma being exactly what you
|
|
set it to.</p>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td><b>Desired map gamma</b> -This is the gamma
|
|
slope to change the all players' monitors to when
|
|
playing your map. The default is 1.0. Don't set
|
|
it higher than 2.0 or there's a good chance some
|
|
monitors won't be able to switch to this. A good
|
|
set of values is around 1.4 to 1.8. If a monitor
|
|
can't switch to the value you set, it will try
|
|
again with a slightly lower number until it succeeds,
|
|
or until the gamma is 1.0.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>env_particles</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>This entity places a particle system in a level. It
|
|
can only be used to place a particle system that has
|
|
been defined in avh.ps, it can't be used to create a
|
|
new one. To create custom particle effects, use <b>env_custom_particles</b>.
|
|
This entity may not be very useful and will probably
|
|
be phased out, so skip this for now and read about <b>env_custom_particles</b>
|
|
below. This entity is fully switchable, like a light
|
|
or any other target in Worldcraft. It's fields are as
|
|
follows:</p>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td><b>Name</b> - Target name that can be triggered
|
|
with a button or switch. Triggering it will toggle
|
|
it on and off, like a light.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Name (from .ps) </b>- Type the name of the
|
|
particle system that it should from avh.ps. Example:
|
|
"ShotgunSmoke" or "DustLight"</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>flags</b>: "start on" (checking
|
|
this means the particle generates particles without
|
|
having to be triggered first)</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div align="center">
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>env_custom_particles</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>This entity lets you create your own custom particle
|
|
effects for your map. They include things like light
|
|
mist, volumetric fog (simulated), haze, dust motes,
|
|
smoke, steam, fire, etc. Almost any type of effect can
|
|
be created with this system, including effects that
|
|
generate other types of effects. It is just like any
|
|
other switcheable, moveable Worldcraft entity and can
|
|
be triggered with buttons and moved. There are a lot
|
|
of fields, but it is quite advanced and use of it will
|
|
be richly rewarded. </p>
|
|
<p><b>Important notes:</b> </p>
|
|
<p>All floats are currently limited to 1/8 increments
|
|
due to network packing of data. This means if you enter
|
|
a value of .2, it will be truncated to .125. For best
|
|
results, enter all floats as multiples of 1/8.</p>
|
|
<p>Particle systems can have a big affect on frame rate,
|
|
but don't be afraid to try out systems with tons of
|
|
particles. Experiment and see what actually affects
|
|
your frame rate, you'll probably be surprised it isn't
|
|
what you think. Size, drawing type, number of particles
|
|
and collision all affect frame rate to some extent.</p>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td><b>Name</b> - Target name that can be triggered
|
|
with a button or switch. Triggering it will toggle
|
|
it on and off, like a light.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p><b>Generation entity (invisible)</b> - This
|
|
is the name of the entity that is particles
|
|
will be generated inside. This will generally
|
|
be a func_illusionary with render_mode additive
|
|
and and FX amount of 0 (so it's invisible) but
|
|
it can be any entity you want. The type of shape
|
|
that the particles will be generated in is specified
|
|
by the next parameter, "Generation shape",
|
|
not only by the shape of the brush! Furthermore,
|
|
the generation shape used will be the <b>axis-aligned</b>
|
|
version of this entity, so rotating this shape
|
|
will have no effect. This is will be expanded
|
|
to use the actual shape of the entity if necessary
|
|
(but that's a lot of work).</p>
|
|
<p>If no generation entity is specified, the point
|
|
where the <b>env_custom_particles </b>is place
|
|
is where particles will be generated from (I
|
|
think, not sure if this is tested!)</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p><b>Generation shape</b> - This can be one of
|
|
the following shapes Point, Box, Sphere or Blob.
|
|
In all cases, the generation shape is centered
|
|
at the the "Generation Entity"'s center.</p>
|
|
<p>If Point is chosen, the center of the generation
|
|
entity is used to as a starting location for
|
|
newborn particles. </p>
|
|
<p>If "Box" is chosen, then the axis-aligned
|
|
box defined by the Generation Entity is used.
|
|
For each new particle, a random point within
|
|
this box is used for the starting location.
|
|
</p>
|
|
<p>If Sphere is chosen, a sphere with a radius
|
|
equal to the x-dimension of the Generation Entity
|
|
is used. </p>
|
|
<p>If Blob is used, the blob's parameters are
|
|
read from the "Generation Shape Parameter"
|
|
field. Blob is very useful for generating particles
|
|
in an organic and versatile fashion. </p>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Particle sprite</b> - Browse to the sprite
|
|
that will be drawn for each particle. Only textured
|
|
sprites are supported. Generally the best type
|
|
of sprite will be additive sprites, but any can
|
|
be used.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Animation frames in sprite</b> - This field
|
|
lets each particle be animated. To have a sprite
|
|
animate, make sure the "Particle Sprite"
|
|
has multiple frames of animation, then enter the
|
|
number of frames to use here. If a sprite has
|
|
10 frames in it, any number up to 10 could be
|
|
entered. This field can only be used with particles
|
|
that don't live forever, i.e., Particle Lifetime
|
|
(not Particle System Lifetime) has to be set to
|
|
some number above 0. The sprite will animate evenly
|
|
over it's life, so it will play the number of
|
|
frames entered in this box over its life. </td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p><b>Generation shape parameter</b> - This is
|
|
an extra parameter that is only used when the
|
|
generation shape is specified as "Sphere"
|
|
or "Blob".</p>
|
|
<p>Sphere - radius 1 is the axis-aligned x-width
|
|
of the generation entity created, this parameter
|
|
is radius 2. Particles are generated between
|
|
radius1 and radius 2, around the center point
|
|
of the generation entity. This generates particles
|
|
in the shape of a hollow ball.</p>
|
|
<p>Blob - The center of the generation entity
|
|
is called P. This parameter is called alpha.
|
|
Blob generates points such that the point P
|
|
is the center of a normal probability density
|
|
of standard deviation alpha. The density is
|
|
radially symmetrical. The blob domain allows
|
|
for some very natural-looking effects because
|
|
there is no sharp, artificial-looking boundary
|
|
at the edge of the generation entity.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Maximum particles </b>- This is the maximum
|
|
number of particles that this particle system
|
|
can have at any given time. If it has this many
|
|
particles, no more will be generated until if
|
|
and when one of it's particles dies. This takes
|
|
priority the "Generate Rate" below.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Generation rate (particles/second) </b>-
|
|
This is how many particles per second will be
|
|
generated per second. The system will stop generating
|
|
particles if the number entered in "Maximum
|
|
Particles" is reached.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Particle size</b> - This is a somewhat arbitrary
|
|
size value that is used when drawing each particle.
|
|
A big speck is around size 5, your average smoke
|
|
particle might be around 15. Experiment. A negative
|
|
value would probably be very bad.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Particle system lifetime</b> - How long the
|
|
particle system generates particles in seconds.
|
|
If -1 is specified, the system will never die
|
|
and will generate particles forever. Once a particle
|
|
system dies, it's particles will still live on
|
|
until they die on their own, the particle system
|
|
will just stop generating new particles</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Particle lifetime </b>- A particle lives
|
|
this long, in seconds. Once this time runs out,
|
|
the particle will die and no longer be drawn.
|
|
Specifying a value of -1 means the particle will
|
|
live forever.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p><b>Starting velocity shape</b> - This can be
|
|
a "Point", "Box", "Sphere"
|
|
or "Blob".</p>
|
|
<p>Point - Particles are generated with a fixed
|
|
starting velocity equal to v0, v1, v2 (see next
|
|
parameter).</p>
|
|
<p>Box - Particles are generated with a random
|
|
starting velocity in the range v0,v1,v2 to v3,v4,v5.
|
|
You can think of v0,v2,v3 as the negative corner
|
|
of a box around the origin and v3,v4,v5 as the
|
|
costive corner of a box around the origin. To
|
|
generate particles with a starting velocity
|
|
between -.5,-.5,-.5 and 1,1,1, the params below
|
|
would be -.5,-.5,-5,1,1,1,0,0. To generate particles
|
|
with upwards velocity but spraying out to the
|
|
sides (like a fountain), you could try something
|
|
like 50,-10,-10,80,10,10,0,0.</p>
|
|
<p>Sphere - v0,v1,v2 is the center point, v3,v4
|
|
are radius 1 and radius 2. Particles should
|
|
be generated with a velocity between v3 and
|
|
v4, randomly distributed in a circle. I believe
|
|
v0,v1,v2 are ignored or write and ask me. :)</p>
|
|
<p>Blob - v0,v1,v2 is the center point, v3 is
|
|
the standard deviation. See generation shape
|
|
parameter documentation for Blob for more info.
|
|
I believe v0,v1,v2 are ignored.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p><b>Starting velocity parameters</b> - Seven
|
|
floating point values, all comma-delimited.
|
|
Make sure there aren't any spaces there and
|
|
that the format stays exactly the same or it
|
|
may not work. :( See Starting Velocity Shape
|
|
above to see how the numbers are interpreted..</p>
|
|
<p>v0,v1,v2,v3,v4,v5,v6,v7</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Scale particle over time</b> - If this value
|
|
is different than 1.0, the particle will scale
|
|
to this value towards the end of its life. For
|
|
example if you wanted a smoke particle to grow
|
|
to three times its size (to dissipate) you could
|
|
enter three here and it would gradually grow.
|
|
This field will only have an effect if particle
|
|
lifetime is something than -1 (i.e., the particle
|
|
can't live forever).</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Max alpha</b> - Enter a value from 0 to 1.
|
|
If other than 1, generated particles will draw
|
|
with a max alpha of this value. If you want a
|
|
very subtle and faint particle effect, you could
|
|
enter a value of maybe .4 here. The default is
|
|
1.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Render mode</b> - There are five blend modes
|
|
that particles can be drawn in. The Half-life
|
|
SDK seems to be broken however so I would only
|
|
use the most useful one for now, additive mode.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Particle system to generate on collision</b>
|
|
- This is a powerful feature. If you type the
|
|
name of any other particle system name here and
|
|
check the "collide" flag, than particles
|
|
that hit the world or a player will die and generate
|
|
a new <b>particle system</b> at that point. Rain
|
|
drop splatters are simulated using this method
|
|
in one of the example maps below. For best results,
|
|
use particle systems with a generation shape of
|
|
"Point" here, as the point will represent
|
|
the point of contact.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<table width="100%" border="0" cellspacing="5" cellpadding="5">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Flags</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td><b>Start on </b>- Checking this
|
|
means the system starts on and
|
|
doesn't have to be triggered initially.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Particle density </b>- This
|
|
option is very useful for particle
|
|
systems with a large generation
|
|
shape. If checked, this means
|
|
that particle rate (above) will
|
|
be interpreted as a factor times
|
|
the volume of the generation shape,
|
|
not actual particles per second.
|
|
This means you could make a snow
|
|
storm over an area and then just
|
|
make the generation area bigger
|
|
and the snow would fall with the
|
|
same density. It calculate the
|
|
number of particles to generate
|
|
per second as the (generation
|
|
shape width/100) * (generation
|
|
shape height/100) * (generation
|
|
shape height/100)*generation rate.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Fade in </b>- If this is
|
|
checked, and particle lifetime
|
|
(not particle system lifetime)
|
|
is finite, then the particle will
|
|
fade in gradually over it's lifetime.
|
|
If max alpha is set, it will fade
|
|
from 0 to max alpha, otherwise
|
|
it will fade from 0 to 1.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Fade out </b>- If this is
|
|
checked, and particle lifetime
|
|
(not particle system lifetime)
|
|
is finite, then the particle will
|
|
fade out gradually over it's lifetime.
|
|
If max alpha is set, it will fade
|
|
from max alpha to 0, otherwise
|
|
it will fade from 1 to 0. If both
|
|
fade in and fade out are checked,
|
|
it will fade from 0 to max alpha
|
|
then back to 0. </td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Use world gravity</b> - Checking
|
|
this applies the world gravity
|
|
to each particle. </td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Tris, not quads </b>- Using
|
|
this option draws all particles
|
|
as triangles instead of squads
|
|
(pointy side up). The texture
|
|
coordinates are <0,1>, <.5,0>,
|
|
<1,1> (starting at bottom
|
|
left, going clockwise). Quads
|
|
use texture coordinates of <0,1>,
|
|
<0,0>, <1,0>, <1,1>.
|
|
This will roughly halve the performance
|
|
hit of drawing the particle system
|
|
but may not look good for all
|
|
systems.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Minimize edges </b>- This
|
|
parameter doesn't work quite right
|
|
yet but it attempts to look at
|
|
particle size and change the generation
|
|
area so particles aren't generated
|
|
so as to leave their generation
|
|
area. They could still move outside
|
|
their area, but this could help
|
|
reduce lines when particles z-buffer
|
|
with world.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Constrain pitch </b>- Checking
|
|
this means particles won't rotate
|
|
up or down to face the player.
|
|
This can look better for some
|
|
types of "falling" effects.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Collide</b> - Checking this
|
|
means the particles will collide
|
|
with the world. After colliding,
|
|
they will disappear and if a collision
|
|
particle system is specified,
|
|
they will generate that at the
|
|
point of collision. Using this
|
|
could have big performance implications,
|
|
so be sure to notice and tweak
|
|
accordingly.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
<div align="left"> </div>
|
|
<p> </p>
|
|
<p align="right"> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="5">
|
|
<tr>
|
|
<td colspan="2" bgcolor="#666600"><font color="#FFFFFF"><b>Tweaking
|
|
your particle systems </b></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>There are so many parameters, how do you make your
|
|
particle system look good? You can tweak your particles
|
|
in real-time, inside the game! Here's how. </p>
|
|
<p>1. Create your custom particle system in Worldcraft.
|
|
You may need to set up temporary entities to make it
|
|
easy to repeatedly trigger your particle system. Compile
|
|
the map, then test out your map inside Natural Selection.</p>
|
|
<p>2. Walk over to the particle system you want to tweak
|
|
so you can see it.</p>
|
|
<p>3. Bring up the console (hit the ~ key), type "<b>listps</b>",
|
|
then hit enter. It will show you a list of all the particle
|
|
systems that the game knows about right now. Most of
|
|
these are used by the game itself, but the custom ones
|
|
that your map created should be listed at the bottom.
|
|
Each particle system should have the name you assigned
|
|
in Worldcraft. Find the name of the particle system
|
|
you want to tweak.</p>
|
|
<p>4. While still in the console, type "<b>editps
|
|
<particle system name></b>" where the second
|
|
parameter is the name of the particle system to tweak
|
|
(without the <> or "'s). Close the console
|
|
by hitting ~ again, then you should see a message that
|
|
says something like "found particle system, hit
|
|
F4 to edit". If you don't see this, or you see
|
|
an error message, try again, but make sure you type
|
|
it exactly as shown by the <b>listps</b> command.</p>
|
|
<p>5. Now hit F4. You now have access to most of the parameters
|
|
specified in your <b>env_custom_particles </b>entity,
|
|
but you can change them in real-time! The label next
|
|
to each slider always shows you the current value of
|
|
that slider. Go crazy and tweak your system while it's
|
|
playing, occasionally hitting F4 to temporarily hide
|
|
the editing controls so you can walk around and see
|
|
everything from other angles. When you're happy with
|
|
your parameters, write down the values you changed,
|
|
or take a screenshot. Now go back to Worldcraft and
|
|
enter these values back into your <b>env_custom_particles</b>
|
|
entity and you're done!</p>
|
|
<p>Note. Whenever you change the "max particles"
|
|
parameter, all the active particles are immediately
|
|
deleted. This is a technical limitation, not a bug.
|
|
Typically you'll just have to wait a couple seconds
|
|
after changing this before the particle system is back
|
|
to normal.</p>
|
|
</td>
|
|
<td bgcolor="#000000">
|
|
<div align="center"><img src="devshots/particle-edit.jpg" width="400" height="300"></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Ready room entities</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_player_start</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> These are the spawn points for the ready room.
|
|
All players use this, because they haven't chosen
|
|
a side yet. Make sure to have at least ten of these
|
|
in the ready room. See the above section on the
|
|
ready room for crucial information.</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_join_teamone</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> When a player touches this, he will join the
|
|
marine team, if possible. If the team is full or
|
|
the game can't be joined, he will observe that team,
|
|
and join when he can. This is an invisible entity
|
|
that should be placed inside the "Join marines"
|
|
doorway in the ready room. </td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Info_join_teamtwo</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> When a player touches this, he will join the
|
|
alien team, if possible. If the team is full or
|
|
the game can't be joined, he will observe that team,
|
|
and join when he can. This is an invisible entity
|
|
that should be placed inside the "Join aliens"
|
|
doorway in the ready room. </td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_join_autoassign</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> When a player touches this, he will join the
|
|
team with the fewest number of players, if possible.
|
|
If the teams have the same number of players, he
|
|
will join a random team. If the game is full or
|
|
the game can't be joined, he will observe that team,
|
|
and join when he can. This is an invisible entity
|
|
that should be placed inside the "Auto-assign"
|
|
doorway in the ready room. </td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_spectate</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> When a player touches this, he will get a free-roaming
|
|
spectator view of the game in progress. He is not
|
|
allowed to join either side for the game in progress,
|
|
no matter what, as he has now had the opportunity
|
|
to see the whole map. When the next game starts,
|
|
he will spawn back in the ready room and be allowed
|
|
to join a team manually.</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><i>info_leave_game
|
|
(not implemented)</i></b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> When a player touches this, he will leave the
|
|
game in progress and go back to the ready room.
|
|
One of these should be placed near each base and
|
|
perhaps a few others around the map for ease of
|
|
use. They should be placed in highly visible place
|
|
and be clearly marked but should only be able to
|
|
be used deliberately. This is currently unimplemented
|
|
and may never be.</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><i>info_leave_server
|
|
(not implemented)</i></b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> This is placed in the ready room, away from from
|
|
the join team doorways. Touching this will disconnect
|
|
from the server. This is currently unimplemented
|
|
and may never be.</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p> </p>
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Main game entities</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>hive</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>This entity specifies where a random alien hive
|
|
could spawn in. Most maps will want at least three
|
|
of these, with four probably being the best number.
|
|
One of these hives is chosen at random for the
|
|
first hive, then the <b>info_teamtwo_start</b>
|
|
entities around it are used to spawning in players.
|
|
Later in the game, more hives will come online
|
|
at the other hive locations. Choose a model to
|
|
specify what the hive looks like. </p>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td>
|
|
<p><b>Model</b>: This is the model that
|
|
is displayed for the hive. There is no
|
|
artwork for it yet, I'm using "models/hive.mdl"
|
|
for now. The model is only drawn when
|
|
the hive comes online. </p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Max dist to nearby spawn points:</b>
|
|
When an alien spawns at this hive, the game
|
|
randomly selects a spawn point within this
|
|
range of the hive. In this way, the map
|
|
creator can place alien spawns how he likes
|
|
without worrying that aliens spawning at
|
|
the wrong places. It allows maximum flexibility,
|
|
so two hives could be very near each other,
|
|
but separated from a wall, and the spawns
|
|
could still be made to function correctly.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Hit points</b>: This is how much damage
|
|
a hive can take before it dies. When all
|
|
of an alien team's hives are destroyed,
|
|
they can no longer respawn or get points.
|
|
The alien team could still win though...the
|
|
team that outlives the other is the winner.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Armor value</b>: How much armor the
|
|
hive has. Armor lessens the damage the hive
|
|
takes, the same way armor protects the player
|
|
(and monsters) in Half-life.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_teamtwo_start</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> At least ten of these should be placed in around
|
|
each each <b>hive</b> entity. When a player joins
|
|
the alien team, or respawns after death as an alien,
|
|
he comes back to one of these. </td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b><i>info_dropship
|
|
(not implemented)</i></b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> This will somehow define the safe area for marines
|
|
and the aliens may not be allowed in this zone,
|
|
or it may have other special properties. There should
|
|
be a group of info_teamone_start entities placed
|
|
nearby or within this zone.</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_teamone_start</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> This is a spawn point that's used when a player
|
|
joins the marine team or when a marine respawns
|
|
after dying or being brought in as a reinforcement.</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>func_seethrough</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>(classified for now, coming soon)</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>func_viewheight</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> (classified for now, coming soon)</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>func_waypoint</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> (classified for now, coming soon)</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>info_mapextents</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>(classified for now, coming soon) </td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>func_weldable</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>This entity lets you create areas of the map
|
|
that can be welded shut or cut through, by the
|
|
marine's use of the welder. Create the geometry
|
|
as it is completely opened, then create a brush
|
|
that represents the part to be welded. For a grating
|
|
to cut through, this might be a square piece of
|
|
grating. For a ventilation shaft that could be
|
|
closed off, this might be a metal plate or something
|
|
that could've been created out of nearby materials.
|
|
Place the brush in place so the area is "closed",
|
|
then create an <b>func_weldable</b> out of it.
|
|
Note that <b>func_weldables</b> must be enabled
|
|
before they can be welded on. This means a weldable
|
|
could be triggered to a door state, so the door
|
|
must be closed before welding could commence.
|
|
Many weldable entities will use the "start
|
|
enabled" flag. If you can't weld your entity,
|
|
make sure this is set first.</p>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td><b>Health </b>- This is how many hit points
|
|
the weld has after it is closed. This is
|
|
only valid for closable welds, not openable
|
|
ones (see the flags below). Set to -1 to
|
|
create an entity that once welded, is impervious
|
|
and cannot ever be destroyed.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Weldable time </b>- This is how many
|
|
seconds of welding it takes to complete
|
|
the job. This is either how much time it
|
|
takes to seal off an area or cut through
|
|
it, depending what flags are set. Most weld
|
|
jobs should take upwards of twenty, some
|
|
quite a bit longer that that.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Weldable sounds </b>- Currently unimplemented.
|
|
This may eventually be the file list of
|
|
sounds that welding this entity produces.
|
|
Is this worth putting in?</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Start alpha </b>- No longer implemented.
|
|
Welding used to cause the entity to fade
|
|
in, but no longer does. This set the beginning
|
|
alpha, so potential weld jobs were always
|
|
visible.</td>
|
|
</tr>
|
|
<tr>
|
|
<td> <b>Target to trigger on finish</b> -
|
|
This trigger will fire when the welding
|
|
is completed. This can be used for cool
|
|
and complex visuals such as girders falling,
|
|
sparks and sounds triggering, doors falling
|
|
open, etc. Good idea, Hectate!</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Material </b>- This is the type of
|
|
material the welding entity looks like it
|
|
is made of. When cutting through, this is
|
|
the type of material chunks will break and
|
|
fall. When applied to a closable weldable
|
|
entity, this will be used when and if the
|
|
welded entity is destroyed by damage (see
|
|
the health field above). Either way, chunks
|
|
are made out of the geometry and sounds
|
|
are played, much like func_breakables.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td><b>Flags</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Start enabled </b>- Means the
|
|
entity doesn't have to be "switched
|
|
on" before the marines can
|
|
start welding it.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Weld opens, not closes </b>-
|
|
Check this to create a weldable
|
|
entity that is cut open instead
|
|
of shut. When this is checked, the
|
|
entity will start off visible and
|
|
will disappear and break into pieces
|
|
when welding finishes.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Always draw, don't fade </b>-
|
|
No longer implemented. This used
|
|
to disable fading as construction
|
|
occurred. </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p> </p><table width="85%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Sound entities</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p align="left"> </p>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>target_mp3audio</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p align="left">This entity lets you trigger
|
|
.mp3 playback in your maps. This can be used
|
|
for subtle background creaking and groaning,
|
|
the hum of space, a dash of music, simulated
|
|
gunfire in the next room, etc. This entity
|
|
is useful because it allows very high-quality
|
|
sound in maps, for smooth clean (almost inaudible!)
|
|
bass, and static-free sound playback. The
|
|
compression of .mp3 files also means you can
|
|
include more and longer sound samples, with
|
|
shorter downloads than .wav files. This entity
|
|
is fully triggerable, so maps can turn sounds
|
|
on and off and work with all sorts of triggers.
|
|
</p>
|
|
<table width="90%" border="0" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td><b>Sound name </b>- This is the relative
|
|
path name to the .mp3 file to that this
|
|
entity plays. By convention, .mp3s should
|
|
be placed in the sound directory and should
|
|
be named "mapname-sound.mp3".
|
|
This will help prevent file name collisions
|
|
and files from being overwritten. For
|
|
example, if your map is called ns_derelict,
|
|
this might be: "sound/ns_derelict-gunfire.mp3",
|
|
"sound/sound/ns_derelict-shipcreaking.mp3".
|
|
This might change in the future to force
|
|
this convention. MP3s can be any format,
|
|
any size and can be stereo. MP3s are streamed,
|
|
so it doesn't really matter how big it
|
|
is, less than 200k will be loaded at any
|
|
given time.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Volume -</b>The base volume to play
|
|
the sound. Valid values are from 0 to
|
|
255, with 255 being full volume. The actual
|
|
volume a player hears the sound will be
|
|
modified by the <b>fadedistance</b> parameter.
|
|
When a player is very close to the <b>target_mp3audio</b>
|
|
entity, the sound will play at this volume.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Fade distance (inaudible here) -
|
|
</b>This is the distance in world units
|
|
at which the sound becomes totally inaudible.
|
|
As the player moves away from the entity,
|
|
the sound fades out. </td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="left">
|
|
<table width="90%" border="0" cellspacing="1" cellpadding="1">
|
|
<tr>
|
|
<td><b>Flags</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Don't fade volume</b>- The
|
|
sound will ignore the player's
|
|
position and fade distance and
|
|
always play at the same volume.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>Looping </b>- The .mp3 will
|
|
loop until the entity is triggered
|
|
off. </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Marine buildings</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p align="left">Any building that normally need
|
|
to be built by players start fully contructed.
|
|
TODO: Add a team designator if allowing marines
|
|
vs. marines or aliens vs. aliens.</p>
|
|
<table width="90%" border="0" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td><b>turret - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>siegeturret - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>phasegate - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>cameratower - </b></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p> </p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p> </p>
|
|
<table width="85%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Equipment</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p align="left">These entities won't be used in most
|
|
Natural Selection maps, but they can be used for unique
|
|
scenarios or for testing or training maps. Weapons,
|
|
building and equipment are normally purchased by marine
|
|
players during the course of the game. Use these entities
|
|
to place "free" stuff around the level.
|
|
Each weapon starts with the default amount of ammo.
|
|
</p>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Marine weapons</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p> </p>
|
|
<table width="90%" border="0" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td><b>item_machinegun </b>- </td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>item_shotgun - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>item_heavymachinegun - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>item_grenadegun - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>item_nukegun - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>item_flamegun - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>item_genericammo - </b></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr bgcolor="#666600">
|
|
<td><font color="#FFFFFF"><b>Marine buildings</b></font></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div align="center">
|
|
<p align="left">Any building that normally need
|
|
to be built by players start fully contructed.
|
|
TODO: Add a team designator if allowing marines
|
|
vs. marines or aliens vs. aliens.</p>
|
|
<table width="90%" border="0" cellspacing="0" cellpadding="2">
|
|
<tr>
|
|
<td><b>turret - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>siegeturret - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>phasegate - </b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>cameratower - </b></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p> </p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p align="left"> Coming soon, sample maps showing how to every
|
|
custom entity here.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
<p> </p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p> </p>
|
|
<p> </p>
|
|
<p> </p>
|
|
</body>
|
|
</html>
|