opsu-dance/README.md
Jeffrey Han 70c70fd812 Implemented an internal beatmap downloader (using Bloodcat).
The downloads menu can be accessed through the button on the right side of the main menu.  The downloader supports searching and concurrent downloads (NOTE: this is limited by the download server!).  Double-click any search result to begin downloading it to the SongPacks directory; cancel the download by hitting the red 'x' in the upper-right corner.  A confirmation will appear if trying to quit opsu! while downloads are running.

New classes:
- Download: represents an individual download from a remote address to a local path, and provides status and progress information; downloads files using Java NIO.
- DownloadNode: holds a Download object as well as additional beatmap fields, and handles drawing.
- DownloadList: manages the current list of downloads.
- DownloadsMenu: game state controller.
- DownloadServer: interface for a beatmap download server.
- BloodcatServer: implements DownloadServer using Bloodcat.
- ReadableByteChannelWrapper: wrapper for ReadableByteChannel that tracks progress.

Added images:
- "downloads" image by @kouyang.
- "search-background" image from "Minimalist Miku" skin (listed in credits).
- "delete" icon by Visual Pharm (https://www.iconfinder.com/icons/27842/) under CC BY-ND 3.0.

Other changes:
- Added up/down/left/right Expand directions to MenuButton class.
- Removed width/height parameters from OsuParser (leftovers).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-01 02:10:17 -05:00

58 lines
2.6 KiB
Markdown

# opsu!
opsu! is an **unofficial** open-source client for [osu!](https://osu.ppy.sh/),
a rhythm game based on popular commercial games such as *Ouendan* and
*Elite Beat Agents*.
opsu! is written in Java using [Slick2D](http://slick.ninjacave.com/) and
[LWJGL](http://lwjgl.org/), wrappers around the OpenGL and OpenAL libraries.
## Getting Started
Precompiled binaries for opsu! can be found on the
[releases](https://github.com/itdelatrisu/opsu/releases) page, with the latest
builds at the top.
### Java Setup
The Java Runtime Environment (JRE) must be installed in order to run opsu!.
The download page is located [here](https://www.java.com/en/download/).
### Beatmaps
opsu! requires beatmaps to run, which are available for download on the
[osu! website](https://osu.ppy.sh/p/beatmaplist) and mirror sites such as
[osu!Mirror](https://osu.yas-online.net/) or [Bloodcat](http://bloodcat.com/osu/).
Beatmaps can also be downloaded directly through opsu! in the downloads menu.
If osu! is already installed, this application will attempt to load songs
directly from the osu! program folder. Otherwise, place songs in the generated
`Songs` folder or set the `BeatmapDirectory` value in the generated
configuration file to the path of the root song directory.
Note that beatmaps are typically delivered as OSZ files. These can be extracted
with any ZIP tool, and opsu! will automatically extract them into the songs
folder if placed in the `SongPacks` directory.
### First Run
The `Music Offset` value will likely need to be adjusted when playing for the
first time, or whenever hit objects are out of sync with the music. This and
other game options can be accessed by clicking the wrench icon in the song menu.
## Building
opsu! is distributed as a Maven project.
* To run the project, execute the Maven goal `compile exec:exec`.
* To create a single executable JAR file, execute the Maven goal
`install -Djar`. This will link the LWJGL native libraries using a
[modified version](https://github.com/itdelatrisu/JarSplicePlus) of
[JarSplice](http://ninjacave.com/jarsplice), which is included in the
`tools` directory in both its original and modified forms. The resulting
file will be located in `target/opsu-${version}-runnable.jar`.
## Credits
This software was created by Jeffrey Han
([@itdelatrisu](https://github.com/itdelatrisu/)). All game concepts and
designs are based on work by osu! developer Dean Herbert. Other credits can
be found [here](CREDITS.md).
## License
**This software is licensed under GNU GPL version 3.**
You can find the full text of the license [here](LICENSE).