Mush Match v1.3.1

Discussions about GameTypes
User avatar
Gustavo6046
Godlike
Posts: 1253
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Zeta Group leader
Location: Brazil

Mush Match v1.3.1

Post by Gustavo6046 » Wed Sep 22, 2021 9:47 pm

github (issues tracker)

• Download:

Grab the latest release from GitHub!

• About

Mush Match is a social deduction game type that I started back in 2018. Like many other social deduction games, it plays asymmetrically; the humans and the Mush have different goals and different tools to achieve them. Every person has only one life, and their team is identified on death.

In the beginning of the match, "warm-up" begins for a brief moment, where everyone is in the human team and cannot be killed; once this ends, a fraction of people are selected at random to be Mush, which is unbeknownst to everyone... except other fellow Mush. And that's when the match truly begins. :)

There is one common aspect to each team's goal – it is to ensure that the other team does not have any living member left. The meanings and implications of this are still asymmetric, though, both in lore and in the methods available to each team.

It is playable in any Deathmatch level. Eventually, I plan on having it enhance existing levels with Mush-Match-specific props (more than just decorations!), such as security cameras and water balloon dispensers, and alternatively support DM-MM-... levels built specifically for Mush Match with open areas and tight corridors and stuff.

Mush Match was also written with bot support in mind. Bots are even able to gauge suspicious behaviour and engage people with the Suspicion Beacon. I also made sure that they didn't act "cheatily" by being able to tell who was mush or not mush ahead of time. Mush bots are less likely to band up with humans than other human bots – are more likely to act in an anti-social manner – and also know how to be sneaky when either killing or infecting. Which is to say, good luck spotting them, before they spot you!

For more details, please see the readme under the file list in the GitHub page. It includes a FAQ and some more useful information :)

Objectives:

The humans' objective is to eliminate every Mush from the level.

In order to do this, their main task is social deduction.

There is a Beacon Launcher, which launches "beacons" that straps onto a person and marks to everyone in the match that this person has the suspicion beacon, as well as the name of the person who launched it. The Beacon denotes suspicion, not condemnation; generally used to mark someone who kills or damages someone else, or even acts in a generally suspicious manner (such as reclusion from other players). It is possible to have these suspicions lifted by killing someone who turns out to be a Mush.

The Mush's objective is to either eliminate or infect every human.

In order to do this, it is possible to kill other humans; but this will

Note that Mush can also take damage from water! :)
Lore lore lore...
Show
A Mush is actually a fungus, borne from a distant planet from another star,² which can be pathogenic and takes full control of its host's body, and particularly mind. It can

(a) communicate in a way only other Mush can detect (which explains how Mush know whether anyone else is a Mush or Human, unlike Humans who have to, well, deduce!);
(b) are able to produce spores, which can infect someone else and turn them into a Mush too (though in the original Mush game they require introspection into the bloodstream, or "spiking");
(c) may look and behave just like humans when not doing anything that is specifically only possible to Mush (such as taking damage from water or, in the case of Mush Match, holding the Sporifier, the mush weapon that can infect others).

They behave like a hivemind; this is why they are regarded as uncountable.
• Videos

Here's an assortment of videos³ about Mush Match. You are encouraged to make your own! Post a link to your Mush Match video in this thread and i'll put it here :D
Video video video
Show
From me:

[youtube][/youtube]


From you:

(none yet)
Footnotes

¹ Build number differs from version. Build numbers are in the year-week-suffix format, akin to, for instance, Minecraft snapshot versions. Like in ISO week date, a week starts on Monday. Version numbers respect the Semantic Versioning standard.
² The planet is named Tamina, and the star Tau Ceti. This is lore out of the original Mush game. For more info, see the Mushpedia.
³ Did you know you can embed YouTube videos using the [youtube] tag? :D
Last edited by Gustavo6046 on Wed Oct 20, 2021 5:22 pm, edited 11 times in total.

a9902957@nepwk.com
Average
Posts: 30
Joined: Thu Nov 03, 2011 5:12 am

Re: MushMatch – development and LTS thread

Post by a9902957@nepwk.com » Sun Sep 26, 2021 11:31 am

