Originally posted on Runegame.com by Jean Paul LeBreton
Mirrored here for archival purposes
Making New “HeadBall” Maps
Like Arena, HeadBall is a new game type added with the Halls of Valhalla expansion. Similarly, there are some special considerations to take when designing HeadBall maps and ensuring they are set up properly.
HeadBall can be played with 2, 3 or 4 teams. Like the Team Deathmatch functionality outlined above, a mapper can decide how many and which color teams the map supports. If a map has playerstarts for, say, Gold team, players will be able to join and play on that team.
The key pieces of new functionality in HeadBall maps are the HeadBall goals that heads and limbs are thrown into to score points. Any goal can award the team who scores in it an amount of points specified by the designer. A goal can either be non-team specific, meaning any team can score a goal in it, or team specific, where only a certain color team can score in it. The HeadBall maps you’ll find in Halls of Valhalla contain a mix of these.
The maps HB-Agora and HB-Montezuma2 contain two goals that any team can score in, while HB-Aqueduct and HB-DeCapital contain four goals, each unique to a single team. Alternately, you can opt to make a goal “Team Bonus”, meaning any team can score goals in it, but one team will get an extra amount of points.
HB-HelRaiser uses Team Bonus goals to encourage Blue team players to strike out into Gold team territory and score the extra points, and vice-versa. Other maps like HB-DragonKeep and HB-Pits have two team-specific goals, Red and Blue, at either end of the map, a configuration similar to basketball or football.
As you can see, there are a number of options a HeadBall designer has at their disposal. The maps mentioned above all play very differently due to their layout and goal configurations, we really tried to show all of the various possibilities in the maps we did for the expansion.
At the beginning of a HeadBall match, the participating teams must hit a “log in” switch to signify that they are ready to begin playing. Before this time no players will be able to inflict damage on one another, the game will be in “warm up” mode.
Some care should be taken with regard to the placement of the login switches, they should be in an easily visible, central location so that players can find the switch quickly when they’re ready and get the game rolling.
Now I’ll go into detail about how to set up a Rune map for HeadBall play. This mini-tutorial will assume that you’re familiar with how to build geometry in RuneEd / UnrealEd, divide your map into zones, and place actors within the map.
Headball maps are denoted by their HB prefix. Just as maps with a DM prefix (DM-Thorstadt, for example) will only show up in the Deathmatch map list, if your map has an HB- at the beginning of its filename it will be selectable from the server setup screen as an HeadBall map.
To make your map a HeadBall map, you’ll first need to specify HeadBall as its default gametype. Hit the Load button down at the bottom of the browser and select the HeadBall.u file. All the HeadBall-specific actors will now be accessible.
Expand Info>GameInfo>RuneGameInfo>RuneMultiPlayer>Teamgame, and select HeadBallGame. Crack open Level Properties, select DefaultGameType, and hit Use. That’s the easy part. Now build the map and get it wired for HeadBall play!
A HeadBall goal is basically a special zone that is able to detect when a head or limb is thrown into it. Given that, a HeadBall goal can take any shape you can create in RuneEd… however you want the goal to be recognizable as such so the players will know where to take the Heads they sever. We settled on a specific look for our goals for the sake of visual consistency.
At the opening of the goal, a translucent sheet with the RuneFX.DarkDwarfEnergyBall animated texture, SpecialLit with a highly saturated colored light to tint it a team color when necessary, worked quite nicely.
Another important factor in HeadBall goal design is size. Initially our HeadBall goals were very thin rings (somewhat like sideways basketball hoops) that could be seen through. This had the effect of making the actual HeadZone very thin, and caused problems with scoring… sometimes a head would pass through the thin zone and not be detected as a successful score, even though it takes only milliseconds for the game code to process such actions.
This problem was only compounded by multiplayer lag. We settled on a larger goal with a single opening, inset into a thick wall. This way a head goes in, comes to rest and stays in until the game code has plenty of time to count it as a score. A square opening is probably the easiest and friendliest shape for a HeadBall goal, but an octagonal shape, if constructed cleanly, can also work just fine.
Again, the shape of a HeadBall goal is limited only by what you can build in the editor… the gaping maw of a monster, the crater of a volcano, whatever you can make work. A word of warning, however: any actor entering a HeadZone will be deleted and/or destroyed. Try it sometime… throwing a weapon into a HeadZone will cause the weapon to vanish.
Should a player manage to climb into a HeadZone, he will instantly be killed. If you want to keep mischievous players out of your goals and away from any spot where “goal tending” might be possible, BlockPlayer actors work quite nicely, as they don’t block anything else.
Once you have your goal built, you need to zone it off with a zone portal sheet. Place a HeadBallZone actor inside the zone. To configure the goal that the ZoneInfo represents, open its properties and expand the HeadBallZone section. Here are the different properties you can fiddle with:
bRestoreHealth – Setting this to “True” will replenish the health of anyone who scores a head in this goal if they are wounded (chances are they will be)
bTeamBonus – Setting this to “True” will add the number of points indicated in the “TeamBonusScore” field to the normal “ScoreAmount” if the person who scored is on the team indicated in the “TeamNumber” field.
bTeamOnly – Setting this to “True” will only count scores from a person on the team indicated in the “TeamNumber” field for this goal.
ScoreAmount – This number represents how many points will be awarded when a player scores a head in this goal. Note that scoring a limb will only earn the player 1 point, no matter how high this number is.
TeamBonusScore – This number of points will be added to the “ScoreAmount” if a player from the appropriate team scores.
TeamNumber – This number denotes which team can receive points for a score in this goal. It’s only relevant if bTeamOnly or bTeamBonus is “True”. As with all team-based properties, Team 0 is Red, Team 1 is Blue, Team 2 is Green, and Team 3 is Gold.
There’s one more important HeadBall actor you need to know about, and that’s the HBGamePump, found beneath Triggers>Trigger>pump in the Classes browser. Insert one of these for each team you will have in your map. The one relevant property in this guy is “TeamNumber”, the 0-3 value of which corresponds to the team whose login switch it is.
Making a map HeadBall-ready is really pretty easy, just zone off your goals, configure the HeadZone, and add in the login switches. The hard part is building a map that’s both exciting to play and pretty to look at. So get cracking!