Jouw browsergame, gecompileerd tot een native app
Wanneer een project klaar is om de tab te verlaten, exporteert de Engine het en genereert een Bevy-project in Rust — dat vervolgens wordt gecompileerd tot een Windows-, macOS-, Linux- of Android-build.
Doel
Bevy 0.19
Licentie
MIT / Apache 2.0
Taal
Rust (rustc ≥ 1.95)
Renderer
wgpu
Wat Bevy is
Bevy is een game-engine geschreven in Rust, gratis en open source onder een dubbele MIT / Apache 2.0-licentie. Hij is opgebouwd rond een entity-component-system-architectuur en rendert via wgpu, dezelfde grafische abstractie die aan de basis van WebGPU ligt. Hij compileert naar een echte native binary — geen browser, geen runtime om mee te leveren.
Waarom eigenlijk een tweede engine
Babylon.js is wat aukimi mogelijk maakt: een 3D-applicatie die je opent met een URL. Maar een afgewerkte game moet vaak een bestand zijn — iets om op een winkelpagina te zetten, aan een speler te geven, of te draaien zonder tab. In plaats van je te vragen je project elders opnieuw op te bouwen, vertaalt de Engine het: de scène die je in de browser hebt gemaakt, wordt een Bevy-project dat compileert tot een desktop- of mobiele applicatie.
Wat er precies wordt geëxporteerd
De build maakt geen screenshot van je scène. Hij extraheert haar: geometrie en materialen vertrekken als een standaard-GLB, alles wat de engine weet en wat glTF niet kan dragen (terrein, vegetatie, lucht, post-processing, entiteitsdata, scène-instellingen) vertrekt ernaast als gestructureerde JSON, en uit die twee bestanden wordt een volledig Rust-project gegenereerd. Dat project is een normaal Cargo-project — je kunt het gewoon lezen.
- scene.glb — geometrie, materialen, animatie
- scene.json — terrein, vegetatie, lichten, instellingen
- Een gegenereerd Cargo-project gericht op Bevy 0.19
Je scripts gaan mee
Gameplayscripts geschreven in de Engine worden niet met de hand herschreven naar Rust, en ze worden niet weggelaten. Het gegenereerde project bevat een JavaScript-runtime (QuickJS) en bindt dezelfde scripting-API, zodat een script dat in de browser is geschreven, ongewijzigd draait in de native build. Die twee API's op elkaar afgestemd houden is een vaste regel in de codebase, geen bijzaak.
Vier doelen, en één die eerlijk toegeeft dat hij ontbreekt
Windows-executables, macOS-appbundels, Linux AppImages en Android-APK's zijn de doelen die het buildpaneel vandaag aanbiedt. iOS staat vermeld en is uitgeschakeld — de vereiste toolchain is niet iets wat we achter een laadanimatie kunnen verstoppen. Als de buildserver je doel niet aankan, krijg je het gegenereerde Rust-project om zelf te compileren, in plaats van een foutmelding.
- Windows 10/11-executable
- macOS-appbundel
- Linux AppImage
- Android APK (Android 8+)
Wat niet meekomt, wordt gemeld
Twee renderers zijn twee renderers. Sommige dingen die de browserpreview doet, hebben nog geen equivalent aan de Bevy-kant — gebakken lightmaps en gelokaliseerde light probes zijn daar voorbeelden van. De exporter schrijft een conversierapport dat precies vermeldt wat niet kon worden overgedragen, in plaats van het stilzwijgend te laten vallen en jou het verschil te laten ontdekken in de afgewerkte build. Een gat dat je kunt lezen, is een gat waar je omheen kunt plannen.
Lees het bij de bron
Bouw je project tot een echte binary
Maak de game in de browser. Lever hem als applicatie.
Steun het Project