This is awesome!
You hereby win the mapping contest before it is finished! :wink: :tu:

Seriously new, fun, interesting gametypes are what the game needs most to stay interesting (IMO) and with the difficulties of
finding other human players to play such excotic fresh, cool stuff bot support is much much more than just welcome!

You nailed it all here :!: :gj:
I love social deduction games.

:rock:

Now I need to fully read up on this and start my second match of this.
The first one ended with an error (v436)
Critical: AActor::ProcessState
Critical: Object TMale1Bot DM-AMC-2040.TMale1Bot0, Old State State Botpack.Bot.Attacking, New State State Botpack.Bot.Attacking
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=0)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UXC_GameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop

Update: Had two more matches.
One I died as human.

It is cool, one can look out for kill messages and the weapon used might also be a clue.

Unfortunately had another crash like before on the third match(this time on 469b XC_Engine 25b).

Update2: I suspect the crashes may have to do with somehow sub-optimally pathed maps?
Some maps surely seem to be nearly free of them. Also may be more likely with a higher mush population.

Some fun variations:
- With the WAR mutator, link e.g. here: viewtopic.php?p=92580#p92580
- Or Kakutou Brawl Arena with the arena compat mutator you made. More important for humans to stick together, because mushes have it easier to infect humans but ganging up on them helps.
- I wish I could do it with DarkMagic mutator, will probably try anyway, but the level up (Wizard) notifications will give away a few mushes. Also one of the DMUT versions has that unlife and damage all cheese combo which kind of totally breaks any LMS akin gametype.
- With the BattleRoyaleUT mutator (however the zone should probably be deactivated / made non-killing when just playing with bots). The items weapons and less squishy players will surely mix the gameplay up, though. :D

Update3: For humans special maps could indeed be adding in spades to this.
e.g. via trigger/buttons and doors an Avalon/The Resistance kind of mission teams to vote on could be realized.
This would also need some kind of mutator script maybe to teleport a mush player into some kinda boss room(s) where the mission pathes lead (or some more switches in there which need to be activated for further progress so that sending teams into/down these mission pathes is indeed needed to win).
As with e.g. the Paranoia Pen&Paper RPG it would help to funnel teams through sections where only two people can proceed together for a while.
I would love to see this realized and have some games of those.
Also a good amount of weapons would need to be put on these mission pathes otherwise the meta of deducting from kill messages may get employed/abused/enforced by smartass humans. ;)

Small sketch/mockup to convey the concept, but I am sure it was easy enough to understand already. Slight problem is the player amount dependency, oh well. Also I am sure people will find more flaws with this, still should all be able to be worked out, eh?

Update4: Small suggestion show at the end who from the Mush was initially Human and therefore more so achieved a draw that round instead of a true victory (er if the Mush won i.e. otherwise that player achieved true loser status lol).

Update5: It appears that bots that are "Human" might keep being attracted to ammo for the marker when they are already full of it (and hence cannot pick it up).
Same does not go for Mush bots it appears. Update6: Hmm, seems more likely this is just an issue with the Dogtown map version I have. Hmm, also noticed I had a few MBots in my roster, maybe these also caused one of the two issues, took those out for now.
You do not have the required permissions to view the files attached to this post.

User avatar
Gustavo6046
Godlike
Posts: 1253
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Zeta Group leader
Location: Brazil

Re: MushMatch – development and LTS thread

Post by Gustavo6046 » Tue Sep 28, 2021 6:11 am

a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
Now I need to fully read up on this and start my second match of this.
The first one ended with an error (v436)

Code: Select all

