Skip to content
Zurück zum Blog
WebCraft: Ein Minecraft-Klon in reinem JavaScript

WebCraft: Ein Minecraft-Klon in reinem JavaScript

Alexandru Maftei
Alexandru Maftei
@ice
Updated
2 Aufrufe
TL;DR:WebCraft ist ein JavaScript-basierter Minecraft Classic-Klon, der in deinem Browser mit WebGL und WebSockets läuft. Keine Frameworks, minimale Abhängigkeiten. Ideal zum Erlernen der Voxel-Spieleentwicklung, obwohl das Projekt nicht mehr aktiv gepflegt wird.

"Minecraft-Klon in Javascript geschrieben."

Overv/WebCraft · github.com
⭐ 418 Sterne💻 JavaScript📄 Zlib

Hast du dir schon mal überlegt, wie man ein Minecraft-Erlebnis komplett im Browser bauen würde? WebCraft macht genau das: ein JavaScript-basierter Minecraft-Klon, der über WebGL und WebSockets läuft und nur einen modernen Webbrowser benötigt. Es ist nicht das vollständige Survival-Erlebnis, das du aus dem offiziellen Spiel kennst, aber wenn du neugierig bist, wie blockbasierte Voxel-Welten wirklich funktionieren, wird dich dieses Projekt begeistern.

Was WebCraft ist

WebCraft ist eine Neuauflage von Minecraft Classic, die von Grund auf mit reinem JavaScript gebaut wurde. Kein Three.js, kein Babylon.js, keine schweren 3D-Frameworks. Ehrlich gesagt hat der Entwickler die Rendering-Pipeline direkt auf WebGL aufgebaut, was hardcore klingt, bis man realisiert, dass es viel effizienter ist, Tausende von statischen Würfeln zu rendern, als eine ganze Game Engine mit sich herumzutragen.

Das Projekt umfasst sowohl Single-Player- als auch Multiplayer-Modi. Multiplayer nutzt Node.js im Backend mit WebSockets, um Spieleraktionen über verbundene Clients zu synchronisieren. Am interessantesten finde ich, wie minimal die Abhängigkeiten sind. Du schaust auf glmatrix für mathematische Operationen und socket.io für Netzwerk, und das wars. Alles andere ist benutzerdefinierter Code.

Eine wichtige Sache gleich vorneweg: Dieses Projekt wird nicht mehr aktiv gepflegt. Das Repository existiert und der Code ist da, aber rechne nicht mit regelmäßigen Updates oder aktiver Unterstützung. Für pädagogische Zwecke oder zum Herumtüfteln? Unbezahlbar. Für einen produktiven Multiplayer-Server? Schau woanders hin.


Warum du dich dafür interessieren könntest

Es gibt einige gute Gründe, sich WebCraft anzuschauen, je nachdem, was du suchst. Wenn du Spieleentwicklung oder Grafikprogrammierung lernst, ist das Gold wert. Du siehst, wie jemand eine voxelbasierte Welt strukturiert hat, Render-Performance verwaltet, Physik (Gravitation, Flüssigkeitsfluss) handhabt und Spielzustand über Clients synchronisiert. Nichts davon ist hinter einer proprietären Engine versteckt.

Wenn du einfach nur Minecraft in deinem Browser spielen möchtest, ohne etwas zu installieren? Klar, das Erlebnis ist da. Du kannst Welten erstellen, Blöcke platzieren und entfernen, und wenn du einen Server einrichtest, mit Freunden spielen. Aber ich will ehrlich mit dir sein: Es ist ein Classic-Klon, nicht modernes Minecraft. Keine Survival-Mechaniken, keine Mobs, keine Progression. Es ist näher an Creative Mode in einer vereinfachten Form.

Studierende, die Capstone-Projekte rund um Spieleentwicklung bauen, oder jeder, der ein voxelbasiertes Spielkonzept prototypisiert, könnte viel aus der Code-Basis lernen. Die Architektur ist sauber genug, dass du verfolgen kannst, wie ein Block in die Welt kommt, bis hin zum Rendern auf dem Bildschirm.


