UCraft
Inleiding
UCraft implementeert enkel de absolute basis van het Minecraft-protocol. Clients kunnen deelnemen, een procedureel gegenereerde wereld verkennen, chatten en blokken plaatsen en verwijderen. Het project biedt de basis voor zeer primitieve Minecraft-gameplay en is niet bedoeld als een volledige vervanging voor een reguliere server.
Momenteel is er ondersteuning voor Minecraft 26.1.2 clients.
Kenmerken
- Procedurele terreingeneratie: Een verkenningsbare wereld die on-demand wordt gegenereerd terwijl spelers zich verplaatsen.
- Primitieve Minecraft-gameplay: Mogelijkheden om rond te lopen, te chatten met andere spelers en blokken te plaatsen of te verwijderen.
- Online-mode versleuteling: Geauthenticeerde logins via mbedTLS, of een offline modus zonder versleuteling.
- Minimale footprint: Een binair bestand van circa 46 KB zonder authenticatie (circa 70 KB inclusief) en een gemiddeld geheugengebruik van circa 50 KB voor één speler.
Bouwen
De server is gebouwd en getest op Linux. Voor Windows is MSVC vereist en voor macOS zijn de Xcode Command Line Tools en CMake nodig.
Om de server op Linux te installeren, kunnen de volgende commando's worden gebruikt:
sudo apt install git build-essential cmake make
git clone https://github.com/vimpop/UCraft/
cd UCraft && mkdir build && cd build
cmake ..
make
Dit resulteert in een uitvoerbaar bestand genaamd UCraft in de map build/src. Pre-built binaries zijn ook beschikbaar als artifacts van de GitHub Actions workflow runs.
Uitvoeren
Start de server met het volgende commando:
./src/UCraft
Output:
[INFO]: Listening on *:25565
[INFO]: UCraft server started!
Verbind vervolgens met localhost:25565 met een Minecraft 26.1.2 client.
Implementaties
UCraft is reeds geïmplementeerd op onder andere:
- Lightbulb (BL602 MCU)
- Samsung C410W Printer (ARM BE MCU)
Credits
- Bixilon voor hulp bij belangrijke delen van het Minecraft-protocol.
- wiki.vg voor de documentatie van het Minecraft-protocol.
Licentie
MIT
Groetjes,