Zum Inhalt springen
Basiert auf Bevy
Bevy

Ihr Browser-Spiel, kompiliert zu einer nativen App

Wenn ein Projekt bereit ist, den Tab zu verlassen, exportiert die Engine es und erzeugt ein Bevy-Projekt in Rust — und kompiliert es anschließend zu einem Windows-, macOS-, Linux- oder Android-Build.

Zielplattform

Bevy 0.19

Lizenz

MIT / Apache 2.0

Sprache

Rust (rustc ≥ 1.95)

Renderer

wgpu

Was Bevy ist

Bevy ist eine in Rust geschriebene Game-Engine, kostenlos und quelloffen unter einer dualen MIT-/Apache-2.0-Lizenz. Sie basiert auf einer Entity-Component-System-Architektur und rendert über wgpu, dieselbe Grafikabstraktion, die auch WebGPU zugrunde liegt. Sie kompiliert zu einer echten nativen Binärdatei — kein Browser, keine Laufzeitumgebung, die mitgeliefert werden muss.

Warum überhaupt eine zweite Engine

Babylon.js ist es, was aukimi überhaupt möglich macht: eine 3D-Anwendung, die Sie mit einer URL öffnen. Aber ein fertiges Spiel muss oft eine Datei sein — etwas, das auf eine Store-Seite kommt, an einen Spieler übergeben oder ohne Tab ausgeführt wird. Statt Sie aufzufordern, Ihr Projekt anderswo neu aufzubauen, übersetzt die Engine es: Die Szene, die Sie im Browser erstellt haben, wird zu einem Bevy-Projekt, das zu einer Desktop- oder Mobile-Anwendung kompiliert.

Was tatsächlich exportiert wird

Der Build macht keinen Screenshot Ihrer Szene. Er extrahiert sie: Geometrie und Materialien verlassen sie als Standard-GLB, alles, was die Engine kennt und glTF nicht transportieren kann (Terrain, Vegetation, Himmel, Post-Processing, Entity-Daten, Szeneneinstellungen), verlässt sie daneben als strukturiertes JSON, und aus diesen beiden Dateien wird ein vollständiges Rust-Projekt erzeugt. Dieses Projekt ist ein ganz normales Cargo-Projekt — Sie können es lesen.

  • scene.glb — Geometrie, Materialien, Animation
  • scene.json — Terrain, Vegetation, Lichter, Einstellungen
  • Ein generiertes Cargo-Projekt für Bevy 0.19

Ihre Skripte kommen mit

Gameplay-Skripte, die in der Engine geschrieben wurden, werden nicht von Hand in Rust umgeschrieben und auch nicht fallengelassen. Das generierte Projekt bettet eine JavaScript-Laufzeitumgebung (QuickJS) ein und bindet dieselbe Scripting-API, sodass ein im Browser verfasstes Skript im nativen Build genau so läuft, wie es geschrieben wurde. Diese beiden APIs in Übereinstimmung zu halten ist eine feste Regel der Codebasis, kein nachträglicher Gedanke.

Vier Zielplattformen — und eine, die ehrlich zugibt, dass sie fehlt

Windows-Executables, macOS-App-Bundles, Linux-AppImages und Android-APKs sind die Zielplattformen, die das Build-Panel heute anbietet. iOS ist gelistet und deaktiviert — die Anforderung an die Toolchain lässt sich nicht hinter einem Ladesymbol verstecken. Kann der Build-Server Ihr Ziel nicht bedienen, erhalten Sie statt einer Fehlermeldung das generierte Rust-Projekt zum selbst Kompilieren.

  • Windows 10/11 Executable
  • macOS-App-Bundle
  • Linux-AppImage
  • Android-APK (Android 8+)

Was nicht übertragen wird, sagt das auch

Zwei Renderer sind zwei Renderer. Manches, was die Browser-Vorschau kann, hat auf der Bevy-Seite noch keine Entsprechung — gebackene Lightmaps und lokalisierte Light Probes zum Beispiel. Der Exporter schreibt einen Konvertierungsbericht, der genau auflistet, was nicht übertragen werden konnte, statt es stillschweigend fallen zu lassen und Sie den Unterschied erst im fertigen Build entdecken zu lassen. Eine Lücke, die Sie lesen können, ist eine Lücke, die Sie einplanen können.

Kompilieren Sie Ihr Projekt zu einer echten Binärdatei

Erstellen Sie das Spiel im Browser. Veröffentlichen Sie es als Anwendung.

Projekt unterstützen