Sunday, October 23, 2011

Brawler Scoreboard Update

I've been working on getting this Brawler scoreboard system up and running, and at the present pace, it seems like we're going to likely implement this in stages.  Right now the basics are working, but Team Admin(tm) will probably have to decide how to pretty it all up before we can roll out this first stage.

Right now, the general process is that you knock out another Brawler and use the "victory" command on their unconscious body (much like murder or loot) which registers the victory.  To the loser, the process would look something like this:


Parviane utters the words, 'xahzf barh'.
Parviane sends a blast of water at you.
Parviane's blast of water <*>_MORTALLY WOUNDS_<*> you!
You are unconscious.


1<1729> 1012<1012> 394<394> <0g 5s> <NEW:FIGHTLAG>


Parviane has claimed victory over you!

These victories get added to a global scoreboard which can be accessed via some command (currently called "scoreboard," but this is just a work-in-progress name...it's apt to change).  The current rough draft of the scoreboard then looks like this:

        Name         Wins       Losses     Wimpouts      K/D     K/D*
   Muristang         1(1)         5(2)         0(0)    0.200    0.500
    Parviane         5(2)         0(0)         0(0)    5.000    2.000
   Suqlaheru         1(1)         2(2)         0(0)    0.500    0.500

The statistics presented are pretty straightforward; the reason there are two numbers under wins/losses/wimpouts is because the game will keep track of unique wins/losses/wimpouts in addition to overall total.  So, in the above example, Parviane beat Muristang four times and Suqlaheru once.  This is a total of five wins, but since they were against only two people, there are only two unique wins registered...hence the 5(2) under the Wins column.  This should help make obvious cases where one person is racking up a lot of wins by fighting the same opponent.

The K/D and K/D* columns are the standard kill/deaths ratio and the unique kills/unique deaths ratio, respectively.

Under the hood, this system actually keeps a record of every fight (registered by the "victory" command), so brawlers can access a list of their fights using the tentatively named "brawllist" command.  If Muristang was to use this command, it would look like this:

1729<1729> 1012<1012> 394<394> <0g 5s> <NEW:>
brawllist
[  1]  Oct 23 2011: Loss against Parviane
[  2]  Oct 23 2011: Loss against Suqlaheru
[  3]  Oct 23 2011: Win against Suqlaheru
[  4]  Oct 23 2011: Loss against Parviane
[  5]  Oct 23 2011: Loss against Parviane
[  6]  Oct 23 2011: Loss against Parviane

At present, these records really don't contain a lot of data other than the date of the fight, the two combatants, and the outcome.  However, it does leave the door open to a number of possibilities in the future such as amount of damage done by each side, the duration of the fight, number of times blinded, et cetera.  The system is robust enough to allow for the easy addition of features as we move forward.

Anyway, this is just a preview of the first draft of how the brawler scoreboard system will work.  Nothing is finalized, and a lot of features are missing.  In fact, some core features may still be missing when we decide to roll out the first stage; we haven't discussed whether it'd be better to let you all play with this system live before everything is prim, or to wait until the entire system is done before we release it.  Specifically, the following features are currently wholly absent:
  • any way to sort the scoreboard
  • the entire wimpout reporting system
  • any way for immortals to arbitrate fight outcomes and change the scoreboard
  • monthly cycling of the scoreboard and retention of each month's top scorers
  • automatic monitoring of inactive brawlers
  • any diagnostics for admins to make sure the system behaves itself
However, the framework is complete and it's quite flexible and expandable.  All in all, I'm quite pleased with the progress and am excited to see how it gets used once Stage 1 is out.