WIP Minecraft clone project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BodgeMaster 6112da2e6f lib/game: Start working on game internals 2 days ago
bin add placeholder files because Git doesn't handle empty folders 7 months ago
dependencies prepare for handling dependencies 7 months ago
doc Documentation: update build system documentation and prerequisites in preparation for next commit 6 months ago
include Build system: add a central directory to collect all the include files 6 months ago
resources resources: Add network capture of a server list ping 1 month ago
scripts fossvg (client): Commit to using Vulkan 2 days ago
src lib/game: Start working on game internals 2 days ago
.gitignore gitignore: Ignore endianness check on Cygwin 3 months ago
COPYING add warranty disclaimer 7 months ago
LICENSE.md Add license and copyright notices 7 months ago
README.md fossvg (client): Create window 3 weeks ago
code_style.md Code style: I just decided to accept that float and double exist and that we can just assume they are 32 and 64 bits repectively. 6 months ago
copyright_notice_template Copyright Notice: Add authors section 5 months ago
setupenv.bashrc setupenv: Fix spelling 3 months ago


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


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 don’t 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.


  • 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:


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.