Critical: AActor::ProcessState
Critical: Object TMale1Bot DM-AMC-2040.TMale1Bot0, Old State State Botpack.Bot.Attacking, New State State Botpack.Bot.Attacking
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=0)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UXC_GameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
Chances are it was a bot who got infected, or infected someone else, so the MushMatch class unset its Enemy field (as it wasn't fighting its infector/infectee anymore), but didn't tell it to reset to another state, so it was still on the Attacking state against a Enemy of None. Or, well, maybe anyway. I'm not sure. I'll add some code to avoid that from happening just in case :p
a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
Update: Had two more matches.
One I died as human.

It is cool, one can look out for kill messages and the weapon used might also be a clue.
Yeah, sadly I didn't figure out filtering killing spree messages yet. :P
a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
Update4: Small suggestion show at the end who from the Mush was initially Human and therefore more so achieved a draw that round instead of a true victory (er if the Mush won i.e. otherwise that player achieved true loser status lol).
Ooh! Great idea! You know, I've thought about how unsatisfying it was to win by being infected, but now you gave me the motivation to implement that. Just wait for 1.2.0!
a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
Update5: It appears that bots that are "Human" might keep being attracted to ammo for the marker when they are already full of it (and hence cannot pick it up).
Same does not go for Mush bots it appears. Update6: Hmm, seems more likely this is just an issue with the Dogtown map version I have. Hmm, also noticed I had a few MBots in my roster, maybe these also caused one of the two issues, took those out for now.
That just might be kinda sorta intended behaviour by Epic so bots always have somewhere to roam toward if they're idle and bored and don't have a Game Boy on them or whatever. Just might. :p

a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
Some fun variations:
- With the WAR mutator, link e.g. here: viewtopic.php?p=92580#p92580
- Or Kakutou Brawl Arena with the arena compat mutator you made. More important for humans to stick together, because mushes have it easier to infect humans but ganging up on them helps.
- I wish I could do it with DarkMagic mutator, will probably try anyway, but the level up (Wizard) notifications will give away a few mushes. Also one of the DMUT versions has that unlife and damage all cheese combo which kind of totally breaks any LMS akin gametype.
- With the BattleRoyaleUT mutator (however the zone should probably be deactivated / made non-killing when just playing with bots). The items weapons and less squishy players will surely mix the gameplay up, though. :D

Update3: For humans special maps could indeed be adding in spades to this.
e.g. via trigger/buttons and doors an Avalon/The Resistance kind of mission teams to vote on could be realized.
This would also need some kind of mutator script maybe to teleport a mush player into some kinda boss room(s) where the mission pathes lead (or some more switches in there which need to be activated for further progress so that sending teams into/down these mission pathes is indeed needed to win).
As with e.g. the Paranoia Pen&Paper RPG it would help to funnel teams through sections where only two people can proceed together for a while.
I would love to see this realized and have some games of those.
Also a good amount of weapons would need to be put on these mission pathes otherwise the meta of deducting from kill messages may get employed/abused/enforced by smartass humans. ;)

Small sketch/mockup to convey the concept, but I am sure it was easy enough to understand already. Slight problem is the player amount dependency, oh well. Also I am sure people will find more flaws with this, still should all be able to be worked out, eh?

[ mockup ]
Ah, I don't know about voting people out. I think this element of democracy is already present – someone with a marker does not necessarily mean they will be killed, and generally it is up to each corresponding human whether they want to actually engage a marked player.

Even in bot matches, at least from 1.1.2 upward, there is only a chance that a bot will try to kill another marked player.

Of course, this isn't exactly "democracy" - it doesn't show the number of people who actually think this player is suspicious, and I feel like it'd be a bit of a daunting task to implement such a thing, maybe even yet another sub-PlayerReplicationList (there is already one for bots who think a particular player is suspicious without/before the latter being marked).

As for the mutators, I'll try out with DarkMagic .... if I find it! Also, I wish FerBotz for UT v469b was out already, but that seems to be taking a while. I wait patiently :)

As for the levels, well, I was thinking more like adding cameras that increment an Evidence counter whenever a mush does mushy things, rather than instantly Spotting one (so a Human bot witnessing a Mush almost always instantly does the personal suspicion thing, but only increments the Evidence counter like 30% or something faster than a camera does), and also traps that can affect Humans' immune system level (the meter at the top when you're a Human and a Mush lands a spore projectile on you) and may even infect them if their immune gets low enough, as well as other devious ploys.

The cameras could be destructible but also fixable.

They could be procedurally generated in maps, as items, props, or both, and would also be highly configurable.

But that's for a fuuuuture version. Not even 0.2.0. :p

