ClassiCube is a custom Minecraft Classic compatible client written in C from scratch.
Important
ClassiCube is not affiliated with (or supported by) Mojang AB, Minecraft, or Microsoft in any way.
ClassiCube is not trying to replicate modern Minecraft.
ClassiCube aims to replicate the 2009 Minecraft Classic client while offering optional enhancements to improve gameplay. ClassiCube can run on many systems, including desktop, web, mobile, and even some consoles.
Features (click to expand)You can download ClassiCube here and the very latest builds here.
ClassiCube strives to replicate the original Minecraft Classic experience by strictly adhering to clean room reverse engineering approach.
If you're interested in documenting or verifying the behaviour of the original Minecraft Classic, please get in contact on the ClassiCube Discord
Initially, you will need to run ClassiCube.exe to download the required assets from minecraft.net and classicube.net.
Just click 'OK' to the dialog menu that appears when you start the launcher.
Note: When running from within VirtualBox, disable Mouse Integration, otherwise the in-game camera won't work properly.
Singleplayer mode Run ClassiCube.exe, then click Singleplayer at the main menu.
Multiplayer mode Run ClassiCube.exe. You can connect to LAN/locally hosted servers, and classicube.net servers if you have a ClassiCube account.
The most common reason for being stuck on OpenGL 1.1 is non-working GPU drivers - so if possible, you should try either installing or updating the drivers for your GPU.
Otherwise:
-DCC_BUILD_GL11
to the compilation command line so that the compiled game supports OpenGL 1.1.ClassiCube runs on:
libopenal
And also runs on:
libopenal
libexecinfo
and openal-soft
packages (can download from here)libexecinfo
and openal-soft
packages (can download from here)libexecinfo
and openal
packagesopenal
packagesopenal
package (if you have a GitHub account, can download from here)openal
packagesSDL2
Note: The instructions below automatically compile ClassiCube with the recommended defaults for the platform.
If you (not recommended) want to override the defaults (e.g. to compile OpenGL build on Windows), see here for details.
If you get a The Windows SDK version 5.1 was not found
compilation error, see here for how to fix
cl.exe src\*.c third_party\bearssl\*.c /link user32.lib gdi32.lib winmm.lib dbghelp.lib shell32.lib comdlg32.lib /out:ClassiCube.exe
Assuming that you used the installer from https://sourceforge.net/projects/mingw-w64/ :
make mingw
- produces a simple non-optimised executable, easier to debugmake mingw RELEASE=1
- produces an optimised executable, harder to debugAssuming that you used the installer from https://osdn.net/projects/mingw/ :
make mingw
- produces a simple non-optimised executable, easier to debugmake mingw RELEASE=1
- produces an optimised executable, harder to debugSetting up TCC:
tcc-0.9.27-win64-bin.zip
from https://bellard.org/tcc/winapi-full-for-0.9.27.zip
from https://bellard.org/tcc/winapi
folder and _mingw_dxhelper.h
from winapi-full-for-0.9.27.zip
into TCC's include
folderCompiling with TCC:
tcc.exe -o ClassiCube.exe src/*.c third_party/bearssl/*.c -lwinmm -lgdi32 -luser32 -lcomdlg32 -lshell32
tcc.exe
instead of just tcc.exe
)libx11-dev
, libxi-dev
and libgl1-mesa-dev
packagesmake linux
- produces a simple non-optimised executable, easier to debugmake linux RELEASE=1
- produces an optimised executable, harder to debuggcc-mingw-w64
package)make mingw CC=i686-w64-mingw32-gcc
gcc-mingw-w64
package)make mingw CC=x86_64-w64-mingw32-gcc
Although the regular linux compiliation flags will work fine, to take full advantage of the hardware:
make rpi
make darwin
- produces a simple non-optimised executable, easier to debugmake darwin RELEASE=1
- produces an optimised executable, harder to debugmisc/macOS/CCMAC.xcodeproj
project in XcodeNOTE: If you are distributing a modified version, please change the package ID from com.classicube.android.client
to something else - otherwise Android users won't be able to have both ClassiCube and your modified version installed at the same time on their Android device
Open android
folder in Android Studio (TODO explain more detailed)
Run gradlew
in android folder (TODO explain more detailed)
iOS version will have issues as it's incomplete and only tested in iOS Simulator
NOTE: If you are distributing a modified version, please change the bundle ID from com.classicube.ios.client
to something else - otherwise iOS users won't be able to have both ClassiCube and your modified version installed at the same time on their iOS device
misc/ios/CCIOS.xcodeproj
project in Xcodexcodebuild -sdk iphoneos -configuration Debug
(TODO explain more detailed)
make web
- produces simple non-optimised output, easier to debugmake web RELEASE=1
- produces optimised output, harder to debugThe generated javascript file has some issues. See here for how to fix
For details on how to integrate the webclient into a website, see here
All console ports need assistance from someone experienced with homebrew development - if you're interested, please get in contact on the ClassiCube Discord.
Nintendo consoles (click to expand)Run make switch
. You'll need libnx and mesa
NOTE: It is highly recommended that you install the precompiled devkitpro packages from here - you need the switch-dev
group and the switch-mesa switch-glm
packages)
Run make wiiu
. You'll need wut
NOTE: It is highly recommended that you install the precompiled devkitpro packages from here - you need the wiiu-dev
group)
Run make 3ds
. You'll need libctru
NOTE: It is highly recommended that you install the precompiled devkitpro packages from here - you need the 3ds-dev
group)
Run make wii
. You'll need libogc
NOTE: It is highly recommended that you install the precompiled devkitpro packages from here - you need the wii-dev
group)
Run make gamecube
. You'll need libogc
NOTE: It is highly recommended that you install the precompiled devkitpro packages from here - you need the gamecube-dev
group)
Run make ds
. You'll need BlocksDS
Run make n64
. You'll need the opengl branch of libdragon
Run make vita
. You'll need vitasdk
Run make psp
. You'll need pspsdk
NOTE: It is recommended that you install the precompiled pspsdk version from here
Run make ps3
. You'll need PSL1GHT
Run make ps2
. You'll need ps2sdk
Run make ps1
. You'll need PSn00bSDK
Run make 360
. You'll need libxenon
Run make xbox
. You'll need nxdk
Run make dreamcast
. You'll need KallistiOS
Run make saturn
. You'll need libyaul
gmake
, libxi
, libexecinfo
, openssl
and openal-soft
packages if neededgmake freebsd
- produces a simple non-optimised executable, easier to debuggmake freebsd RELEASE=1
- produces an optimised executable, harder to debuggmake
, libexecinfo
, openssl
and openal
packages if neededgmake openbsd
- produces a simple non-optimised executable, easier to debuggmake openbsd RELEASE=1
- produces an optimised executable, harder to debuggmake
, libexecinfo
, openssl
and openal-soft
packages if neededgmake netbsd
- produces a simple non-optimised executable, easier to debuggmake netbsd RELEASE=1
- produces an optimised executable, harder to debuggmake
, libxi
, libexecinfo
, openssl
and openal-soft
packages if neededgmake dragonfly
- produces a simple non-optimised executable, easier to debuggmake dragonfly RELEASE=1
- produces an optimised executable, harder to debugmake sunos
- produces a simple non-optimised executable, easier to debugmake sunos RELEASE=1
- produces an optimised executable, harder to debuggcc
, haiku_devel
, openal_devel
packages if neededmake haiku
- produces a simple non-optimised executable, easier to debugmake haiku RELEASE=1
- produces an optimised executable, harder to debugmake beos
- produces a simple non-optimised executable, easier to debugmake beos RELEASE=1
- produces an optimised executable, harder to debugmake irix
- produces a simple non-optimised executable, easier to debugmake irix RELEASE=1
- produces an optimised executable, harder to debugmake serenityos
- produces a simple non-optimised executable, easier to debugmake serenityos RELEASE=1
- produces an optimised executable, harder to debugmake macclassic_68k
(For a M68k build)make macclassic_ppc
(For a PPC build)The PowerPC build will usually perform much better
You'll have to write the necessary code. You should read portability.md
in doc folder.
Functions and variables in .h files are mostly documented.
Further information (e.g. style) for ClassiCube's source code can be found in the doc and misc folders.
Fixes for compilation errors when using musl or old glibc for C standard library
Press escape (after joining a world) or pause to switch to the pause menu.
Pause menu -> Options -> Controls lists all of the key combinations used by the client.
Note that toggling 'vsync' to on will minimise CPU usage, while off will maximimise chunk loading speed.
Press F to cycle view distance. Lower view distances can improve performance.
If the server has disabled hacks, key combinations such as fly and speed will not do anything.
To see the list of built in commands, type /client
.
To see help for a given built in command, type /client help <command name>
.
ClassiCube uses sounds from Freesound.org
Full credits are listed in doc/sound-credits.md
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4