Wie die Architektur funktioniert

Das Projekt ist in modulare JavaScript-Dateien organisiert, jede behandelt eine spezifische Schicht des Spiels. Das World-Modul speichert die Blockdaten deiner gesamten Karte. Stell dir das als 3D-Array vor, das verfolgt, was sich an jeder Koordinate befindet. Das Render-Modul nimmt diese Daten und konvertiert sie in Chunks (im Grunde Blöcke-Gruppen), dann füttert diese WebGL zum Zeichnen.

Die Physik-Simulation läuft separat. Gravitation zieht fallende Blöcke nach unten, Wasser und Lava fließen nach einfachen Regeln, und Collision Detection verhindert, dass du durch Gelände fällst. Es ist keine komplexe Physik, aber es funktioniert für eine blockbasierte Welt.

Spieler-Input wird vom Player-Modul behandelt, das dein Inventar, den aktuell ausgewählten Blocktyp und die Bewegung verfolgt. Auf der Multiplayer-Seite vergleicht das Network-Modul deinen lokalen Welt-Zustand mit dem, was der Server kennt, und synchronisiert Änderungen über alle verbundenen Spieler, sodass jeder dieselbe Sache sieht.

Blöcke selbst sind über das Blocks-Modul anpassbar, wo du Material-Eigenschaften definieren würdest, wie Farbe, ob Licht durchdringt, und wie es gerendert wird. Wenn du neue Blocktypen hinzufügen oder bestehende ändern möchtest, würdest du dort beginnen.


Einrichtung (wenn du es ausprobieren möchtest)

Die Single-Player-Version ist einfach. Du klonst das Repository, dann öffnest singleplayer.html in einem modernen Browser. Kein Build-Schritt, kein node_modules-Alptraum. Fertig.

Für Multiplayer benötigst du Node.js installiert (das Projekt zielt auf ältere Versionen ab, aber jedes aktuelle LTS sollte funktionieren). Installiere Abhängigkeiten mit npm, dann starte den Server:

bash
npm install
node server.js

Sobald der Server läuft, öffne multiplayer.html in deinem Browser und er wird sich verbinden. Du kannst dann mehrere Browser-Fenster auf demselben Server öffnen, um Multiplayer zu testen, oder die Verbindungs-URL mit anderen in deinem lokalen Netzwerk teilen. Remote-Spiel über das Internet würde etwas Netzwerk-Setup benötigen (Port Forwarding oder ngrok), was über das hinausgeht, was das Projekt dokumentiert, aber definitiv möglich.

Wenn etwas kaputt geht oder du zur reinen Minecraft zurückkehren möchtest, schließe einfach den Browser-Tab. WebCraft läuft komplett im Speicher und im WebGL-Kontext des Browsers, also nichts bleibt bestehen oder modifiziert dein System. Null Speicherplatz zum Aufräumen.


Was macht es besonders

Eine Voxel-Renderer von Grund auf zu bauen ist nicht trivial. Die Tatsache, dass dies ohne eine Grafik-Bibliothek möglich ist, ist das Highlight. WebGL ist low-level genug, dass du genau siehst, wie Chunk-Geometrie generiert wird, wie Flächen ausgeblendet werden (nicht gezeichnet, wenn sie verborgen sind), und wie Licht-Berechnungen funktionieren.

Single-Player-Struktur
Single-Player-Struktur

Das Multiplayer-Setup ist schlank. Socket.io handhabt die kniffligen Teile der bidirektionalen Kommunikation, aber du siehst immer noch, wie Spielzustand serialisiert, über das Netz gesendet und auf der Client-Seite abgestimmt wird. Das ist ein echtes, weltliches Netzwerk-Problem, das die meisten Spiel-Tutorials übergehen.

Ein weiteres Detail, das ich zu schätzen wusste: Das Projekt bläht sich nicht mit Features auf. Es bleibt fokussiert auf die Kern-Loop von Blöcke platzieren, die Welt rendern und Spieler synchronisieren. Kein GUI-Framework, keine Animations-Bibliothek, kein Package-Bloat. Du liest jemandes pragmatische Implementierungs-Entscheidungen, nicht ein Framework-Showcase.


