WIP Minecraft clone project
 
 
 
 
Go to file
BodgeMaster 61cec73c49 lib/zlibutil, tools/zlibutil: moving things around
This includes the following changes:
- Move the data type wrangling into the lib to make it easier to use
- Put the functions into their own `zlib` namespace
- Use ErrorOr instead of exceptions
- Error codes for compression/decompression
2024-06-10 20:41:29 -03: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
doc Documentation: update build system documentation and prerequisites in preparation for next commit 2022-07-30 21:08:03 +02:00
include Build system: add a central directory to collect all the include files 2022-07-20 12:15:31 +02:00
resources resources/region_files: add a zlib compressed chunk 2024-06-08 15:09:14 +02:00
scripts build system: update build commands for libs 2024-06-08 23:59:55 +02:00
src lib/zlibutil, tools/zlibutil: moving things around 2024-06-10 20:41:29 -03:00
.gitignore tools: Add ZLIBUTIL 2024-03-12 22:37:09 -03:00
COPYING add warranty disclaimer 2022-06-27 14:22:16 +02:00
LICENSE.md Add license and copyright notices 2022-06-27 11:46:13 +02:00
README.md fossvg (client): Create window 2023-01-09 20:43:49 +01:00
code_style.md Code style guidelines and resources/README: Minor documentation changes 2024-06-08 15:07:26 +02:00
copyright_notice_template Copyright Notice: Add authors section 2022-08-23 23:24:29 +02:00
setupenv.bashrc setupenv: Fix spelling 2022-10-31 17:56:11 +01:00

README.md

FOSS-VG (FOSS Voxel Generator)

This is a WIP Minecraft clone.

For now, we target feature parity with 1.18.2.

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:

Build dependencies:

  • bash
  • a C++ 20 compiler
  • GLFW with headers

Setup dependencies:

  • wget or curl
  • gzip
  • sha256sum (or NetBSD's sha256, hashalot's sha256 will not work)
  • tar
  • a C compiler (for sockpp)
  • CMake (for sockpp)

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 (local customizations to the environment can be placed in a fiile .localenv.bashrc in the project's root directory if necessary)
    • setup_project
  • if not using bash or not using the provided environment:
    • cd to the project's base directory
    • scripts/setup_project.sh

This will download (and build if applicable) the following dependenceis:

Building

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

For more details, have a look at the build system documentation.

See the file COPYING for copyright information.