A .NET framework for building cross-platform 2D and 3D games in C#, re-implementing Microsoft's discontinued XNA Framework.
ppy/osu
Open-source client for the osu! rhythm game, codenamed lazer, written in C# and targeting desktop and mobile platforms.
- Stars
- 19,299
- Forks
- 2,858
- Open issues
- 1,883
- Last commit
- yesterday
What is it?
osu! is a free rhythm game where players click, tap and drag in time with music, using beatmaps that define hit objects for each song. This repository holds the next-generation client, released under the codename "lazer", which is intended to eventually replace the closed-source osu!stable client. It is built in C# on the .NET SDK and covers the game's four modes: osu!, taiko, catch and mania.
The client runs on Windows, macOS, Linux, Android and iOS, with platform-specific solution files for desktop, Android and iOS development. The codebase also exposes a ruleset system, letting developers build new gameplay variations that reuse the beatmap library, game engine and user interface. Templates for custom rulesets are provided in the repository.
Contributors can build the project from an IDE such as Visual Studio, Rider or VS Code, or from the command line with dotnet run. Code is MIT licensed, while game resources fall under a separate license.
Key features
- 01Supports the osu!, taiko, catch and mania game modes.
- 02Runs on Windows, macOS, Linux, Android and iOS.
- 03Provides a ruleset system for building custom gameplay variations.
- 04Includes platform-specific solution files and a command-line build workflow.
- 05Offers templates for developing new rulesets.
Use cases
- Playing osu! rhythm maps on a desktop or mobile device.
- Building a new ruleset that reuses the osu! beatmap engine and UI.
- Studying or contributing to a large cross-platform C# game client.
Quick start
- 1
Install the .NET SDK from the official download page
- 2
Clone the repository
git clone https://github.com/ppy/osu - 3
Enter the project directory
cd osu - 4
Build and run the desktop game from the command line
dotnet run --project osu.Desktop
Things to know
- Development builds are under constant change, so the game may be unstable compared to releases.
- Mobile builds require extra Android or iOS tooling installed through dotnet workload restore.
Topics
FAQ
- What is osu?
- Open-source client for the osu! rhythm game, codenamed lazer, written in C# and targeting desktop and mobile platforms. osu! is a free rhythm game where players click, tap and drag in time with music, using beatmaps that define hit objects for each song. This repository holds the next-generation client, released under the codename "lazer", which is intended to eventually replace the closed-source osu!stable client. It is built in C# on the .NET SDK and covers the game's four modes: osu!, taiko, catch and mania.
- Is osu free to use? What license does it have?
- osu is open source under the MIT license. Check the license terms before using it in commercial products.
- Is osu still maintained?
- Actively maintained. The last commit to osu was on Oct 20, 2026.
- What can I use osu for?
- Playing osu! rhythm maps on a desktop or mobile device. Building a new ruleset that reuses the osu! beatmap engine and UI. Studying or contributing to a large cross-platform C# game client.
- How do I install osu?
- Install the .NET SDK from the official download page Clone the repository: git clone https://github.com/ppy/osu Enter the project directory: cd osu Build and run the desktop game from the command line: dotnet run --project osu.Desktop
- Where can I get osu?
- The source code and installation instructions are on GitHub: https://github.com/ppy/osu
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source, cross-platform, user-mode driver for graphics tablets, running on Windows, Linux and macOS with a configurable GUI.
Godot is a free, MIT-licensed, cross-platform game engine for building 2D and 3D games from one unified editor.
Cross-platform shell, scripting language and automation framework for Windows, Linux and macOS, built for structured data and objects.
A cross-platform Java game development framework built on OpenGL ES for desktop, Android, web, and iOS games.
A retro game engine for Python that lets you make pixel-art games with a fixed palette and low-resolution screen.