2022-06-27 11:59:02 +02:00
|
|
|
|
# FOSS-VG (FOSS Voxel Generator)
|
2022-06-24 06:30:07 +02:00
|
|
|
|
|
2022-06-27 09:17:13 +02:00
|
|
|
|
This is a WIP Minecraft clone.
|
2022-06-24 06:52:07 +02:00
|
|
|
|
|
2022-06-27 09:17:13 +02:00
|
|
|
|
For now, we target feature parity with 1.18.2.
|
2022-06-24 06:52:07 +02:00
|
|
|
|
|
|
|
|
|
Immediate goals:
|
2022-06-24 06:54:24 +02:00
|
|
|
|
|
|
|
|
|
- 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
|
2022-10-30 02:53:56 +02:00
|
|
|
|
- [x] parse NBT
|
|
|
|
|
- [x] decode and encode data
|
2022-06-27 07:37:20 +02:00
|
|
|
|
|
|
|
|
|
|
2023-01-16 08:00:35 +01:00
|
|
|
|
## Working with the project
|
|
|
|
|
|
|
|
|
|
WINDOWS USERS READ THIS: [Windows-specific notes](doc/windows.md)
|
2022-06-27 07:37:20 +02:00
|
|
|
|
|
|
|
|
|
### Prerequisites:
|
|
|
|
|
|
2022-07-30 21:08:03 +02:00
|
|
|
|
Build dependencies:
|
2022-06-27 07:51:39 +02:00
|
|
|
|
|
2022-07-30 21:08:03 +02:00
|
|
|
|
- bash
|
|
|
|
|
- a C++ 20 compiler
|
2023-01-09 20:41:42 +01:00
|
|
|
|
- GLFW with headers
|
2022-06-27 07:37:20 +02:00
|
|
|
|
|
2022-07-30 21:08:03 +02:00
|
|
|
|
Setup dependencies:
|
2022-07-12 01:51:23 +02:00
|
|
|
|
|
2022-07-30 21:08:03 +02:00
|
|
|
|
- wget or curl
|
|
|
|
|
- gzip
|
|
|
|
|
- sha256sum (or NetBSD's sha256, hashalot's sha256 will not work)
|
|
|
|
|
- tar
|
|
|
|
|
- a C compiler (for sockpp)
|
|
|
|
|
- CMake (for sockpp)
|
2022-07-12 01:51:23 +02:00
|
|
|
|
|
2022-06-27 07:37:20 +02:00
|
|
|
|
**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
|
2022-06-27 07:51:39 +02:00
|
|
|
|
directory and run any generated executables with `LD_LIBRARY_PATH` set to
|
|
|
|
|
point to `bin/lib`.
|
2022-06-27 07:37:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Setup
|
|
|
|
|
|
|
|
|
|
- `git clone` this repository
|
|
|
|
|
- if using bash:
|
|
|
|
|
- `source` the file `setupenv.bashrc` from the project's base directory
|
2022-07-19 01:08:37 +02:00
|
|
|
|
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)
|
2022-06-27 07:37:20 +02:00
|
|
|
|
- `setup_project`
|
|
|
|
|
- if not using bash or not using the provided environment:
|
|
|
|
|
- `cd` to the project's base directory
|
|
|
|
|
- `scripts/setup_project.sh`
|
|
|
|
|
|
2022-07-12 01:51:23 +02:00
|
|
|
|
This will download (and build if applicable) the following dependenceis:
|
2022-06-27 09:07:25 +02:00
|
|
|
|
- [tiny-utf8](https://github.com/DuffsDevice/tiny-utf8)
|
2022-07-12 01:51:23 +02:00
|
|
|
|
- [sockpp](https://github.com/fpagliughi/sockpp)
|
2022-06-27 07:37:20 +02:00
|
|
|
|
|
|
|
|
|
### Building
|
|
|
|
|
|
2022-07-06 13:33:10 +02:00
|
|
|
|
To build the project, just use the `build` alias or invoke `scripts/build.sh`
|
|
|
|
|
from the project's base directory.
|
2022-06-27 11:57:47 +02:00
|
|
|
|
|
2022-07-06 13:33:10 +02:00
|
|
|
|
For more details, have a look at [the build system documentation](doc/build_system.md).
|
2022-06-27 11:57:47 +02:00
|
|
|
|
|
2022-06-27 11:46:13 +02:00
|
|
|
|
## Copyright / License
|
|
|
|
|
|
|
|
|
|
See the file [`COPYING`](./COPYING) for copyright information.
|