UCraft is een minimalistische implementatie van een Minecraft-server, geschreven in de programmeertaal C. Het project is specifiek ontwikkeld voor hardware met zeer beperkte resources, wat resulteert in een extreem kleine footprint: een binary van circa 46-70 KB en een gemiddeld geheugengebruik van slechts 50 KB per speler.
De belangrijkste kenmerken zijn:
- Basisfunctionaliteit: Ondersteuning voor Minecraft 26.1.2 clients, waarbij spelers kunnen chatten, blokken kunnen plaatsen/verwijderen en een procedureel gegenereerde wereld kunnen verkennen.
- Veiligheid: Mogelijkheid tot online-mode versleuteling via mbedTLS of een offline modus.
- Compatibiliteit: De server kan worden gebouwd op Linux, Windows en macOS.
Een opvallend aspect van UCraft is de implementatie op onconventionele hardware, zoals de Lightbulb (BL602 MCU) en een Samsung C410W printer.
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
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