All Projects → fmang → oshu

fmang / oshu

Licence: GPL-3.0 License
Fast osu! port for Linux (and more)

Programming Languages

C++
36643 projects - #6 most used programming language
Roff
2310 projects
CMake
9771 projects

Projects that are alternatives of or similar to oshu

rtlamr2mqtt
Docker container to send rtlamr readings to a mqtt broker
Stars: ✭ 86 (-18.87%)
Mutual labels:  sdl
plumeria
🤖 A Discord chat bot with rich data piping between commands
Stars: ✭ 35 (-66.98%)
Mutual labels:  osu
CSharpOsu
C# library for osu!api
Stars: ✭ 15 (-85.85%)
Mutual labels:  osu
faur
⚒️✨ My personal C games framework. 2D graphics, sound, inputs, states, ECS, and misc utils for data, files, math, memory, strings, time, and more. Builds for Linux, Windows, Web, and embedded devices.
Stars: ✭ 55 (-48.11%)
Mutual labels:  sdl
glottie
OpenGL/WebGL based Lottie animation player
Stars: ✭ 60 (-43.4%)
Mutual labels:  sdl
guweb
The frontend appearance for the osu! server protocol, gulag! 🧶
Stars: ✭ 20 (-81.13%)
Mutual labels:  osu
player-ffmpeg
Up to date tutorial of ffmpeg
Stars: ✭ 17 (-83.96%)
Mutual labels:  sdl
GLMaze
GLMaze is a Windows 95 Maze screensaver clone written in C using OpenGL.
Stars: ✭ 23 (-78.3%)
Mutual labels:  sdl
Titan-IDE
Titan IDE is a 2D game engine for the Sega Dreamcast, Nintendo Wii and PC.
Stars: ✭ 32 (-69.81%)
Mutual labels:  sdl
Kade-Engine
Kade Engine is a Competitive Rhythm Game engine rewrite for FNF with Quality of Life features included.
Stars: ✭ 400 (+277.36%)
Mutual labels:  rhythm-game
BonEngineSharp
A simple and fun SDL-based game engine in C#.
Stars: ✭ 16 (-84.91%)
Mutual labels:  sdl
zero-graphics
Application framework based on OpenGL ES 2.0. Runs on desktop machines, Android phones and the web
Stars: ✭ 72 (-32.08%)
Mutual labels:  sdl
bancho.js
Interface with Bancho over IRC, made easy and reliable.
Stars: ✭ 47 (-55.66%)
Mutual labels:  osu
iivx
[outdated] Beatmania IIDX and Sound Voltex hybrid controller
Stars: ✭ 45 (-57.55%)
Mutual labels:  rhythm-game
SDL.zig
A shallow wrapper around SDL that provides object API and error handling
Stars: ✭ 102 (-3.77%)
Mutual labels:  sdl
BMP-U
🍌BananaBeats - Yet-another BMS rhythm game!
Stars: ✭ 76 (-28.3%)
Mutual labels:  rhythm-game
CVoxelEngine
A C++ Voxel Engine, to succeed my Java Voxel Engine. Uses SDL, and may use OpenCL in the future.
Stars: ✭ 17 (-83.96%)
Mutual labels:  sdl
EnttPong
Built for EnTT, at the request of the developer as a demo.
Stars: ✭ 51 (-51.89%)
Mutual labels:  sdl
osu-playground
osu!Playground
Stars: ✭ 21 (-80.19%)
Mutual labels:  osu
ProjectFNF
ProjectFNF 2.0, based on Psych Engine
Stars: ✭ 22 (-79.25%)
Mutual labels:  rhythm-game

oshu!

Screenshot #1 Screenshot #2 Screenshot #3 Screenshot #4 Screenshot #5

Welcome to oshu!

This project was born out of frustration from not being able to play osu! on a little Linux box with no graphics card whatsoever. It's aimed at minimalistic people and probably will never contain a hundredth of the official client's features.

osu! is that PC clone of the osu! Tatakae! Ouendan DS rhythm game, occidentalized as Elite Beat Agents. osu! has got tons of cool beatmaps, and a more or less intuitive text file format described at https://osu.ppy.sh/help/wiki/osu!_File_Formats