a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
This is awesome!
You hereby win the mapping contest before it is finished! :wink: :tu:
Aw, don't exaggerate it, it's not all that great!

Plus I've been working on-and-off on it for years, so even if that was serious, it's not really on time for the contest anyway :p

Hint for anyone who's wondering why MushMatch's still being developed: when something is in "active development", that doesn't mean it's "incomplete", that means it's still being improved and refined even further, and if bugs appear they will be fixed (as opposed to something that's not in active development, where there is a large chance bugs that are found will never be fixed). UT99, for instance, is not "incomplete" in the slightest, but it's still in active development, and that is a great thing! :D
a9902957@nepwk.com wrote:
Sun Sep 26, 2021 11:31 am
Seriously new, fun, interesting gametypes are what the game needs most to stay interesting (IMO) and with the difficulties of
finding other human players to play such excotic fresh, cool stuff bot support is much much more than just welcome!
Aw, thanks!

Also Assault is underrated! lol


Also, one last hint: Check [MushMatch.MushMatch] in your UnrealTournament.ini, lots of settings you may want to fiddle around with! :D

————

All in all, I love your reply and feedback! It really helps me figure what to do next for the mod, and it generally serves as a measuring stick for what I'm doing right and what could use some improvement. Thank you very much! <3

a9902957@nepwk.com
Average
Posts: 30
Joined: Thu Nov 03, 2011 5:12 am

Re: MushMatch – development and LTS thread

Post by a9902957@nepwk.com » Tue Sep 28, 2021 5:41 pm

Gustavo6046 wrote:
Tue Sep 28, 2021 6:11 am
Ooh! Great idea! You know, I've thought about how unsatisfying it was to win by being infected, but now you gave me the motivation to implement that. Just wait for 1.2.0!
That was a short wait. :)
Gustavo6046 wrote:
Tue Sep 28, 2021 6:11 am
That just might be kinda sorta intended behaviour by Epic so bots always have somewhere to roam toward if they're idle and bored and don't have a Game Boy on them or whatever. Just might. :p
Definitely not an issue from your creation anyway. Epic's Wander state usually let's the bots walk slowly and not on pathnode rails I think, it is pretty noticeable anyway, but that is not the case on that flight of stairs in Dogtown (same I noticed in the awesome Skirmish In Lost Atlantis map and I think this might be down to XC_Engine 25b).
Gustavo6046 wrote:
Tue Sep 28, 2021 6:11 am
Ah, I don't know about voting people out. I think this element of democracy is already present – someone with a marker does not necessarily mean they will be killed, and generally it is up to each corresponding human whether they want to actually engage a marked player.

Even in bot matches, at least from 1.1.2 upward, there is only a chance that a bot will try to kill another marked player.

Of course, this isn't exactly "democracy" - it doesn't show the number of people who actually think this player is suspicious, and I feel like it'd be a bit of a daunting task to implement such a thing, maybe even yet another sub-PlayerReplicationList (there is already one for bots who think a particular player is suspicious without/before the latter being marked).

As for the mutators, I'll try out with DarkMagic .... if I find it! Also, I wish FerBotz for UT v469b was out already, but that seems to be taking a while. I wait patiently :)

As for the levels, well, I was thinking more like adding cameras that increment an Evidence counter whenever a mush does mushy things, rather than instantly Spotting one (so a Human bot witnessing a Mush almost always instantly does the personal suspicion thing, but only increments the Evidence counter like 30% or something faster than a camera does), and also traps that can affect Humans' immune system level (the meter at the top when you're a Human and a Mush lands a spore projectile on you) and may even infect them if their immune gets low enough, as well as other devious ploys.

The cameras could be destructible but also fixable.

They could be procedurally generated in maps, as items, props, or both, and would also be highly configurable.

