I don't need to test my programs. I have an error-correcting modem.
Legacy:Mapping For Unreal Coop
Contributed to the Unreal Wiki by Techno_JF.
Unreal Coop is an alternate gametype that some SinglePlayer maps can take advantage of. (Technically, all true SinglePlayer maps can be played in Coop, but this is highly inadvisable for a number of them.)
I guess the best way to consider what makes a map successful for coop play is to think of features found in successful coop maps. (Note, this page assumes that standard coop with Unreal's default weapons is meant.)
Obviously, the most important thing to do to make a map playable in coop is to include multiple PlayerStarts at the beginning of the map. Having your players telefrag each other as they start the level is extremely bad form. In many cases, this might require getting creative so that there are actually places to put PlayerStarts.
Example: in Outpost 3J, a map that comes with Unreal 1, the player would normally start at the beginning of a long tunnel of water that he had to swim through to enter the base. However, the storyline of the map is set up so that the player easily finds a SCUBA Gear pickup in the previous level. In coop, this piece of the storyline cannot be assumed. There is only one set of SCUBA Gear in the previous level, which means that every other player would drown, including players who join the server while this level is running. To fix this, all the PlayerStarts were put in the first room, at the point where a player on his own would be surfacing from the water tunnel to enter the base.
Weapons should be made available to players at the beginning of each level. It can be rather frustrating for someone who is just joining a server to have to defend himself with nothing but the Dispersion Pistol. Easy access to a Stinger or an ASMD is highly advisable, but sometimes an Automag will suffice. Remember that most Coop servers will be set up so that weapons instantly respawn after they're picked up. In other words, players will start moving into the level with fully loaded weapons of whatever type you leave them.
Remember to take advantage of the Filter properties of various Actors that you place in your level. Though these properties are primarily used to determine which difficulty levels an Actor is present or absent in, there are additional variables to prevent Actors from showing up in either SinglePlayer or network games. These variables are:
For example, you could have that unbalancing Flak Cannon near the beginning of your level be missing when the level is played online, or you could create an extra team of Krall that will only be there when the level is played online. Also, remember that CreatureFactories can be set up to produce an additional number of creatures specifically for Coop games. The variable is AddedCoopCapacity. This is yet another way for you to get creative when you build your level.
Do you remember those high-intensity areas of some of the Unreal levels, where a door would slam shut behind you when you entered a room and you would have to face some major enemy or group of enemies? You shouldn't abandon these ideas if you're planning on making your maps Coop-compatible. On the other hand, you'll certainly need to tweak them a bit so that they still work in coop. This is most easily done by making an alternate entrance into the combat area. Seal off the area with a Mover, and make the mover so that it only works in online play. (Filtering Dispatchers is usually the best way of doing this.) Players arriving later should be able to get into the combat area through this route, but no player should be able to use it to escape from the combat area.
Examples: The three most well-known instances of this mechanic in the Unreal 1 maps are for the Titan in the Dark Arena, the Titan in the Temple of Vandora, and the room in the Cellars at Dasa Pass where you have to kill all the Krall before the doors will open again.
For those of you who are familiar with the Assault gametype in Unreal Tournament, you might want to take a cue from this style of mapping if your level becomes a bit too large. In Assault, when certain objectives are accomplished by the attacking team, a new set of PlayerStarts is turned on while the original ones are turned off. The same principle holds true for Coop. Nobody likes having to spend five minutes running through the empty parts of a level just to get back up to where the action is taking place.
Errata: I have been informed that this does not seem to work in Coop for either Unreal 1 or OldSkool Amp'd, for the simple reason that PlayerStarts did not have bEnabled variables in Unreal 1. However, this will be possible in the version of Coop that comes with Operation: Na Pali.
Counterexample: In the Sunspire, if a player dies after getting almost all the way up the tower, then the player respawns back at the gate, and they have to run all the way over the ledge, back to the door of the Sunspire itself, and then they have to work their way back up through all the places where they had originally been. Most players find this to be a major turnoff, especially when no one else is very close to completing the level. This is the perfect example of what to avoid in a large coop-compatible map.
Last but not least, do something for the end of your maps that makes them a bit more coop-compatible. One problem with the stock Unreal maps is that you can't do anything else with them after you get to the map with the final cutscene. The server becomes entirely useless because it's just running a cutscene map where nothing is happening. What I would suggest is to filter Teleporters for standalone play and online play. The Teleporter at the end of your last map for the SinglePlayer gametype will lead to a cutscene or whatever other dynamic ending you have planned. On the other hand, the Teleporter at this location for the Coop gametype might lead back to the very first map in your pack.
So, this may look like a lot of information to go through, but most of it is just common sense that's been given a bit of contemplation. Just as with any mapping project, you have the final word as to what stays in your map and what gets the axe. You know that you want people to enjoy playing your SinglePlayer maps, and you don't want them to just play your maps once and then never want to look at them again. Making your maps playable in Coop is a definite plus when it comes to making a SinglePlayer map that can be enjoyed over and over again.
- Mapping For OSM Adventure – A singleplayer/cooperative gametype for UT2004.
SuperApe: I will be revising this page soon.