Akaricchi / muz

μz: a rhythm game you don't want to play
Do What The F*ck You Want To Public License
10 stars 2 forks source link

μz

μz is a mania-style rhythm game, written in Python 2.7 using Pygame. It can load beatmaps from osu! (osu!mania mode), SIFTrain and LLpractice, as well as its own beatmap format. Support for other formats may be added in the future.

μz also features a simple (but useful) tool to assist with beatmap creation, BeatmapBuilder. Currently, it can export beatmaps in μz and SIFTrain formats.

Installation

You must have Python 2.7 and Pygame 1.9.1 or higher in order to run μz. Lower versions of Pygame may work, but are not tested. Experimental Python 3 support is available in the python3 branch, however, there is no stable release of pygame with good Python 3 support, so you'll have to [get the latest source from mercurial and compile it yourself](http://www.pygame.org/wiki/CompileUbuntu#Python 3.x).

Note: there are currently no official builds of Pygame for 64bit Windows systems. If you use Win64, you'll have to either install the 32bit version of Python, or an unofficial 64bit version of Pygame from here.

Installing μz is optional, you can simply run it using the run.py file found in this repository.

If you want to install μz system-wide, run the following command inside the repository folder:

./setup.py install

or:

./setup.py develop

The installation requires the setuptools Python package. You may need root/administrator privileges to execute those commands. If you're on Windows, omit the ./ prefix. The later command will link your muz installation with the git repository clone folder, so you can update it later by simply running git pull.

Running

Currently, μz has no graphical user interface, except for the actual game part. It must be invoked from the command line, and its behaviour is controlled with command line arguments and a configuration file.

In this guide, muz will refer to the command used to run the game. If you installed μz as described in the previous section, you'll instead have to run

python2 -m muz

, where python2 is the Python 2.7 interpreter executable. If you did not, then use

./run.py

If you run μz without arguments, it will print an unhelpful help message with a list of options and exit.

To play a specific beatmap, run:

muz "name of the beatmap (case-sensitive)"

To list all installed beatmaps, run:

muz -l

On decent operating systems, you can filter the output with grep to find a specific beatmap:

muz -l | grep -i "binetsu"

To play a beatmap with note positions randomized:

muz --random "beatmap"

Replace all holds with two simple notes:

muz --no-holds "beatmap"

Play in "insane" mode, where extra notes are added to the beatmap:

muz --insane "beatmap"

Let the computer play by itself perfectly and enjoy the show:

muz --autoplay "beatmap"

You can, of course, combine any of those options:

muz --autoplay --random --insane "beatmap"

Beatmaps

μz comes with no beatmaps by default, you'll have to obtain them yourself. Once obtained, they have to be placed in the μz user directory: ~/.muz/, or C:\Users\yourname\.muz\ on Windows. If this directory doesn't exist, create it.

A few beatmaps known to work with μz can be found here.

Source files for beatmaps made for μz can be found here.

osu!

osu! beatmaps can be downloaded here.

You must have an osu! account in order to download any beatmaps, at least from the official site. The registration is free, however, it's required that you log into osu! at least once to activate your account.

Most osu!mania beatmaps are supported. Non-mania maps may work, but are not guaranteed to be playable.

To install osu! beatmaps, simply place the osz files into the user directory, as mentioned above. Note that the osz filename usually doesn't match with the name of the beatmap(s) it contains. Use muz -l to find the actual beatmap name(s).

SIFTrain

SIFTrain beatmaps can be found in this repository. They are beatmaps from Love Live! School Idol Festival, and come with no music - you'll have to obtain it yourself.

To install these beatmaps, create a beatmaps directory inside the user directory. Inside that directory, also create the datafiles and soundfiles directories. Put the beatmaps (.rs files) in beatmaps/datafiles, and the music in beatmaps/soundfiles. The naming convention is just like in SIFTrain: the music files should have the same name as the beatmaps they are used by, minus the difficulty suffix. Either ogg or mp3 should work for the music format, but ogg is prefered.

LLpractice

μz can automatically download and install beatmaps from m.tianyi9.com. Visit the site and click on the song you want to get. Look at the URL, there should be a live_id parameter. Copy its value, and run:

python2 -m muz.beatmap.formats.tianyi9 ID

, where ID is the value of live_id from the URL. The download may take a while, be patient. After it's done, the beatmap should appear in muz -l.

Configuration

μz can be customized with a configuration file. The config location can be specified with the --config argument. By default, it's the config.json file inside the μz user directory. This file doesn't exist by default - you have to create it if you want to change settings. μz will write a config.default.json file containing the default settings inside the user directory every time it's ran. You can copy this file as config.js and then edit the later. If your custom config is missing any settings, the default values for them will be used. If it contains any unrecognized settings or values of invalid type, you'll get a warning when the game is ran.

Known issues