Limitierungen, die du kennen solltest

Performance ist die große Sache. Abhängig von deiner Hardware und deinem Browser könntest du anfangen zu ruckeln, wenn du wirklich große Strukturen baust oder riesige Welten generierst. Tausende von Würfeln zu rendern ist machbar, aber nicht unbegrenzt skalierbar. Erwarte, dass dies auf modernen Maschinen mit kleineren Spielbereichen reibungslos läuft, und vielleicht ein wenig ruckelt, wenn du es pushst.

Es gibt keine eingebaute Persistenz. Seite neu laden oder Server neustarten, und deine Welt ist weg. Wenn du permanente Welten wolltest, müsstest du Datenbank-Logik selbst hinzufügen. Dasselbe gilt für jede Art von Server-Konfiguration, Admin-Tools oder Benutzer-Authentifizierung. Es ist ein Skelett, kein vollständiges Server-Produkt.

Die Classic-Modus-Einschränkung bedeutet keine Survival-Elemente, keine Mob AI, keine Dungeons oder Beute. Wenn du es mit modernem Minecraft vergleichst, fehlt fast alles außer der Kern-Bau-Mechanik. Das ist kein Fehler, nur eine realistische Scope-Grenze, die das Projekt gesetzt und eingehalten hat.

Ach, und Browser-Kompatibilität. Dies wurde für die WebGL-Ära gebaut, also alte Browser funktionieren nicht. Alles aus dem letzten Jahrzehnt sollte in Ordnung sein, aber erwarte nicht, dass es auf Internet Explorer oder uralten Android-Geräten läuft.


Wenn du ähnliche Projekte möchtest

Es gibt ein paar Alternativen, die wissen solltest. Minecraft selbst bietet eine kostenlose Version namens Minecraft Classic über ihre Website, wenn du nur das offizielle Erlebnis möchtest. Es ist auch browserbasiert, offiziell gepflegt und fühlt sich polierten an.

Wenn du speziell an dem Erlernen der Voxel-Spieleentwicklung interessiert bist, gibt es reinere Starter-Projekte. Manche empfehlen, Voxel.js anzuschauen oder sogar mit einer Python-Bibliothek wie Panda3D zu beginnen, wenn du eine andere Sprache bevorzugst. Diese haben tendenziell aktivere Gemeinschaften und aktuelle Dokumentation.

Für Minecraft-Mods und Tools verwaltet unsere Gemeinschaft Listen von getesteten Servern und Skins, wenn du daran interessiert bist, Vanilla Minecraft zu erweitern. Unsere Votifier Tester und Text Generator Tools können dir helfen, Server zu verwalten und benutzerdefinierten Content zu erstellen, ohne in JavaScript einzusteigen.


Meine Meinung

WebCraft kratzt an einem sehr spezifischen Juckreiz. Wenn du verstehen möchtest, wie ein blockbasiertes Spiel wirklich funktioniert, oder du lernst Web-Grafiken und Game Loops, ist es ein paar Stunden Erkundung wert. Der Code ist lesbar, die Architektur ist solide, und du wirst mehr Wissen haben, als du angefangen hast.

Zum gelegentlichen Spielen? Bleib bei dem offiziellen Minecraft. Zum Lernen? Das ist solide. Die Tatsache, dass es nicht mehr gepflegt wird, spielt eigentlich für pädagogische Zwecke keine Rolle. Ein Code geht nirgendwohin, und das, was da ist, ist durchdacht.

Es ist eines dieser Projekte, das beweist, dass ein fähiger Entwickler kein Framework braucht, um etwas Interessantes zu bauen. Nur Geschick, klares Denken und solides Verständnis des Problems. Das allein macht es wert zu wissen, dass es existiert.

Overv/WebCraft - Zlib, ⭐418
Über den Autor
Alexandru Maftei
Alexandru MafteiHauptautor

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Teile es mit deinen Freunden!