Wednesday, April 21, 2010

Playing the Game: Why combat meters byte

Note: I started this quite a while ago, then got wrapped up in other things and forgot to finish it until now.

Yeah, I know, mildly provocative title. But I've never made a secret of not being a fan of First Person Shooter style combat in Secondlife. It all comes back to SL being a Virtual Reality simulator and not a Combat simulator. Seriously, if you are into serious FPS combat, go play Unreal or Halo or Counterstrike, or any of the many other games that do a far, far, better job of simulating combat. It's what they were designed for.

Secondlife has its own built in combat system, which is usually left off in most sims. It has one advantage of being integrated into the server itself, but has some serious flaws. Not the least of which is that when you "die" you're teleported back to your Home location. Obvious drawback there. As far as I can tell from the little research I've done, they included it more or less as an afterthought because some people really wanted it. It's just not all that good.

From my own observations, the most commonly used Combat Meter system in Secondlife is DCS2, the Dynamic Combat System. DCS2 is, admittedly, a versatile system but, in my not entirely humble opinion, suffers from some glaring flaws. Though, to be fair, the flaws aren't unique to DCS.

Like many other systems, DCS is biased towards a Class and Level sort of setup. Characters fall into a class of one type or another which gives them a default set of "skills" or "powers" within the DCS context. They level up with experience and, as they level get, to add more skills and stats. Experience can be based on time in game (common, but lame), combat kills (also common, and lame for other reasons) or by GM fiat (less common, but actually appropriate). There's a limited mechanism for other players to award someone experience for good RP, but that's really it.

I don't mean to rip on DCS, not even for their 'setting up a sim to use it is free, but we charge for the meter' model. They've got to pay for the server that hosts their back end, after all. The problems I see with it are common to any sort of game mechanic that uses character classes and levels, something I glossed over in the post on Cooperative Storytelling. Essentially, Secondlife lends it self much more to a Freeform style of RP than to a hard and fast Game Mechanic based model. When meters are level based, you're automatically tied into whatever sort of character progression the meter's designers thought was best. Even when character progression is secondary to story progression.

On a purely operational level, separate from the game mechanics, there's the issue of making any meter clean and fast and hard to cheat.

There's two main "models" combat meters used in SL, not counting SL's own built in version. The first I'll call "Avatar Local." In these, the AV has an attachment that handles everything: Damage tracking, healing, special effects, are all handled locally on the participating avatar. These are usually feature limited, but are fast and don't have a major impact on sim performance or suffer from external sources of lag.

The second major model I'll call "Remote Server." These use an external server somewhere in a sort of client/server model. When you're hit, the meter on your AV calls the remote server and has it process the damage based on whatever mechanics it has set up. The server then kicks back the results and your meter is updated. This is the model DCS2 and FFRP both use. There are a number of advantages, like being able to modify things on the server side and have the changes come into play without having to update everyone's client. The biggest disadvantage, and one I've always found glaring, is that you're now adding a set of calls to an external system. This adds in another layer of latency and lag, not to mention potential security concerns.

I don't particularly like this model.

Where does this leave us?

Well, given my preference for text based interaction rather than FPS combat, or at least a mix, and my opinion of current alternatives, I'm going to come up with a Wish List of sorts of features that would make a good Combat Meter system. It's essentially a combination of the best features of the above models.

  1. A client / server model that lives entirely on the local Secondlife simulator. While it will increase the load on the server somewhat, it will reduce possible security risks and make sure Meter-based lag affects everyone equally.
  2. Open source for both the client and the server.
  3. Anti-cheating functions that are compatible with it being open source. It is possible. It just takes a little extra work.
  4. Compatibility with most, if not all, weapons available in SL, including freebies and "enhanced" weapons designed for other combat systems.
  5. Optional recognition of enhanced weapons, where there's an available API.
  6. Inclusion of a simple game mechanic that lets players customize their characters, but is both fair and easy to implement.
  7. Optional experience systems, or at least a way for players to update their characters as they develop.
  8. A way to let the same combat meter work across different sims using the same character.
  9. A way to play different characters from the same account. (e.g. Alternate AV's representing different characters, rather than creating separate accounts.)
  10. Optionally recognize armor and special weapons types, like sniper rifles or heavy weapons. (Armor appears to be unknown in most of the systems I've looked at.)
  11. Compatibility with, or integration with, a vehicle combat system.
  12. Expandability to incorporate special features as needed.
  13. A way for individual sims to tweak things to suit their needs while still being cross-sim compatible.
Not really all that much of a list? Ok, so it is. But none of it can't be done and none of it wasn't in mind when I started my initial work on a cross-sim in-world combat meter system. There's more I'd like to see, but I think that Baker's Dozen is a good start.

Does this meter exist? Given the vast resource jungle that is SecondLife, it's entirely possible. I just haven't found it. Could I code this myself? Technically, yes. I could actually get this to work, though there are other folks in our group who're more skilled coders. The question, of course, would be whether I had the time to write this beast. And the answer to that is, "probably not."

Players will use whatever combat system suits them best, whether it's a meter or text based or the delicate balance of both. Some sims in the collective 'Verse will require one or the other, but with one possible exception, I'm pretty sure that none of them will force someone into combat if they don't want to participate. If a sim owner decides to force the issue that Meter/No-Meter is mandatory on their part of the grid, and combat is not optional, then the simple solution is to simply not play there.

Ultimately, what happens to your character should never be forced upon you by the limitations of some arbitrary combat meter system.