WIP Minecraft clone project
 
 
 
 
Go to file
BodgeMaster 3483b4182e make a copy of clean for the dependencies directory 2022-06-27 09:03:10 +02:00
bin add placeholder files because Git doesn't handle empty folders 2022-06-24 06:42:19 +02:00
dependencies prepare for handling dependencies 2022-06-27 06:40:43 +02:00
scripts make a copy of clean for the dependencies directory 2022-06-27 09:03:10 +02:00
src start implementation of NBT parser 2022-06-27 04:50:32 +02:00
test add manually decoded servers.dat 2022-06-25 13:09:11 +02:00
.gitignore prepare for handling dependencies 2022-06-27 06:40:43 +02:00
LICENSE.md add preliminary license while we have not decided on one yet 2022-06-24 06:59:20 +02:00
README.md make the build alias accept environment variables, add information about them to the README 2022-06-27 09:01:52 +02:00
setupenv.bashrc make the build alias accept environment variables, add information about them to the README 2022-06-27 09:01:52 +02:00

README.md

Minecraft

This is a WIP reimplementation of Minecraft.

For now, we target feature parity with 1.18.2 or 1.19.1.

Immediate goals:

  • Networking library
    • build a dummy server that Minecraft clients can detect
    • get Minecraft to connect to the dummy server
  • Dummy server
    • send an empty void
    • send a surface to stand on
    • handle chat
  • NBT library
    • parse NBT
    • decode and encode data

Project Setup Instructions

Prerequisites:

This project requires bash and a C++20 compiler.

The project setup requires wget or curl, gzip, and tar.

For people using other shells than bash: You need to at least have bash installed to use the scripts, but using it as your shell while working on this project also allows you to use the provided aliases.

If you dont want to use bash as your shell, not even temporarily for this project, you can use the scripts by running them from the project's base directory and run any generated executables with LD_LIBRARY_PATH set to point to bin/lib.

Setup

  • git clone this repository
  • if using bash:
    • source the file setupenv.bashrc from the project's base directory to load the provided shell environment
    • setup_project
  • if not using bash or not using the provided environment:
    • cd to the project's base directory
    • scripts/setup_project.sh

Building

To build the project, just use the build alias or invoke the build.sh script from the project's base directory.

build and build.sh accept the environment variables CXX and CXXFLAGS. CXXFLAGS must at least specify the C++ version.