ClassiCube: open-source Minecraft Classic client for desktop, web and consoles
Custom Minecraft Classic / ClassiCube client written in C from scratch (formerly ClassicalSharp in C#)
At a glance
- What is it?
- ClassiCube is a C reimplementation of the 2009 Minecraft Classic client, built from scratch using clean room reverse engineering. It runs on Windows 95 and later, Android, iOS, web browsers, and many consoles, but will never support survival mode or modern Minecraft servers.
- Who is it for?
- ClassiCube is the right choice for anyone who wants to play or host 2009-era Minecraft Classic on desktop, mobile or in a browser. Skip it if you need survival mechanics, modern Minecraft accounts, or modern server compatibility, since none of those will ever be added.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A Minecraft Classic client targeting 2009, not the modern game
ClassiCube is a Minecraft Classic compatible client written from scratch in C, targeting the 2009 version of Minecraft Classic. It carries no affiliation with Mojang AB, Minecraft, or Microsoft, and its README makes the scope explicit: the client will never support survival mode, Minecraft accounts, or modern Minecraft servers. Anyone expecting a free modern Minecraft replacement will find the wrong project here.
The original codebase started as ClassicalSharp, written in C#, and was later rewritten in C. Minecraft Classic in 2009 was a free, browser-accessible version in which players joined servers and placed or removed blocks. ClassiCube replicates that experience and layers optional enhancements on top, including custom blocks, custom models, and environment color changes, but only when a server the player connects to enables them.
What separates this from a simple clone is the clean room reverse engineering method. ClassiCube's README states that the project strictly adheres to this approach to replicate the original client's behaviour, working only from observations rather than copying source code. Contributors who want to help document or verify original Minecraft Classic behaviour are directed to the project's Discord server.
Downloading from classicube.net and the first-run asset fetch
ClassiCube is available as prebuilt binaries at https://www.classicube.net/download/, with nightly builds at https://www.classicube.net/nightlies/. No package manager installation step is documented in the README.
First launch requires an internet connection, since running ClassiCube.exe triggers a dialog asking permission to download required assets from minecraft.net and classicube.net before the launcher opens. Clicking OK starts the download, after which the game is playable without an additional network step.
Singleplayer mode requires no account. Multiplayer allows connecting to locally hosted servers and to servers on classicube.net, which requires a ClassiCube account registered at classicube.net. That account is entirely separate from any Minecraft purchase or Mojang account, and modern Minecraft accounts and modern servers are never compatible, as the README states.
VirtualBox users face one specific caveat: Mouse Integration must be disabled when running ClassiCube inside VirtualBox, or the in-game camera will not function correctly. This is the only virtual machine issue the README documents.
Platform coverage from Windows 95 to Nintendo 64, with completion levels stated per target
Supported desktop and mobile targets cover a long history of operating systems. Windows 95 and later, macOS 10.5 or later (compilable for 10.3 and 10.4 as well), Android 2.3 or later, iOS 8.0 or later, and most web browsers including IE11 are all in the supported list. Linux builds need libopenal.
BSD variants and other Unix-like systems each require specific packages. FreeBSD and NetBSD need libexecinfo and openal-soft, while OpenBSD needs libexecinfo and openal. Solaris, IRIX, and Haiku each need an openal package, SerenityOS needs SDL2, and BeOS is listed as untested on actual hardware.
Console ports cover a wide range, and the README names a completion level for each one. Switch, Wii, GameCube, 3DS, and Dreamcast are described as unfinished but usable. DS/DSi, Nintendo 64, PS Vita, PSP, PS3, and Xbox have rendering issues. Saturn, PS2, and PS1 have major rendering and stability issues. Xbox 360 is described as completely unfinished and broken on real hardware. GBA and 32x have terrible performance and are listed as practically unusable.
OpenGL and Direct3D 9 as graphics backends, with an OpenGL 1.1 fallback path
ClassiCube works with graphics cards that support OpenGL or Direct3D 9, covering a wide range of hardware including older integrated GPUs.
When the game opens on OpenGL 1.1 instead of a newer version, the README identifies non-working or outdated GPU drivers as the most common cause, and installing or updating those drivers is the recommended first step. Windows users who cannot update their drivers can still run the OpenGL build, and a MESA software renderer available at http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/ offers slightly better performance than the default software path.
On non-Windows platforms where only OpenGL 1.1 is available, the game must be compiled from source. The README requires adding -DCC_BUILD_GL11 to the compilation command line so that the resulting binary supports OpenGL 1.1. Standard prebuilt binaries for non-Windows platforms do not include this support, so a user on a Linux machine with an older GPU has no option other than compiling manually.
This constraint also means that the console ports, many of which run on hardware with restricted graphics capabilities, are separately compiled with whatever flags each platform's makefile sets.
Makefile targets per platform, with SDL2, SDL3 and release shortcut targets
The root Makefile routes each build to a platform-specific makefile under misc/makefiles/. Invoking make without arguments builds for the current host platform. Named platform targets include linux, windows, darwin, freebsd, openbsd, netbsd, web, haiku, and several others.
Four additional shortcut targets build the current platform with a specific flag passed to the platform makefile:
sdl2:
$(MAKE) $(PLAT) BUILD_SDL2=1
sdl3:
$(MAKE) $(PLAT) BUILD_SDL3=1
terminal:
$(MAKE) $(PLAT) BUILD_TERMINAL=1
release:
$(MAKE) $(PLAT) RELEASE=1The sdl2 and sdl3 targets select an SDL2 or SDL3 windowing layer instead of the platform default, while the release target enables the release optimizations flag.
Parallel build jobs are set automatically from the system. On Linux the count comes from nproc, on macOS from sysctl, and on Windows from NUMBER_OF_PROCESSORS. When none of those resolve, the count defaults to 1.
For cases where the recommended defaults are not suitable, the README points to doc/overriding-defaults.md, for example to build the OpenGL version on Windows rather than the default Direct3D 9 path.
Optional enhancements require connecting to a server that supports them
ClassiCube adds optional improvements beyond the 2009 base experience, but these are not settings a player enables locally. Custom blocks, custom models, and custom environment colors are available when a server enables them. On a plain vanilla server or in singleplayer mode without server configuration, none of these enhancements appear.
The client also partially supports some Minecraft Classic versions earlier than 0.30, which predate the 2009 build that ClassiCube primarily targets.
For multiplayer, classicube.net hosts servers independent of any Mojang or Microsoft infrastructure. A ClassiCube account, registered at classicube.net, is the credential for those servers and is unrelated to any existing Minecraft purchase. The server list on classicube.net shows what each server offers, and any custom content is determined by the server operator rather than by ClassiCube's default settings.
The Up Next-style autoplay or friend-list features common in modern clients are absent here, because the 2009 Classic client had no such features. What classicube.net servers provide for discovery and social play is a separate question from what the client itself supports.
Custom licence in license.txt, history as ClassicalSharp, and release 1.3.8
ClassiCube uses a custom licence that GitHub classifies as Other, meaning none of the standard SPDX identifiers apply. The full terms are in license.txt at the repository root. Anyone redistributing the client or incorporating its source code needs to read that file directly, since MIT, GPL, and Apache terms are not applicable.
The project description names its history: it was formerly ClassicalSharp, written in C#, and was rewritten in C to produce the current codebase.
Release 1.3.8 was published on 2026-02-17, with 1.3.7 on 2024-09-21 and 1.3.6 on 2023-08-28 before it, putting the cadence at roughly one to two tagged versions per year. Last push to the repository was on 2026-10-06, and the repository is not archived.
The repository root includes credits.txt, CONTRIBUTING.md, and a doc/ directory with additional documentation. Third-party code lives under third_party/. The top-level listing does not include a changelog.txt, so version differences are not summarized in a single tracked file at the root.
Editorial conclusion
ClassiCube is the right choice for anyone who wants to play or host 2009-era Minecraft Classic on desktop, mobile or in a browser. Skip it if you need survival mechanics, modern Minecraft accounts, or modern server compatibility, since none of those will ever be added. Console users should check the README's completion status for their target hardware before downloading: GameCube and Switch are described as unfinished but usable, while GBA and 32x are listed as practically unusable. For desktop use, verify that GPU drivers are current before the first launch, since outdated drivers are the documented cause of the OpenGL 1.1 fallback.
Frequently asked questions
What is ClassiCube?
ClassiCube is a custom Minecraft Classic compatible client written in C from scratch, targeting the 2009 version of Minecraft Classic. It is not affiliated with Mojang, Minecraft, or Microsoft, and will never support survival mode or modern Minecraft servers.
How do I download ClassiCube?
Prebuilt binaries are available at https://www.classicube.net/download/ and nightly builds at https://www.classicube.net/nightlies/. On first launch, ClassiCube downloads required assets from minecraft.net and classicube.net before the game starts.
Does ClassiCube support survival mode?
No. The README states explicitly that ClassiCube will never support survival mode, Minecraft accounts, or modern Minecraft servers. It replicates only the 2009 Minecraft Classic client.
What platforms does ClassiCube run on?
ClassiCube runs on Windows 95 and later, macOS 10.5 or later, Linux, Android 2.3 or later, iOS 8.0 or later, and most web browsers. Console ports exist for Switch, Wii, GameCube, 3DS, and others, each listed in the README with its own completion status.
Does ClassiCube require a Minecraft account?
No. Singleplayer requires no account. Connecting to classicube.net servers requires a ClassiCube account registered at classicube.net, which is separate from any Minecraft or Mojang account. Minecraft accounts are not supported.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/classicube-classicube)