Just a couple of thoughts
Creating Flexible Maps
Is it possible to create a map that competes equally well for stopwatch (SW) and campaign matches? I’m going to take the position that, "yes, you can build such a map, with a little bit of foresight. First, let’s examine the requirements of a SW map vs. a campaign match.
Different Game Modes Require Different Map Designs
- First, game objectives are different. In a campaign match, teams play over a series of 3 different maps. The first team to win 2 maps wins the match. The MAXIMUM number of games a team will play in a match is 3. Conversely, in SW matches and depending on the league rules, teams play the same map in rounds. The first team on offense tries to set a time, then the sides switch and the new attacking team tries to beat the time. The team with the lowest time in the set wins the round. First team to win 2 rounds wins the match. This means that each team will play a MINIMUM of 4 games.
- In a campaign game, a full hold is a win for the defender. In a stopwatch game, a double full hold is a tie and therefore may not count towards the 2 round win requirement. It is not unheard of for teams to have many tie rounds resulting in very very long matches.
- Since the time-to-complete is the primary determinant of victory in SW, maps should favor the offense. Full holds, given totally equal teams, should be rare. On the other hand, campaign maps SHOULD result in full holds (e.g., defender victory) approximately 50% of the time, given equal teams - now you can see why it’s tough to design a map that plays equally for both gametypes.
- Stopwatch matches typically involve more games, so if you want to keep match times approximately the same, stopwatch matches need to play faster and have shorter map times.
The Scripting Engine Is Very Powerful and Flexible
So how do you create map that does both things well, when it seems like the requirements are so different? The answer is creative scripting and thoughtful map construction. What do you mean? Let’s take a look at what you can actually change by just editing the .SCRIPT file, meaning that you don’t have to recompile a whole new map. Naturally, this assumes that you’ve added the proper entity keys (e.g., targetname, scriptname keys) during the mapping process. I’ll use my map Vengeance_final as an example:
- Remove barriers (completely remove side door)
- Make barriers easier to destroy (make the Main Gate satchelable)
- Remove or add constructibles (remove ammo bunker doors, add/remove constructible MG’s)
- Change spawn times (make attacking axis spawn every 15 seconds vs 20 seconds)
- Reduce game length (reduce the map time from 30 minutes to 20 minutes)
- Make spawn bonuses contingent on holding CP (axis gain 5 second bonus when CP is built)
- Add or remove spawn points (make CP a spawn point only when Axis build CP)
- Reduce the number of objectives required to win game (need to only blow one rocket instead of both)
-Make vehicles move faster
OK, big deal. So what?
Effective Use of Scripts Allows You To Radically Tailor Your Maps
Given the differences in game requirements we discussed above, and assuming that you are starting with a pretty balanced map, what do you need to change to make a map designed for campaign, into one more suited for stopwatch?
- Speed up vehicles
- Remove constructible MGs
- Remove barriers or make them easier to destroy
- Increase the attacker-defender spawn time differential
- Give the attackers spawn time bonuses based on the completion of key tasks (e.g., building CP)
What about the reverse. How do we take a map designed for stopwatch more suitable for campaign?
- Add barriers
- Make barriers harder to destroy (e.g., require dyno for previously satchelable barriers
- Add constructible MGs
All It Takes Is A Little Forethought
So what do I need to do to make this all possible? As I’ve been editing scripts for Vengeance_final for various leagues and game types, I would recommend the following:
- Give every entity (team doors, MG’s etc) a targetname and scriptname
- Decide what gametype your map is built for and focus on that, but keep in mind what your map would need should you want to tailor it for the other gametype.
- You can add entities to a map that you can simply turn off via your script. I came to this realization purely through luck. I started out with constructible MGs on top of 2 bunker, but received feedback that this just made it too hard for the attackers. I was lazy and didn’t want to remove them from my .MAP file, so I just setstated everything to invisible. What this allowed me to do later, is to add the MG’s back into the map when I wanted to tweak my map for a campaign match. You could also do the same thing with barriers and team doors.
- Tweak your .SCRIPT and .ARENA files and add them to a new pk3 file that comes later alphabetically. This will make the server override your original files with the new ones. I like adding a new .ARENA file to visually show players 1) that they are playing a “new” map and 2) what changes were made to the game play.
- Tweak game length to get your map to the point where you think the defenders will hold the full time approximately 50% of the time.
One of the really nice things about being able to do this, is that you can nearly create a new map in less than 5 minutes. If you’re looking to test maps and gameplay, it gives you an option to rapidly tweak gameplay, easily distribute new files (<10Kb in size), and get it into the hands of people who will be playing your map. OK, that’s enough rambling for now. Comments? Feedback?
- sticky this. \o/