The main problem with osu! is that it required Windows and a graphics card. Even with that, it sometimes get slow unless the computer is a beast… Hell, the mania and taiko mode could be played in a terminal!

oshu! is currently mostly targeted at Linux users, but it doesn't have to be that way. All it needs are volunteers to build and test the project on the various operating systems and desktop environments out there.

By the way, the name comes from osu! but with the s pronounced sh, because it's a mini-osu.

Getting started

First, you need to download beatmaps. The official beatmap source is https://osu.ppy.sh/beatmapsets, but it requires that you create an account from the official osu! game. If you don’t have an account, you may use a mirror like https://bloodcat.com/osu/.

The beatmaps are distributed as .osz files, which are disguised ZIP files. You need to extract using unzip or a similar tool. Rename them to .zip if your file archiver can't process it. Once extracted, you'll see one or more .osu files with various difficulty levels.

oshu! is meant to be started from the command-line, so go spawn your terminal and run oshu path/to/your/beatmap.osu.

A window will open and you'll see circles appear on the screen. You got to click the crosses when the orange circle reaches the white one. Hold the button pressed for long notes. Most players point with the mouse and press the Z/X keyboard keys instead of clicking.

For more detailed explainations, see: https://www.youtube.com/results?search_query=osu+tutorial

You can use the experimental beatmap collection browser by extracting your beatmaps to the ~/.oshu/beatmaps/ directory, the running oshu-library build-index. Point your browser to the path it tells you and start playing. Note that for your browser to open the beatmaps with oshu!, you need to make sure the desktop integration is properly set up. See the section below.

Install

Note: oshu! is still in an early stage of development. Don't expect it to be amazing. It doesn't even have a menu to select songs, you need to call it from the command line like $ oshu my_beatmap.osu.

First of all, make sure you have the required dependencies. These things are so common that I may assure you they're in your distribution's official repositories.

  • CMake 3.9,
  • a C++14 compiler,
  • pkg-config,
  • SDL2 ≥ 2.0.5,
  • SDL2_image 2.0.1,
  • ffmpeg 3.3.6,
  • cairo 1.14.8,
  • pango 1.40.14.

Note that the versions specified above are indicative. It is very likely your build will work with older or newer versions. If you need support for a specific version, feel free to ask.

To build oshu!, follow the standard CMake procedure:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/.local -DOSHU_DEFAULT_SKIN=osu ..
make && make install

If you do use the $HOME/.local prefix, make sure you add ~/.local/bin to your PATH, or invoke oshu! by specifying the full path like ~/.local/bin/oshu BEATMAP.osu.

The -DOSHU_DEFAULT_SKIN=osu causes CMake to download the default osu! skin and make it the default. If you're satisfied with the minimal skin, or if you can't connect to Internet, you may leave out this option, or write out explicitly -DOSHU_DEFAULT_SKIN=minimal.

If you want to install skins without making them the default, you can list them like -DOSHU_SKINS=minimal;osu.

The files required for desktop integration are deployed with make install, but you may need to refresh the cache databases yourself. Note that package managers are usually good at refreshing them automatically.

You may force the refreshing with:

update-desktop-database $PREFIX/share/applications
update-mime-database $PREFIX/share/mime

Goals

Let's clarify the goals before we stray too far away from them.

These things are the raison d'être of oshu:

  • All the Osu beatmaps should be playable.
  • The game should run on the lowest-end millenial computer one can find.

This means if you find an unsupported beatmap or a computer too slow to run oshu, feel free to submit a bug report.

The first versions are going to focus on the regular game mode, and hopefully oshu will support more game modes someday.

Since it's a hobby project, the feature set will be probably be quite limited for a while. For example:

  • No health bar.
  • No spinner. (I hate those.)
  • No network play.
  • No video background.
  • No fancy visual effects.

But it just means I probably won't have the time to work on these. These limitations are not a design choice. Contributions are welcome!

Documentation

The user manual's man page is installed in the standard man directory, but you may view it directly from share/man/.

For the technical documentation, please look at CONTRIBUTING.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].