Skip to content

wallabra/MushMatch

Repository files navigation

Mush Match

Mush Match is a social deduction game type written for classic Unreal Tournament, started back in 2018 by Gustavo Ramos Rehermann.

1. About

It was inspired by an online early 2010s turn-based, online multiplayer, Flash-based, social deduction game, called Mush. However, it takes many creative liberties; is not afraid to break from canon to provide the best and most Unreal experience.

Like many other social deduction games, it plays asymmetrically; the humans and the Mush have different goals and different tools to achieve them. In the end, the last team standing wins.

2. Download

See the Releases page!

If you want to build from source, you must be on a Linux system. See the section Building from Source below.

3. Rules

Every person has only one life, and their team is only identified to others (in the Human team at least) when they die.

In the beginning of the match, "warm-up" begins, where everyone is in the human team and cannot be damaged (only killed, by single-time damages capable of killing one it at once, but then they respawn); 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!

4. FAQ

Mush Match appears several times on my gameplay selection menu! What do I do?

If you have older versions of MushMatch, they will appear unless you remove their .int files.

Save that, if you have any instance of GusPackII.u or GusPackII.int in your System folder, try removing any lines referencing MushMatch or ArenaMush from GusPackII.int. That is an outdated version, and GusPackII has never seen a full release (and may never see) anyway.

If all versions of Mush Match are modern enough, this usually isn’t a large problem. This is because Mush Match displays the version and, for pre-releases, also the build number in parentheses, in the gametype selection drop-down, allowing you to easily discern between them.

I found this bug offline, or that glitch online, or this crazy crash, or some lag-spike weedy-de-doo! What do?

Report it! Preferably, in the issues tracker.

Why the name? Why 'Mush'? Why is 'Mush' an uncountable noun if it is a team that can have multiple people?

Because of Mush Match’s inspiration; see About near the top. Also, the noun is uncountable because lore lore lore. See the Lore section below!

5. Building from Source

Currently you can only build MushMatch from a Linux system.

If you are on Windows, you may try to use Cygwin, WSL, or elaborate a virtual machine or Dockerfile, but there is no warranty that it will work, thus caveat emptor.

5.1. Prerequisites

If you want to build from source, make sure you have the build dependencies beforehand. You most likely already have curl, zip, tar, gzip, bash and bz2/bzip2, as well as GNU make.

Optionally, you may install a Go package named mustache. This is not necessary, as the Mkaefile will detect whether it is available on your $PATH, and if it is not found, a pre-compiled binary will be downloaded on the first build.

To manually set it up, you can grab it by installing Go, and then running:

$ go get github.com/cbroglie/mustache/..

5.2. Build

Simply run make. The provided Makefile should automatically take care of downloads, setting up a bare UT tree, and building MushMatch in it, all for you!

The folder to contain the bare UT tree within, alongside the output subdirectory with builds of the mod, can be specified with the BUILD_DIR environment variable. It defaults to ./bu ild.

You can then use DESTDIR=/path/to/my/UnrealTournament make install to install the mod.

6. Lore

The 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

  1. 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!);

  2. 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");

  3. 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 weapon mush use to infect others).

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

Of course it is all much more complicated than this, but this is a succinct summary. If you want more info, see the Mushpedia!

7. Licensing

The license only applies to the code inside the Classes/ subdirectory. For those, see the [LICENSE.md] file.

Files in the project’s top folder that pertain to the ModBuild build system are actually licensed under the ISC. For those, see the [LICENSE.buildscript.md] file.

All non-code assets, i.e. files within the Models/, Sounds/ and Textures/ subdirectories, are provided under the CC-BY-SA 4.0.

The build system does, indeed, download a bare copy of Unreal Tournament (1999), which is meant to have only the minimum assets required to run as a server. Due to its free availability online compared to other instances where said files occur (such as retail), it is presumed that no copyright infringement or other law infraction is inflicted by this.

Additionally, this project does not host this downloaded file; it is provided by UT-Files.com. Therefore, the authors, maintainers, and users of this project consider themselves waived of any liability or responsibility with regards to that.

In case any actual legal infraction is proved to be, consider forwarding legal proceedings and inquiries to UT-Files.com, the hosts of the file in question. In any case, it would be polite to notify the author of the project, at the e-mail address rehermann6046@gmail.com, so as to be made aware of this nuance and rectify the project to no longer be affected by it.

In case legal contention is had specifically and explicitly with this project itself, please send any legal inquiries or takedown requests toward the e-mail address rehermann6046@gmail.com. Response and/or action may be expected in up to seven days, after the which a DMCA takedown notice is more than polite, although there is little against otherwise other than objection.

In case a DMCA takedown notice is received, it would be preferable for the repository to be made private so that project files can be downloaded and backed up, at least temporarily.

The main author of the project, Gustavo Ramos Rehermann as of writing (October 2021), is not situated in the United States of America, nor under American jurisdiction. Please refer to the Brazilian justice system for appropriate research and proceedings.