All Projects → johnpayne-dev → MinecraftC

johnpayne-dev / MinecraftC

Licence: MIT license
A Raytraced Minecraft Classic 0.0.30a port to C

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to MinecraftC

freeserf.net
Settlers 1 clone written in C#
Stars: ✭ 97 (-61.2%)
Mutual labels:  port, classic
sdf
Sphere tracing signed distance functions.
Stars: ✭ 61 (-75.6%)
Mutual labels:  raymarching-distance-fields, raymarching
Sundog
A port of the Atari ST game SunDog: Frozen Legacy (1984) by FTL software
Stars: ✭ 42 (-83.2%)
Mutual labels:  sdl2, port
Raymarch-Engine
Minimal ray-traced game engine with gravity affected rays
Stars: ✭ 17 (-93.2%)
Mutual labels:  raytracing, raymarching-distance-fields
C Ray
C-Ray is a small, simple path tracer written in C
Stars: ✭ 323 (+29.2%)
Mutual labels:  sdl2, raytracing
Embree viewer
Embree viewer is a simple implementation of a progressive renderer, based on Intel's Embree raytracing kernels. Its UI is written in SDL2, and it supports Alembic, OBJ file formats, with a JSON file to describe a scene.
Stars: ✭ 19 (-92.4%)
Mutual labels:  sdl2, raytracing
ray-tracing
This is a go implementation of the "Ray Tracing in One Weekend" book
Stars: ✭ 37 (-85.2%)
Mutual labels:  sdl2, raytracing
photon mapping
minimal but extensible header only implementation of photon mapping in C++
Stars: ✭ 65 (-74%)
Mutual labels:  raytracing
tes3mp-android
tes3mp ported to Android devices (using CrabNet). Forked from xyzz/openmw-android.
Stars: ✭ 47 (-81.2%)
Mutual labels:  port
RASM
3D Ray-Tracing WebGPU Game Engine Written in Rust WebAssembly.
Stars: ✭ 20 (-92%)
Mutual labels:  raytracing
swGL
A multithreaded software implementation of OpenGL 1.3 in C++.
Stars: ✭ 50 (-80%)
Mutual labels:  implementation
ForgeWurst
Wurst Client for Minecraft Forge.
Stars: ✭ 37 (-85.2%)
Mutual labels:  mod
clusterio
internet communication for factorio mods
Stars: ✭ 218 (-12.8%)
Mutual labels:  mod
prunnable-layers-pytorch
Prunable nn layers for pytorch.
Stars: ✭ 47 (-81.2%)
Mutual labels:  implementation
VRCMods
⚙️ New features & quality of life improvements for VRChat
Stars: ✭ 21 (-91.6%)
Mutual labels:  mod
raymarching
Code for my raymarching in GLSL workshop series
Stars: ✭ 17 (-93.2%)
Mutual labels:  raymarching
xash3d-switch
Check out https://github.com/fgsfdsfgs/xash3d-fwgs for an updated version
Stars: ✭ 60 (-76%)
Mutual labels:  port
raytracing in rust
Implementation of raytracing in rust from Peter Shirley's RTIW and RTTNW, Chapter-by-Chapter
Stars: ✭ 29 (-88.4%)
Mutual labels:  raytracing
gnuboy
latest version of original laguna source, with a handful fixes for modern compilers and systems
Stars: ✭ 70 (-72%)
Mutual labels:  sdl2
f3d
Fast and minimalist 3D viewer.
Stars: ✭ 791 (+216.4%)
Mutual labels:  raytracing

MinecraftC - A Raytraced Minecraft Classic Port to C

Features:

  • True to the original version (0.0.30a)
  • Implemented fully in C using SDL2 and OpenGL 1.1
  • Original music and sounds
  • A modded and vanilla version
  • Works on Windows, Linux, and MacOS
  • CMake build system

Raytracing:

  • Uses an 8-bit distance field as an acceleration structure
  • In some cases, performance is better than the original
    • 60+ fps at 1080p on the integrated graphics cards I've tested
  • To enable raytracing, download the modded binary and enable it in the mods screen under options

Screenshots

Screen Shot 2022-07-31 at 12 57 49 PM

Screen Shot 2022-07-31 at 12 57 54 PM

Screen Shot 2022-07-31 at 12 43 33 PM

Screen Shot 2022-07-31 at 12 43 39 PM

Downloads

Building

Note: if you would like to build the vanilla version, remove -DMINECRAFTC_MODS=1 from the cmake command

Requirements:

  • git
  • cmake
  • A compiler of your choice

Windows instructions for Visual Studio:

  1. Run the following commands:
git clone --recursive https://github.com/johnpayne-dev/MinecraftC.git
cd MinecraftC
mkdir Build
cd Build
cmake -DMINECRAFTC_MODS=1 -G"Visual Studio 17" .. # replace "Visual Studio 17" with your version
  1. You should now have MinecraftC.sln in your directory that you can open with Visual Studio and build

MacOS instructions for Xcode:

  1. Run the following commands:
git clone --recursive https://github.com/johnpayne-dev/MinecraftC.git
cd MinecraftC
mkdir Build && cd Build
cmake -DMINECRAFTC_MODS -GXcode ..
  1. You should now have MinecraftC.xcodeproj in your directory that you open with Xcode and build

  2. (optional) If you would like it in a .app format, you can run this command to convert your executable:

python3 Scripts/MacOS-App.py <path-to-executable> [developer-id]

Providing the developer id will sign the .app, which you can find by running security find-identity

Linux instructions (untested):

  1. If you don't have SDL2 already, run these commands:
sudo apt-get update
sudo apt-get install libsdl2-dev
  1. Run the following commands:
git clone --recursive https://github.com/johnpayne-dev/MinecraftC.git
cd MinecraftC
mkdir Build && cd Build
cmake -DMINECRAFTC_MODS=1 ..
make

Modifying Resources

If you're creating a mod and want to change or add any .png or .ogg resouces, then run this script to update the resource headers:

python3 Scripts/EmbedResources.py

It will recursively go through all .png and .ogg files in Resources/, and convert them to .h

Known Issues

  • There is no survival mode, it was removed for simplicity and compatibility with raytracing
  • A few sounds have the incorrect pitch, I'm waiting for cute_sound.h to implement pitch shifting
  • Load file and save file are not implemented
  • If raytracing doesn't turn on, then something is going wrong with OpenCL, report an issue and I can help troubleshoot
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].