Spring til indhold
Bygget på Bevy
Bevy

Dit browserspil, kompileret til en native app

Når et projekt er klar til at forlade fanen, eksporterer Engine det og genererer et Bevy-projekt i Rust — og kompilerer det derefter til en Windows-, macOS-, Linux- eller Android-build.

Mål

Bevy 0.19

Licens

MIT / Apache 2.0

Sprog

Rust (rustc ≥ 1.95)

Renderer

wgpu

Hvad Bevy er

Bevy er en spilmotor skrevet i Rust, gratis og open source under en dobbelt MIT/Apache 2.0-licens. Den er bygget op omkring en entity-component-system-arkitektur og renderer gennem wgpu, den samme grafikabstraktion, som ligger under WebGPU. Den kompileres til en ægte native binærfil — ingen browser, ingen runtime, der skal følge med.

Hvorfor overhovedet en anden motor

Babylon.js er det, der gør aukimi muligt: en 3D-applikation, du åbner med en URL. Men et færdigt spil skal ofte være en fil — noget at lægge på en butiksside, give en spiller eller køre uden en fane. I stedet for at bede dig om at genopbygge dit projekt et andet sted, oversætter Engine det: scenen, du har lavet i browseren, bliver til et Bevy-projekt, der kompileres til en desktop- eller mobilapplikation.

Hvad der rent faktisk eksporteres

Builden tager ikke et skærmbillede af din scene. Den udtrækker den: geometri og materialer forlader som en standard GLB, alt det, motoren ved, som glTF ikke kan bære (terræn, vegetation, himmel, post-processing, entity-data, sceneindstillinger), forlader som struktureret JSON ved siden af, og et fuldt Rust-projekt genereres ud fra de to filer. Det projekt er et almindeligt Cargo-projekt — du kan læse det.

  • scene.glb — geometri, materialer, animation
  • scene.json — terræn, vegetation, lys, indstillinger
  • Et genereret Cargo-projekt målrettet Bevy 0.19

Dine scripts følger med

Gameplay-scripts skrevet i Engine bliver hverken omskrevet til Rust i hånden eller droppet. Det genererede projekt indlejrer en JavaScript-runtime (QuickJS) og binder det samme scripting-API, så et script skrevet i browseren kører i den native build, som det er skrevet. At holde disse to API'er på linje er en fast regel i kodebasen, ikke en eftertanke.

Fire mål, og ét der er ærligt om at mangle

Windows-eksekverbare filer, macOS-app-bundles, Linux-AppImages og Android-APK'er er de mål, byggepanelet tilbyder i dag. iOS er listet og slået fra — kravet til værktøjskæden er ikke noget, vi kan gemme bag en loading-indikator. Hvis byggeserveren ikke kan klare dit mål, får du det genererede Rust-projekt til selv at kompilere i stedet for en fejlbesked.

  • Windows 10/11-eksekverbar fil
  • macOS-app-bundle
  • Linux-AppImage
  • Android-APK (Android 8+)

Det, der ikke følger med, siger det selv

To renderere er to renderere. Nogle ting, browserforhåndsvisningen kan, har endnu ingen tilsvarende på Bevy-siden — bagte lightmaps og lokaliserede light probes blandt dem. Eksportøren skriver en konverteringsrapport, der lister præcis, hvad den ikke kunne overføre, i stedet for stiltiende at droppe det og lade dig opdage forskellen i den færdige build. Et hul, du kan læse om, er et hul, du kan planlægge omkring.

Byg dit projekt til en rigtig binærfil

Lav spillet i browseren. Udgiv det som en applikation.

Støt Projektet