But that's for a fuuuuture version. Not even 0.2.0. :p
Nah, not voting out. As you said that can be handled by what you already put in MushMatch (someone deciding to attempt to kill the suspected player). :D
But sending a team on a mission. That is in my mockup one player has to stand on each of the small colored squares of one color to make the door/gate of the same color open (i.e. in the example four players have to stay behind and can thereby send the remaining ones on/down that mission path.
The blue/turquoise gate in my example opens when either of the small corresponding squares is depressed (so if three people went on that mission one of them will have to stay behind and not see what happens between the other two until one of those players keeps that gate open for him from the other side).

But sure, that is only suitable for a game populated/played by a lot of real humans.

Number of suspicion marks would be interesting to compare how that plays. But is one vouch as trusted in parallel and like an inverse suspicion mark more easy to implement maybe?
That would also be interesting and give the bots more to go by for a decision to attack or not other than a mostly? random roll.

I tried with DarkMagic 0.80 version (it says so in the Mod Menu anyway) but it gets rid of the MushMatch "weapons" (i.e. with the arena compatibility mutator already) or does not get rid of the UT ones and replacing those with spellbooks.
So unfortunately that version is not suitable.

Higor was fine with him sharing a link to an experimental version of FerBotz for 469 that he said has some issues. As an alternative there is the UScript version 18 FerBotz, too.


Yup, Assault is a favorite classic / vanilla gametype for sure. Fond nostalgic memories of that one.

Ooh, those sorta hidden settings in the UT.ini are a nice treat, thanks for the heads-up. :D

The bots hardly turn around and care little for who is in their back here. So it is much easier for mush to infect or attempt it without too high a risk of getting spotted with the weapon out, that would surely not be true for games with other humans.
So such a camera addition would change that a bit.

I must say from my mutator variation suggestions the one I do not play myself at all thus far is the one with BRUT weapons (because always/everyone being less squishy is not really good here, one needs to be able to kill sort of quickly otherwise you risk giving away your mush status and the main appeal of the gametype is then lost.

I have some map recommendations, though:

DM-Augslum][
DM-Falkenstein (though as the next two [three maybe], somewhat too big for the endgame)
DM-AssiniboineCavern (Really cool map plus it has cameras players can check to see other places to boot!)
viewtopic.php?p=131294#p131294 (RealCity AeonFlux is also cool)
https://www.mapraider.com/maps/unreal-t ... t-Atlantis
DM-EnterTheMatrix ( http://www.islandalien.com/unreal/bestofunreal/ for Unreal and the Agent Smith bot with tons of health is sort of a problem)
DM-Dogtown
DM-MountainAirbase (actually this is AS-MountainAirbase)
DM-Norwich

Update: Had another one of those crashes with the new version on DM-MountainAirbase
Maybe these are down to XC_Engine and somehow badly pathed maps, though.

User avatar
Gustavo6046
Godlike
Posts: 1253
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Zeta Group leader
Location: Brazil

Re: Mush Match v1.2.3

Post by Gustavo6046 » Fri Oct 01, 2021 9:31 pm

Yeah, something to do with bots in the Attacking state. I have no idea why it happens. I thought it could be parts of the code that set Enemy to something else without checking for the state, but I patched the one culprit that came to mind to check for the state, and it doesn't seem to be that either.

Code: Select all

// Unset the enemy of a pawn
function UnsetEnemy(Pawn Other) {
    // Don't meddle with players. They're snobby and weird.
    if (PlayerPawn(Other) != None) {
        return;
    }

    Other.Enemy = None;

    // Avoid bots in the Attacking state with Enemy set to None.
    if (Bot(Other) != None && Bot(Other).IsInState('Attacking')) {
        Bot(Other).WhatToDoNext('', '');
    }
}

// ...

function MakeMush(Pawn Other, Pawn Instigator) {
    SafeGiveSporifier(Other);
    
    Other.PlayerReplicationInfo.Team = 1; // 0 = human, 1 = mush
    
    Instigator.PlayerReplicationInfo.Score += 1;
        
    mushmatch(Level.Game).CheckEnd();
    
    if ( Other.Enemy == Instigator ) UnsetEnemy(Other);
    if ( Other == Instigator.Enemy ) UnsetEnemy(Instigator);
    ...
}
There also may or may not be quirks related to Tournament mode, but upon further inspection those seem unlkely.

For 1.2.4 I'll try to make mush bots put their Sporifiers down – aka switch to another weapon – after a while roaming around with them if they don't use them. And a bunch of other fixes!

a9902957@nepwk.com
Average
Posts: 30
Joined: Thu Nov 03, 2011 5:12 am

Re: Mush Match v1.2.3

Post by a9902957@nepwk.com » Sat Oct 02, 2021 12:28 pm

All the latest additions make this even better.
Has to be my favorite UT99 gametype.
It is what I hoped Betrayal would play more like. :D

Thematically fitting map, that makes mush with sporifiers really dangerous, too:
https://unrealarchive.org/maps/unreal-t ... 1f7ba.html
:D

Now we kinda have "Amogus" UT99 and two copycats of Epic's own UT4 killer copycat. ;)
That popular stuff _is_ kinda fun, you gotta give it that. But these UT99 takes on 'em if you so will are way better still. ^_^

Update: According to info in this thread my assumption of the reason for the crashes being down to bot pathing are likely true:
https://www.unrealsp.org/viewtopic.php? ... 3e0#p54586
and the following post to the one linked.

So here is a list where one might run into these from experience:
2001_V2
Augslum][
RealThing (unconfirmed so this one IIRC; pretty sure though)
Falkenstein (also just IIRC)
AMC-2040
MountainAirbase

User avatar
Gustavo6046
Godlike
Posts: 1253
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Zeta Group leader
Location: Brazil

Re: Mush Match v1.3.0

Post by Gustavo6046 » Fri Oct 08, 2021 3:01 am

v1.3.0 adds a lot of changes, albeit mostly minor ones, over v1.2.4. See the associated changelog file for more info!

a9902957@nepwk.com
Average
Posts: 30
Joined: Thu Nov 03, 2011 5:12 am

Re: Mush Match v1.3.0

Post by a9902957@nepwk.com » Sun Oct 10, 2021 2:27 pm

It now also works with DarkMagic 0.91 (i.e. the MushMatch specific "weapons" are retained).
https://www.moddb.com/mods/dark-magic/d ... -magic-091
And its wizard announcements have been dealt with at the same time sprees have been dealt with it seems.

However there seems to be a weird happenstance that makes the game end prematurely (it seems) and the map instantly change/reload.

User avatar
Gustavo6046
Godlike
Posts: 1253
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Zeta Group leader
Location: Brazil

Re: Mush Match v1.3.0

Post by Gustavo6046 » Tue Oct 12, 2021 5:59 pm

a9902957@nepwk.com wrote:
Sun Oct 10, 2021 2:27 pm
However there seems to be a weird happenstance that makes the game end prematurely (it seems) and the map instantly change/reload.
Did you try setting FragLimit to 0? You must always remember to set it whenever you switch to another gametype, even if it's just another build of MushMatch.

User avatar
Gustavo6046
Godlike
Posts: 1253
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Zeta Group leader
Location: Brazil

Re: Mush Match v1.3.1

Post by Gustavo6046 » Wed Oct 20, 2021 6:47 pm

With 1.3.1, it should now be mapvote friendly! Also, a bunch of other fixes and a few tweaks. For instance, hopefully bots should be again more aggressive about suspicion, a bit more like the earlier versions would.

====

And now, a few notes on the problem of balancing Mush Match. It's less trivial than it seems.

The two kinds of balance

Balancing for both botmatches and multiplayer matches will be difficult. Ostensibly, it can be a trivial game of matching the # of average Mush and Human wins for any given period of time in a server (whether with more bots or more players or whatever). But there are actually two classes of moving parts worth considering:

(A) the physical part, such as weapon firerates, initial Mush %-of-match, immune level properties, etc., which apply to both players and bots and could on its own mildly nudge the result of a match, especially on multiplayer matches;

(B) the bot AI part, which is most relevant in singleplayer (but very often in multiplayer too as you're hardly gonna get 16 people to play Mush Match and it's not very fun with just four players or less). This has to be balanced separately but its effect will vary.

The goal of balancing

I'm sure balance will be quite different between single and multiplayer matches. Ideally, the physical balance would be solely responsible for giving equal opportunity for humans and mushes at the start of the match, assuming equal rational ability (aka all bots, or all humans who are experienced in Mush Match), whilst still allowing "comebacks" in tight situations; and the AI would match, as closely as possible, that same level of balancing that exists even in human-only matches, rather than suddenly make the game easier for humans (or mush) by adding bots (or replacing all players but one with them).

Of course, in reality, different people will have different styles of playing; some might use suspicion more and others not at all, some might be more hands-on and others might leave all the dirty work to others, some are more about infecting sneakily and others about murdering quickly. Some will tank on enemies (even humans, dodging showers of spore projectiles) and others will be more sly and cautious. How I'm gonna do that in bot AI? I have no idea.

An amusing thought, is to use a neural network and machine learning to do that stuff. But that's all that is – an amusing thought. Perhaps an excuse to develop my idea of a neural network in UnrealScript. But oh well.

Nonetheless, ideally the variety in play style would be taken into account by balancing.

The hurdle

Truly balancing for multiplayer is complicated. You'd need several real-life humans in a single server to get it right! And they all have to know how to play the gametype!

Plus, there would have to be some way of getting statistics out of it to make it possible to see what could be affecting the match numbers too heavily and what could use some nudging this way or that way.

Also, note that word I used multiple times in the section above – ideally.

Those are just goals. And those goals are quite non-trivial to accomplish.

They depend on observations which may vary a lot depending on the precise circumstances of each single second of each match. And I mean a lot. A mush bot turning a corner into a high and hard to hit position could mean easily peppering a crowd of humans below with spore projectiles. Something relatively random that could have very, very profound ramifications in how the match plays out.

Heck, if anything, it might even be subjective. Depending on who you ask, the mush "had the upper hand all along, they were camping a lot in those random corners and you'd never be able to find them to win even if they never came out in the first place!", or maybe it was the humans who "were too impeded by having too few attempts at latching a suspicion beacon, plus dodging all those spore projectile". Or the map just wasn't fit for a proper Mush Match. Of course, all of those could be potential avenues for balancing, but they will affect different sets of scenarios, which can have very different implications for the big picture of Mush Match and all its possible scenarios in all maps and all circumstances.

What this means is that, as helpful as player feedback is, it would be a finicky thing to rely on for balancing specifically. Each player will have their own perspective of what happened and who is to blame for what and how they managed to "get away with it!!", so it's much better to rely on more objective, statistical means.

Even then, even those are very circumstantial, for reasons I already sort of elaborated. More specifically, those variables will affect the outcome of a match, alongside balance properties themselves (like weapon firerate, etc):
  • the map;
  • the mutators;
  • the actual current population of each team (not just the initial ratio);
  • the play style and decisions of each player;
  • where each player is on the map – even a slight nudge could be a dodge to change the match's outcome;
  • each player's ping;
  • how much one knows about the map and the players in it;
  • seriously, just someone turning around, at the right place, at the right time, could identify mush and change everything;
  • et cetera, et cetera, et cetera
Controlling for all of them would be nigh impossible; a pointless task at best, a Sisyphean one at worst. Is it even worth it? Those variables could mean the same tweak to balancing, in different circumstances, could have very different effects! Does this mean the noble enterprise of manually balancing it all, is unfeasible, is no more?

Meh. It just means that, for proper balancing to be made, you will have to have a lot of testing to ensure a tweak will really work the way you expect it to, at least most of the time. Or just keep a lot of scenarios and "user stories" in mind with each change you do.


The final thoughts

Once the gametype starts to be more polished, it's gonna be time to start worrying more about making the game, well, more fair.

But even determining whether it is fair to begin with, is very hard to state without painstakingly-taken statistics from a broad variety of different scenarios.

Maybe I should just train an AI that learns the best way to play the game, and use that best case scenario to guide all efforts in balancing, at the detriment of regular players and bots.

Maybe I should sneakily add anonymous data collection to "improve our services" and totally use people's credit card numbers to help balance the gametype :ironic:

Or maybe I'm just overthinking it.

I like the AI idea, though.

====

(Is it ok if I use this thread to blog up, and otherwise, what do I use?)