Post by Alex on Dec 6, 2007 19:48:23 GMT -5
Ok. So this is a abit preemptive, but I figure it's only fair that people who are planning on mapping for 2.5, or who have made maps already and want to update them for the new release, get a headstart on how to do so.
Without further ado : My 2.5 mapping guide. It's pretty skeletal at the moment. I will update it whenever there's a major change or addition to the game.
****
What's changed in 2.5 (of interest to a mapper)
Since 2.1, there have been a couple of changes to core classes and assets in killing floor. Additionally, some features
have been added which will need to be taken into account, when you create a map for 2.5, or revamp an existing map.
UPDATE (16/12/07)
Post Process Overlays will only affect zones or volumes with "bDistanceFog" set to TRUE.
"KFTeamProgressVolume" -
This is a new type of volume which checks to see if
every player on the server is within the bounds of the volume, and if
that is satisfied, it calls the volume's event.
This is useful for story based missions where you need to
gather your whole team before you can progress.
1. Overlays. "Oh my god my map looks all pink / purple / etc! Wtf"
KF2.5 makes use of a HUD overlay which tints the players screen to match the RGB color values of the ZoneInfo
the player is standing in at that time. All that happens, is the world appears more saturated,in an attempt to mimic
post-processing. The overlay also responds to the Fog RGB of PhysicsVolumes, and the LevelInfo, So keep that in mind
if your map does not make use of ZoneInfos. If you make use of all three, the Overlay will blend between each
appropriately, with Zones taking precidence. It is best to use an RGB value that is not too high, or you risk super
saturating the player's vision, and making things look more colorful than would be natural. Conversely, RGB values
that are too low will make it difficult for the player to see what's going on. Find a happy medium.
NOTE: If you simply DO NOT WANT post-process overlays, you can disable them from appearing in your map in this way.
- Add a "KFSPLevelInfo" actor to your map
- In the default properties, set bUseVisionOverlay to FALSE
- save your map.
2. Glass "OMG when i run my map, i get lots of log warnings about KFGlassMoverssss!"
KFGlassMovers are now a misnomer. Because they extend actor, rather than mover. It struck me, there was no need to have
a class which does little more than switch between visible / hidden extend all of a mover's other functions. This may
allow a performance boost on maps which make heavy use of glassmovers. It hasn't been tested, so dont take my word for it.
Because the default Object State setting for a KFGLassMover USED TO BE "TriggerToggle", and because that state no longer
exists, you will likely get log warnings when you start your map up. To fix this, go into your map, Select All KFGLassMovers,
and change their Object state to NONE, as it will now be the only choice in the list. Save your map, and the log spam should
cease. GlassMovers have other values now, including health. Each piece can be set to have a certain durability. It is
recommended that you set all pieces of a given pane to the same health value. Further, every piece of glass in a pane
should share a common TAG. ie. "Window1" or something. This means that when any piece of the window is shot out, the others
will be set to a health of 1, to simulate that the window has been shattered. Affected pieces will look cracked, as well.
Obviously, make sure that your Pane sets of Glassmovers have unique tags.
3. Doors "Why can't I blow up big metal doors with my shotgun anymore"
KFDoorMovers have some cool new attributes. For one thing, you can now set them to be welded shut from the word go.
To Do this, set bStartSealed to true, in the default properties. In terms of taking damage, you have two new variables
bSmallArmsDamage, and DamageThreshold. bSmallArmsDamage is universally FALSE by default. it means that nothing but
explosive weapons deal damage to that door. If you have a wooden door, or something more flimsy, clearly you can
set this to false for more realism. "DamageThreshold" is the amount of damage a door needs to sustain, (even if it
accepts small arms damage) before that damage "registers", and decrements the door's health. Lastly, "bKeyLocked"
is a new feature that allows you to set whether a door is locked to a specific key. This will no doubt be handy when
creating single player maps where you'd like players to search for a specific item before they are allowed to progress.
once bKeyLocked is set to true, you can place a "KFKeyPickup" pickup actor in your map, ensuring that the EVENT of the
KeyPickup is set to the TAG of your KFDoorMover / KFUseTrigger. When a player has picked up the KeyPickup, and if the
Event and tag match, he will now be able to open the door.
4. NetKActors
Physics objects in KF are now fair game for being punted, by specimens. This isn't exactly that important to mappers,
aside from keeping in mind that where you might have avoided placing Karma objects across zombie spawns, or in certain
areas, you should now be able to do that. It could create some cool "specimens breaking through wall" or "Specimens
knocking over barricade" moments. Maybe...
5. "Story Mode"
Ok. To set matters straight, story mode is more or less just a stripped down version of survival. Players have some
changes to their HUD, and they dont have to worry about constantly spawning enemies. that's about it. You could achieve
the same thing before, using a Survival map and neglecting to put any ZombieVolumes in, but you'd get tons of log warnings,
and the HUD would still be yapping about enemies remaining, countdowns, etc. All that is gone. Any enemies you want to
add to your map can be placed as pawns through the actor browser, or by scripted trigger. Or you can make a peaceful map
with no enemies in which your squad assembles for an emergency picnic. It's your call. To set up a Story mode map, all you
really have to do is change the Gametype in the Levelinfo to "KFMod.KFSPGameType" and then save it out with a "KFS-" prefix.
Easy. It should then show up under the Story mode maps list in the game.
Without further ado : My 2.5 mapping guide. It's pretty skeletal at the moment. I will update it whenever there's a major change or addition to the game.
****
What's changed in 2.5 (of interest to a mapper)
Since 2.1, there have been a couple of changes to core classes and assets in killing floor. Additionally, some features
have been added which will need to be taken into account, when you create a map for 2.5, or revamp an existing map.
UPDATE (16/12/07)
Post Process Overlays will only affect zones or volumes with "bDistanceFog" set to TRUE.
"KFTeamProgressVolume" -
This is a new type of volume which checks to see if
every player on the server is within the bounds of the volume, and if
that is satisfied, it calls the volume's event.
This is useful for story based missions where you need to
gather your whole team before you can progress.
1. Overlays. "Oh my god my map looks all pink / purple / etc! Wtf"
KF2.5 makes use of a HUD overlay which tints the players screen to match the RGB color values of the ZoneInfo
the player is standing in at that time. All that happens, is the world appears more saturated,in an attempt to mimic
post-processing. The overlay also responds to the Fog RGB of PhysicsVolumes, and the LevelInfo, So keep that in mind
if your map does not make use of ZoneInfos. If you make use of all three, the Overlay will blend between each
appropriately, with Zones taking precidence. It is best to use an RGB value that is not too high, or you risk super
saturating the player's vision, and making things look more colorful than would be natural. Conversely, RGB values
that are too low will make it difficult for the player to see what's going on. Find a happy medium.
NOTE: If you simply DO NOT WANT post-process overlays, you can disable them from appearing in your map in this way.
- Add a "KFSPLevelInfo" actor to your map
- In the default properties, set bUseVisionOverlay to FALSE
- save your map.
2. Glass "OMG when i run my map, i get lots of log warnings about KFGlassMoverssss!"
KFGlassMovers are now a misnomer. Because they extend actor, rather than mover. It struck me, there was no need to have
a class which does little more than switch between visible / hidden extend all of a mover's other functions. This may
allow a performance boost on maps which make heavy use of glassmovers. It hasn't been tested, so dont take my word for it.
Because the default Object State setting for a KFGLassMover USED TO BE "TriggerToggle", and because that state no longer
exists, you will likely get log warnings when you start your map up. To fix this, go into your map, Select All KFGLassMovers,
and change their Object state to NONE, as it will now be the only choice in the list. Save your map, and the log spam should
cease. GlassMovers have other values now, including health. Each piece can be set to have a certain durability. It is
recommended that you set all pieces of a given pane to the same health value. Further, every piece of glass in a pane
should share a common TAG. ie. "Window1" or something. This means that when any piece of the window is shot out, the others
will be set to a health of 1, to simulate that the window has been shattered. Affected pieces will look cracked, as well.
Obviously, make sure that your Pane sets of Glassmovers have unique tags.
3. Doors "Why can't I blow up big metal doors with my shotgun anymore"
KFDoorMovers have some cool new attributes. For one thing, you can now set them to be welded shut from the word go.
To Do this, set bStartSealed to true, in the default properties. In terms of taking damage, you have two new variables
bSmallArmsDamage, and DamageThreshold. bSmallArmsDamage is universally FALSE by default. it means that nothing but
explosive weapons deal damage to that door. If you have a wooden door, or something more flimsy, clearly you can
set this to false for more realism. "DamageThreshold" is the amount of damage a door needs to sustain, (even if it
accepts small arms damage) before that damage "registers", and decrements the door's health. Lastly, "bKeyLocked"
is a new feature that allows you to set whether a door is locked to a specific key. This will no doubt be handy when
creating single player maps where you'd like players to search for a specific item before they are allowed to progress.
once bKeyLocked is set to true, you can place a "KFKeyPickup" pickup actor in your map, ensuring that the EVENT of the
KeyPickup is set to the TAG of your KFDoorMover / KFUseTrigger. When a player has picked up the KeyPickup, and if the
Event and tag match, he will now be able to open the door.
4. NetKActors
Physics objects in KF are now fair game for being punted, by specimens. This isn't exactly that important to mappers,
aside from keeping in mind that where you might have avoided placing Karma objects across zombie spawns, or in certain
areas, you should now be able to do that. It could create some cool "specimens breaking through wall" or "Specimens
knocking over barricade" moments. Maybe...
5. "Story Mode"
Ok. To set matters straight, story mode is more or less just a stripped down version of survival. Players have some
changes to their HUD, and they dont have to worry about constantly spawning enemies. that's about it. You could achieve
the same thing before, using a Survival map and neglecting to put any ZombieVolumes in, but you'd get tons of log warnings,
and the HUD would still be yapping about enemies remaining, countdowns, etc. All that is gone. Any enemies you want to
add to your map can be placed as pawns through the actor browser, or by scripted trigger. Or you can make a peaceful map
with no enemies in which your squad assembles for an emergency picnic. It's your call. To set up a Story mode map, all you
really have to do is change the Gametype in the Levelinfo to "KFMod.KFSPGameType" and then save it out with a "KFS-" prefix.
Easy. It should then show up under the Story mode maps list in the game.