The urge to make yet another Murder Mansion progress report is upon me, but there's a handful of items I want to cover, so let's get started!
BYOND Member perks:
Murder Mansion will do its part to promote Memberships by offering Members the ability to set game mode options if they're the player who begins the round... Obviously, this benefit therefore extends to everyone playing in that session, much like in Last Robot Standing...
If it is a non-Member running the round, each mode will simply operate under its default rules...
As an example of the options available, the Classic mode option setting allows you to toggle murder announcements (the original game told everyone in play when and where someone was killed... due to wanting the game to be more about mystery and sleuthing, and less about straight action, I removed that announcement from default play... this option then allows it to be turned back on, which will make for faster rounds with slightly more frenetic gameplay) This is currently the only option for Classic mode, but I plan to devise and add a handful more, some of which will push the mode further towards action-oriented, and others that are just silly distractions/alterations...
Deathmatch mode offers another example of option settings (and currently, it's the most sophisticated), which brings me to:
DeathMatch mode:
There's a very bare-bones DeathMatch mode in the MM Halloween preview edition on the hub page, and the new version will greatly expand upon that...
The default setting for DeathMatch will be a straight "First to 10 points wins" (note that "points" is not just your kill count, it's actually your kill count minus your deaths!)
But in the hands of a BYOND Member, the mode gets much more interesting, by offering the following options:
1) Points
> a) First to: (1, 3, 5, or 10)
> b) Lives left: (1, 3, 5, or 10)
2) Timed
> a) Most kills wins (1min, 3min, 5min, or 10min round)
> b) Least kills eliminated (" " " ")
> c) Hot Potato (" " " ")
> d) Musical Chairs (" " " ")
The first two (points-based) are pretty straight forward... You have the generic "first to:" style, where the winner is the first to get the selected number of kills, and then you have the "lives left:" variety, where a player is eliminated after they are killed that number of times (last man standing wins)
But wait, what comes next? Timed matches?!
Yep! MM rounds now have a timer (which doesn't currently affect the Classic mode, but could in the future, as in the addition of a "survive until dawn" kind of variant) And in DeathMatch, that timer can be used for 4 different styles of play...
The first is the expected "whoever has the highest score when the time's up is the winner"... The second picks people off when it goes off (it then resets itself for another go, of course) based on who has the fewest kills...
The third and fourth options are a bit more involved...
"Hot Potato" (aka "Tag") mode works much like the kids' game it's named after... Murderer status is given to a pick()ed player at the start if the round (like Classic mode), and then it is passed to his victim, who then has to pass it on to someone else, and so on until the timer goes off, and the person left holding that hot potato is eliminated... Repeat until the last man is left...
"Musical Chairs" is sort of the opposite... In this mode, no one is initially handed murderer status... It can only be gained by claiming a victim (and it is taken from that victim if he/she had it when you kill them), and then when the timer goes off, anyone who doesn't hold claim to Murderer status is eliminated... Of course, this means that more than one player can be eliminated each time, even resulting in winner-less rounds... Of course, though, when you're down to two people, there can never be a tie for winner, as the last person to make a kill will always be the only one to have Murderer status...
And all 4 timed modes have the option of selecting 1, 3, 5, or 10 minute time limits...
DeathMatch AI:
I've been doing a bit of testing of the DeathMatch variants, and I'm pleased to announce that my little guy (set on autopilot) just won a "First to: 3" match... And boy, was it brutal! There were some downright nasty slugfests (crowbar fests?) that left a mess everywhere... One clash saw my guy getting hit with an axe, miraculously surviving, then bare-handedly beating the attacker to death (luckily, the first punch knocked the axe-wielder out, and my guy was able to pound him to death before he could take another chop, which would have most certainly been fatal) My dude actually eventually won the round in the end with a rock (after a total of 6 or 7 kills, to make up for some deaths)
I then ran a "Most kills wins" timed round on the hospital map (I realized that I do too much testing in the Mansion, and that I need to run the other maps through their paces to make sure I haven't forgotten any crucial details), and one of the bots was completely dominating... The girl ("Rita Doe" :) ) had a run of 7 unanswered kills (most of them with a fire extinguisher bludgeon)! I actually was laughing out loud and cringing just watching it... Once, I had spawned almost directly in front of her right after she had already killed me, and I got whacked again... She had at least one kill on at least 4 other bots in the round (I had it set to have 6 bots... oh yeah, did I mention that? instead of being stuck to either 3 or none, you can pick from 0-9... the "at least 3 players per round" rule still applies, though)
Performance Enhancement:
These testing sessions today mark the first ones since I undertook a semi-major overhaul of the game's more ancient code to remove all loops, and replace them with calls from Deadron's EventLoop system... The game has used EventLoop for ages, but many subsystems still used while() loops and sleep()s and such to operate... For example, the lightning for the storm was generated through a while loop with random sleep()s between flashes... And any lights that flicker, or any items with looped SFX (like ticking/chiming clocks) all ran on while() loops...
So, I ripped them all out, and set up all of those things to run off of the single EventLoop...errr, loop...
It seems to have made a noticeable difference, but I need to run the game through its paces a lot more to be sure...
Some minor tweaks:
Weapons now do a slightly random damage amount based on their defined attack damages... Before, they simply dealt exactly what they were set to deal, but now it varies from 50% of that number up to 150% of that number... The delays on attacks are also now operating similarly (again, whereas before, each weapon had a set delay, and you always had to wait that exact length of time)
I figure this does a decent job of fudging a system of mis-hits, excellent strikes, glancing blows, stuck weapons, overextended swings, etc...
Well, that's all for now!