Einführung

Einführung

MavonEngine ist eine Three.js-Spieleengine für Single-Player- und Multiplayer-Browserspiele — mit serverautoritativer Physik, Echtzeit-Netzwerk und einer einheitlichen Server-Client-Architektur.

MavonEngine ist eine Three.js-Spieleengine, die auf Three.js und Rapier3D aufbaut. Sie wurde entwickelt, um den üblichen Boilerplate-Code bei der Einrichtung von 3D-Browserspielen — sowohl Single-Player als auch Multiplayer — zu abstrahieren.

Das übergeordnete Ziel ist es, Logik einmal zu schreiben und sie dann auf Server und Client identisch laufen zu lassen, wobei die notwendigen Updates / Zustandssynchronisierungen bei Bedarf stattfinden.

Was es bietet

Entity-System

Eine hierarchische Entity-Architektur zur Strukturierung aller Spielobjekte.

Zustandsmaschine

Ein Pushdown-Automat-Muster zur Verwaltung komplexer Entity-Verhaltensweisen.

Netzwerk

Autoritativer Multiplayer-Server mit WebRTC und tick-basierter Zustandssynchronisierung.

Physik (Dokumentation folgt)

Rapier3D-Physik mit Character-Controller und Debug-Visualisierung.

Editor (Dokumentation folgt)

Ein vollwertiger Level-Editor für deine Kreationen.

Designphilosophie

Die Engine versucht, gängige Elemente zu abstrahieren und dabei flexibel zu bleiben. Einige Bereiche können meinungsstark sein (z.B. ist der Audio-Listener an die Kamera gebunden). Wenn du solche Stellen findest und sie weiter öffnen möchtest, sind Pull Requests willkommen. Bitte lies Mitwirken für mehr Informationen.

Kernbibliotheken

  • Three.js — Client-Rendering und Szenenverwaltung
  • Rapier3D — Server- und clientseitige Physiksimulation
  • geckos.io — UDP über WebRTC für Echtzeit-Multiplayer