Running Out Of Crime
Of course, there is a potential fail state of this whole premise: What if the players just win super hard? What happens when there are just no mobs left anywhere?
The answer is that this has to be hard enough to do that if players pull it off, we can just pat them on the back and tell them “good job.” Remember that when an enemy group is totally defeated within a neighborhood, they can spawn into a random empty hideout immediately. This means that the more players put the hurt on gangs, the easier they make it for any totally eliminated gang to bounce back. In order to take out all gangs, players will need to coordinate to push each of them into a single hideout, which will constantly disgorge mobs for them to beat up, until they’re ready for the decapitation strike when they take out all hideouts simultaneously (leaving behind some heroes to take out the mobs who spawn while the hideout-clearing team is inside – because hideouts don’t stop spawning just because someone’s inside them!).
Remember also that each neighborhood spawns based on a timer tied to the total number of players in the zone. One pack of about four mobs usually takes something like 30-60 seconds to defeat, let’s call it 45 seconds, counting the couple of seconds it takes to run from a beaten group to a fresh one. Any given zone has about five neighborhoods with about three enemy groups each in that neighborhood, which means about eighteen different hideouts spawn when no gangs have been wiped out (which is the norm whenever players are at all active in a neighborhood and only requires special intervention to prevent when it’s NPCs who’ve wiped them out, since NPCs will occupy the buildings left behind). Thus, each hideout needs to spawn one pack of three to four mooks every (45*18=) 810 seconds (thirteen and a half minutes), divided by however many players there are. At peak times and in popular zones, it’s not unreasonable for a single zone (particularly a newbie zone) to have a thousand or more players in it simultaneously, which would require new mobs to spawn in once per second (at this point, it’s probably wiser to switch over to spawning bigger groups, rather than spawning small ones more often, just in case the gang is pushed into a single hideout and needs to spawn all of these guys from the same door). Each of these guys can turn empty hideouts into new hideouts for their gang, which means players need to coordinate to form a frontline that prevents them from expanding, and the more players they bring in, the tighter that net needs to be in order to prevent enemies from slipping through and making new hideouts. If we just have a very large player population, what’s going to happen is that NPCs will be constantly spawning, wandering past emptied hideouts, and converting them into new hideouts.
I think all of this is sufficiently difficult that the only way to clear a zone completely is to coordinate a large group of players (probably a minimum of three dozen, in order to launch the simultaneous decapitation strikes on every enemy group in every neighborhood), and at that point, far from coding some method of preventing them from doing so, we should hand out badges to everyone who’s in a zone when it’s totally cleared of crime. They’d be some of the most coveted badges in the game, seeing as how that 36-hero team would only have a 22.5 second window in which to finish off all hideouts simultaneously before the spawning algorithm fires again and replaces any defeated enemy groups using any available empty hideouts.
Another potential concern is that your mission could be called off mid-way through because someone else just cleared the unique map at the end of it. You’re chasing leads on the Vahzilok when someone else finishes up the sewer and now you’re done. I think it’d be fine to give each unique hideout a thirty minute grace period during which it counts as empty and can’t be occupied by a new enemy group, and during which players can enter it and get their own instanced version of the map to save hostages or whatever. Also, once you’re in the instance, there’s no need to kick you out if the hideout changes or gets emptied. Because the hideout is considered empty during the grace period, contacts will stop handing out the mission related to it and enemies will stop dropping clues pointing to it, so if you’ve got one of those, you know you have a minimum of thirty minutes to get it done. Most hideouts are generic, so this won’t change the math on how difficult it is to clear out crime completely much at all. It also won’t extend the window for crime clearing, since a defeated enemy group can respawn into any empty hideout, doesn’t have to be a unique one.
In fact, I think it’d be nice to throw the zone-clearers a bone at this point: If you complete a mission related to every enemy group on a map within a certain timeframe (one generous enough that it should continue to apply for your entire play session – maybe four hours, just to sync up with the ideal day/night cycle) and there are no occupied unique hideouts in the zone, you cease to count towards the rate at which enemies spawn in the zone. A large, coordinated group could clear the unique hideouts in order to drastically decrease the spawn rate (in theory, to zero, but in practice there will probably be a couple of other heroes lying around – still, that takes the spawn rate from that 22.5 second number all the way up to something like three or four minutes).
What about griefers who are intentionally trying to break the system, keeping all enemies bottled up into one hideout constantly so that most of the map is clear? Well, first off, consider that they’d need an average of eighteen players to keep all hideouts clear, and if even one hideout is left unattended, it will fill in all the empty ones. The zone will become same-y, but not unplayable, and even that will only last until the griefers get bored and move on. They’d need lots of dedication from a large number of people to make it into anything more than a minor nuisance. Griefers could bring high level characters onto a zone map to flatten mobs at a faster than normal rate, but the more people there are in the map to be griefed, the faster mobs spawn. The higher the number of potential victims, the less feasible it is for even the highest level character to locate and bring down mobs fast enough to cause any grief. At some point, the main bottleneck becomes travel time.
Okay, what about a griefer team using the NPCs to their advantage? NPCs can occupy empty hideouts, so they could target specific groups, or just all groups except their chosen favorite, and prevent people from taking any missions concerning those groups. Without any mobs to sweep, you can’t get a clue leading to their unique map, not even the “running scared” versions where they’re trying to move in and establish a foothold. When a gang is eliminated in one neighborhood, they immediately send all available mobs to go clear it, but that could actually work to a small group of griefers’ advantage, funneling all mobs into one area for a high-level character to flatten while the others knock off the hideouts in other neighborhoods, being sure to wait until their chosen gang occupies any empty ones before moving on, in order to prevent a totally annihilated gang from respawning.
The griefers’ ability to pull this off is limited by two factors: First, every hour or so, a random hideout is emptied out by a fire or an overdose or some other non-criminal emergency. Total Vahzilok (or whatever) domination can’t last. Second, this is the easiest thing in the world for other players to thwart, because turning Vahzilok hideouts into empty hideouts is a part of perfectly normal gameplay. Players who log in or wander in from other zones midway through this grief attempt will thwart it without even realizing they’re doing so. In fact, getting total domination of one specific gang is even harder than clearing the zone of crime completely, because random players wandering through and knocking off a few mobs here and there are opening up new fronts in places you thought you’d cleared, whereas the worst a few interlopers can do when trying to clear crime completely is drop the spawn rate a bit (or a lot, if you’ve all got the temporary status that causes you not to be counted as a player for spawn rate purposes, but if that’s the case then the spawn rate is probably very low anyway).
Speaking of Levels
One of the main gateways to griefing through this system is coming in with a very powerful character to thin out enemies faster than the game assumes it needs to spawn them to keep up with you. I don’t think this is going to be a major concern for reasons I’ve already stated, but there’s an additional precaution we can take, one which is just generally a good idea anyway, and that’s make a level adjustment system automatically. Not enemy level adjustment, mind you, those are terrible. No, I mean a method of adjusting your own level. Heroes should be able to adjust their level downwards at will, and thus avoid being locked out of any content by outleveling it without being able to completely steamroll it. Not only that, but when you’re in a zone, your level should be capped at three levels above the zone’s level range. At that level, every last mob in the zone is grey for you, so much lower level that they won’t attack you even if you stand right in front of them, and you’re sufficiently powerful to not be significantly threatened by anything in the zone. There’s not much reason to need to be even stronger at that point, except to maximize your ability to annihilate all foes in the zone, something which we want to require large, coordinated groups. So, Atlas Park is a level 1-4 zone, and when in Atlas Park, you’re capped at level 7. King’s Row is level 5-9, and while in King’s Row, you’re capped at level 12. Steel Canyon and Skyway City have larger level caps, 10-19 each, so while in those zones you’re capped at level 22 and can be as many as 12 levels higher than the lowest level mooks.
Your XP multiplier is based on your current effective level, not your maximum available. Of course, getting level 50 takes a bajillion XP and is only reasonably doable because level 49 enemies give a bajillion/100 XP by default, so you’re not gonna easily hit level 50 by styling on Hellions in Atlas Park even if you set your level down to 1 to match them. But the main thing here is that you do gain XP at all, so long as you’re fighting enemies who are no more than two levels below your current effective level.
Alpha timeline CoH tried to push itself as enabling people to play together easily by allowing for “sidekicking” where a low level hero would be temporarily increased in level to nearly match a higher level one, and fairly soon in (issue 2) patched in “exemplaring,” which allowed for the reverse, but this still doesn’t solve the problem of players outleveling content they may have wanted to experience. Just giving players the ability to delevel themselves as much as they want is a much more straightforward solution, and one that should be easy to program if the game is designed for it from the beginning.
So, yeah. That’s another six thousand words on what I’d do with City of Heroes in a time traveling witch scenario. It’s not as drastic an overhaul as I gave City of Villains, especially since it’s kind of crying out for a lower player limit (this system would work just as well in a one player game, and is almost certainly ideal with somewhere between ten and forty players active at any given time). I didn’t bother detailing how Atlas Park would work in the system, because I’ve mainly just replaced “defeat 10 [enemy]” with “defeat [enemy] until they drop a lead, which takes an average of 10 mooks.” We’d want the drop rate to be smarter than just a 10% chance per mook, like, each mook you defeat increases the drop rate by a certain amount so that if you’ve beat up twenty guys in a row with no leads the odds of getting a lead on your next mook are near-certain, just as an anti-frustration feature, although I think the usual problem with waiting on drops is going to be ameliorated largely by the fact that you only ever need one so you are unlikely to ever spend more than five minutes looking for one (and that’s a pessimistic scenario – two minutes and change is the average rate if my calculations on time-to-defeat-pack-of-three-mooks holds). I like this system, but I’m on the fence as to whether it would be worth its dev time (in large part because estimating its dev time is very difficult from the sidelines).
Unless I get seized upon by another idea, though, that wraps up CoX week. I’m writing this way in advance, but this post is scheduled for February 7th, which is the very latest day that Conan the Hunter should arrive, which means I should have enough time to get started on it for a Saturday post.