Engine
Enjin permainan: graf adegan, komponen, skrip, fizik, saluran PBR, editor dunia, dan binaan native untuk desktop dan mudah alih.
Ringkasnya#
Sebuah enjin permainan yang lengkap dalam pelayar: bina satu adegan, berikannya kelakuan, tekan main, dan eksportkannya ke web atau ke binari native desktop dan mudah alih.
Ia adalah modul terbesar dalam aukimi dengan jarak yang jauh. Halaman ini memetakannya sepertimana antara muka melakukannya, mengikut laci tempat setiap panel berada, berbanding menyenaraikan ciri-ciri mengikut abjad.
Susun atur#

| Bar menu | File · Edit · View · Windows · Run · Plugins |
| Bar alat | nama projek, buat asal/buat semula, suis mod viewport (3D · 2.5D · 2D · TXT), pemilih adegan, empat butang panel, FX Master, HUD, kotak resolusi, transport (main, jeda, henti) dan Build |
| Kiri | satu rel ikon, graf adegan, senarai, audio, konsol, dan panel yang dibukanya |
| Tengah | viewport, dengan bar gizmo tersendiri (translate, putar, skala, world/local, grid, snap, framing) dan pemilih kualiti |
| Kanan | inspektor untuk entiti yang dipilih |
| Bawah | Console dan Profiler, bersebelahan |
| Bar status | mod, dimensi viewport, kiraan entiti, keadaan grid |
Empat butang panel#

Ia tidak semuanya berkelakuan sama, dan perbezaan ini berbaloi diketahui sebelum anda mencari sesuatu:
| Butang | Kelakuan |
|---|---|
| Systems | membuka satu laci |
| Tools | membuka laci yang sama, Systems dan Tools saling menutup |
| Assets | menogol satu dok berterusan |
| Scripts | membuka satu modal |
Systems dan Tools berkongsi satu slot dengan sengaja; ia diletakkan bersebelahan supaya kelihatan bahawa ia berbuat demikian.
Systems#
Subsistem enjin itu sendiri: perkara yang ada pada sebuah adegan, berbanding perkara yang anda gunakan untuk membina.
| Kumpulan | Panel |
|---|---|
| Plugins | pelayar plugin |
| Rendering | Rendering · Rendering Pipeline · Look Presets · Shader Lab · Render Style · Shadows · Mesh LOD · Post Process Volumes |
| Gameplay | Multiplayer room · Physics · AI & Navigation · Gameplay Zones |
| World | Scene Graph · Level Streaming · Baking · Light Probes · Decals |
Perenderan#
Suis FX Master pada bar alat menghidupkan dan mematikan keseluruhan saluran pasca-pemprosesan dengan satu klik: cara paling pantas untuk melihat kos sebenarnya. Secara individu: bloom, depth of field, SSR, SSAO, GTAO, SSGI, temporal AA, FXAA, motion blur, kabus volumetrik, contact shadows, penggredan warna, film grain, aberasi kromatik, vignette dan tonemapping, ditambah geometri gaya Nanite dan oklusi Hi-Z.
Look Presets ialah konfigurasi lengkap bagi semua yang di atas. Render Style menukar daftar rupa, bergaya berbanding fotografik. Shader Lab ialah tempat anda menulis shader anda sendiri. Mesh LOD dan Post Process Volumes ialah dua yang berbaloi pada sebuah adegan besar: tahap perincian (level-of-detail) bagi setiap mesh, dan pasca-pemprosesan yang hanya terpakai di dalam satu volum.
Perender itu ialah Babylon.js. Ia bermula pada WebGL dan bertukar sendiri kepada WebGPU apabila pelayar menyokongnya, dan berundur semula dengan sendirinya jika itu gagal.
Sistem gameplay#
Physics meliputi kedua-dua penyelesai (solver) 3D (Havok) dan yang 2D. AI & Navigation ialah navmesh dan ejen-ejen di atasnya. Gameplay Zones ialah volum pencetus (trigger) dengan kelakuan yang dilekatkan. Multiplayer room menyambungkan adegan kepada pelayan Colyseus (lihat di bawah).
Sistem dunia#
Level Streaming memuatkan dan menyahmuatkan bahagian sesuatu tahap semasa pemain bergerak. Baking mengira pencahayaan lebih awal; Light Probes menangkap cahaya tidak langsung dan pantulan pada titik-titik dalam ruang. Decals mengunjurkan perincian ke atas permukaan tanpa menambah geometri.
Tools#
Perkara yang anda gunakan untuk membina.
| Kumpulan | Panel |
|---|---|
| Editors | Scripts · Blueprint Editor · UI Editor · Tilemap |
| World | Sky Studio · Terrain · Water · Tree Generator · Plant Generator · Rock Generator · Kitbash |
| Gameplay | Inventory · Data tables · Dialogue Trees |
| Animation | Timeline · Cinematic Sequencer · Camera Tools |
| Audio | Audio Manager |
| Debug | Profiler |
Penjana dunia#
Terrain, air, langit dan empat penjana kandungan, pokok, tumbuhan, batu dan kepingan kitbash. Ia mempunyai bab tersendiri di bawah.
Penulisan gameplay#
Inventory, Data tables (Tools → Data) dan Dialogue Trees ialah tiga editor yang membolehkan sebuah permainan mempunyai kandungan tanpa kandungan itu berada dalam kod secara terperinci di bawah.
Animasi#
Timeline untuk animasi entiti, Cinematic Sequencer untuk syot, dan Camera Tools untuk pembingkaian. Lihat Animasi dan kamera.
Editor dunia#
Tujuh panel di bawah Tools → World. Ia adalah cara pantas untuk mengisi sebuah adegan, dan sebab sesuatu tahap tidak perlu bermula dengan sesi pemodelan.
Terrain#
Sebuah adegan boleh memuatkan beberapa terrain; setiap satu ialah satu baris dalam senarai Terrains dan dicipta pada salah satu daripada tiga resolusi, 128² (pantas), 256² (seimbang) atau 512² (terperinci).
Panel ini mempunyai sepuluh mod, dan semuanya berkongsi satu perkara: topeng yang dilukis dalam Masks menyekat setiap satu daripadanya.
| Mod | Apa yang dilakukannya |
|---|---|
| Sculpt | tujuh belas berus pada medan ketinggian |
| Paint | sehingga lapan lapisan tekstur, merentasi dua splatmap |
| Generate | hingar, penteksturan automatik, dan import ketinggian dunia sebenar |
| Sketch | lukis rabung dan lembah, sintesiskan satu rupa bumi yang sepadan |
| Masks | menyekat setiap mod lain kepada sebahagian permukaan |
| Water | paras laut, dan pilihan antara air rupa bumi dan lautan FFT |
| Paths | jalan Bézier yang dibakar ke dalam tanah |
| Vegetation | serakan berasaskan berus atau peraturan |
| SDF | satu rupa bumi raymarch, dirender berbanding dimesh |
| Biomes | tanih, tumbuhan, pokok dan batu dalam satu laluan |
Sculpt. Raise 1, Lower 2, Smooth 3, Flatten 4, Pinch 5, Inflate
6, Noise 7, Sharpen 8, Stamp 9, Terrace 0, Erode E, Fill F, Clone
C (klik-Alt menetapkan sumber), Blur B, Ramp R, ditambah dua alat air,
River melukis satu aliran, Lake mengisi pada satu titik.
Berus itu sendiri mempunyai dinamiknya sendiri: lengkung tekanan, tetikus malas,
susutan, simetri, corak, dan variasi rawak pada saiz mahupun kekuatan. Stamp
membawa enam bentuk, kawah, puncak gunung, dataran tinggi, lembah sungai, kubah,
bukit hingar. Hakisan hadir dalam dua bentuk: berus E bersifat setempat,
manakala Adjustments menjalankan hakisan hidraulik, haba dan angin
ke atas seluruh rupa bumi.
Paint. Lapan lapisan, kerana dua splatmap RGBA membawa empat saluran masing-masing. Perpustakaan bahan disusun mengikut kategori, rumput, tanah, hutan, batu-batan, jalan dan permukaan, tebing, pasir, salji, gunung berapi, tanah lembap, fantasi, dan bahan anda sendiri, dan setiap lapisan membawa skala UV, anjakan, satu peta perincian, dan relief permukaan (kekuatan bump dan kedalaman parallax). Break texture tiling (cell bombing) ialah tetapan yang menghalang sesuatu tekstur tanah berulang daripada terbaca sebagai satu grid.
Generate membina daripada hingar, kemudian Generate Textures menetapkan bahan mengikut ketinggian dan cerun, dengan variasi lorekan utara/selatan serta pantai pasir atau kerikil di mana terdapat air. Real World mengimport jubin ketinggian awam NASA/USGS: pilih satu mercu tanda atau taip koordinat, pilih tahap zum, dan panel itu melaporkan julat ketinggian yang dibawanya.
Sketch ialah pintu masuk yang satu lagi. Lukis lakaran rabung dan lembah pada satu peta 2D, pilih sehingga tiga landskap sumber sebenar, dan rupa bumi disintesiskan untuk sepadan dengan lakaran itu, secara pilihan dicampur ke dalam apa yang sudah ada, diteksturkan secara automatik dan dihakis dalam laluan yang sama.
Masks dilukis dengan berus dan kemudian disunting secara keseluruhan: buang, songsangkan, kaburkan, besarkan, kecilkan. Topeng pintar (smart masks) menerbitkan satu topeng daripada rupa bumi itu sendiri, mengikut ketinggian, cerun, lapisan atau lekukan.
Paths. Klik untuk meletakkan titik kawalan dan satu lengkung licin melalui kesemuanya; seret titik ambar untuk menggerakkannya, dan pemegang cyan untuk membengkokkan lengkung itu. Bake Path meratakan tanah di bawahnya, melukis tekstur dan menaikkan tambakan.
Vegetation mempunyai dua bahagian. Berus meletakkan dan membuang instans secara tangan; peraturan serakan (scatter rules) meletakkannya mengikut syarat, pemberat lapisan, benih, skala min/maks, dan jalur ketinggian serta cerun yang diterima oleh setiap aset. Rumput dan bunga malap selepas jarak paparan yang boleh ditetapkan, dan Export to Scene menukar instans itu kepada objek adegan.
Biomes ialah versi satu-klik bagi semua yang di atas: pilih satu biome, tandakan kategori yang anda mahu (tanih, pokok, tumbuhan dan rumput, bunga, alga berhampiran air, batu-batan), tetapkan satu kepadatan, dan Apply Biome melukis tanah dan menyerakkan semuanya, melaporkan berapa banyak instans setiap satu yang diletakkannya. Variasi umur pokok mencampurkan anak benih hingga yang tua berbanding mengecap pokok yang sama di merata tempat, dan ground blend (RVT) meleburkan asas setiap batu ke dalam warna rupa bumi di bawahnya.
SDF ialah perender yang berbeza, bukan alat yang berbeza: rupa bumi itu di-raymarch daripada satu medan jarak, bentuk mengikut oktaf, lakunariti dan ketekunan, penteksturan rumput/batu/salji dengan satu garis salji dan ambang cerun, serta bayang-bayang lembut, oklusi ambien dan kabus tersendiri.
Rupa bumi yang besar mempunyai sistem LOD dengan geometri skirt (yang menutup jurang antara tahap), peralihan tahap yang licin, pemangkasan frustum dan satu overlay statistik. Peta ketinggian diimport dan dieksport sebagai PNG 16-bit, PNG 8-bit atau RAW 16-bit; splatmap sebagai satu PNG RGBA atau satu fail bagi setiap lapisan; dan keseluruhan rupa bumi, atau tetapannya sahaja, sebagai satu praset.
Sky Studio#
Atmosfera. Empat jenis langit, solid, gradien, HDRI, dan satu atmosfera fizikal dengan serakan Rayleigh dan Mie, penyerapan Mie, ozon, albedo tanah, kekeruhan (turbidity), jejari planet dan ketebalan atmosfera.
Semuanya bergantung pada masa hari, yang boleh berputar sendiri: matahari mengikut elevasi, azimut dan keamatan, dengan keamatan bayangnya sendiri; bulan mengikut fasa; bintang dengan kelipannya; dan satu aurora. Awan volumetrik mempunyai ketebalan, hakisan, skala hingar dan herotan curl, serta menerima cahaya melalui penyerapan, serakan, ambien dan satu sebutan powder; sirus dan Belt of Venus adalah berasingan. Perspektif udara ialah kabus yang menebal mengikut jarak dan melenyapkan geometri jauh ke dalam ufuk, ia tetapan yang menjadikan sesuatu landskap terbaca sebagai luas.
Sepuluh praset untuk bermula: siang cerah, subuh, senja matahari terbenam, senjakala, malam, mendung, ribut, gurun, artik dan angkasa lepas.
Air#
Dua tab: Ocean (FFT) untuk laut terbuka, Shore & lakes untuk selebihnya.
⚠️ Air dicipta dalam editor Terrain: alat sungai dan tasik, atau Show Water, dan diselaraskan di sini. Membuka panel ini pada sebuah adegan tanpa air memberi anda tetapan tanpa apa-apa untuk dikenakan.
Air pantai membawa warna, kelegapan, kekuatan dan kelajuan ombak, choppiness, lebar buih dan Fresnel, dengan pantulan ruang skrin dan kaburan pembiasan. Di bawahnya ialah shader WGSL itu sendiri: dua skala normal dengan arah dan kelajuan skrol masing-masing, ambang dan kelembutan buih, kekuatan pembiasan dan indeks pembiasan, serta cahaya di dalam air itu sendiri, penyerapan, kekeruhan, serakan dan ketelusan.
Penjana pokok#
Dua mod, Tree dan Trunk. Sebatang pokok bersifat luruh atau sentiasa hijau, mempunyai umur daripada anak benih hingga purba, dan boleh hidup, mati, tunggul atau tunggang. Semuanya berbenih, jadi Randomize seed ialah cara paling pantas untuk mendapatkan pokok lain dengan perwatakan yang sama.
Bentuknya ditetapkan mengikut tahap dahan: anak, panjang, jejari, tirus, kekasaran, pulasan, seksyen, segmen, sudut dan ketinggian permulaan, ditambah variasi semula jadi, fototropisme dan gravitropisme: dua yang membuat pokok itu condong ke arah cahaya dan melentuk di bawah beratnya sendiri, serta satu daya global dengan kekuatannya sendiri. Pangkalnya mempunyai kembangan akar (lobus dan ketinggian) dan penopang.
Daun ialah billboard, satu atau dua muka, dengan bilangan, saiz, sudut, variasi, kelompok, gulungan, lentukan, kilauan dan normal bulat. Kulit kayu hadir dalam enam gaya, berbonjol, aspen, pain, birch, licin, palma, dengan relief, lumut, pangkal lembap, pemudaran matahari, oklusi ambien kanopi dan pertukaran musim luruh. Empat musim menukar keseluruhan rupanya sekali gus.
Forest menyerakkan banyak sekaligus: bilangan, jejari serakan, variasi skala, dan satu campuran umur (tunggal, semula jadi, muda, tua, sekata). Add age progression meletakkan kelima-lima peringkat hidup dalam satu baris, cara paling pantas untuk menilainya bersebelahan. Sepohon pokok keluar sebagai entiti adegan atau sebagai GLB, dan mana-mana tetapan boleh disimpan sebagai praset.
Penjana tumbuhan#
Lima jenis, bunga, kelompok, herba, paku pakis, rumput, berkongsi satu batang (bilangan, ketinggian, ketebalan, lengkung, warna) dan daun (bilangan, saiz, lebar, sudut). Paku pakis menambah pasangan anak daun, sapuan anak daun dan lengkung fronda; rumput menambah bilangan bilah dan lengkung.
Sekuntum bunga adalah pilihan pada mana-mana daripadanya: kelopak, baris kelopak, panjang, lebar, gulungan, ketajaman hujung, kembangan, saiz pusat, dan tiga warna, kelopak, hujung kelopak dan pusat, dengan ketelusan dan kekasaran untuk cara cahaya menembusi daun. Tambah satu ke dalam adegan, serakkan banyak, atau eksport sebagai GLB.
Penjana batu#
Tiga jenis, batu, batu kecil, tebing, dalam tiga gaya: realistik, toon, atau low poly dengan garis luar.
Bentuk adalah hingar ke atas sebuah sfera: skala, kekuatan, oktaf, ketekunan, herotan dan satu pilihan berigi (ridged), ditambah strata dengan frekuensinya sendiri dan potongan faset dengan kedalaman dan ketajaman untuk batu bersegi. Jejari, perincian, kepipihan, variasi bentuk dan asas rata menentukan siluet, dan empat praset hakisan, segar, lapuk, semula jadi, terhakis, menggerakkan semuanya sekaligus.
Permukaan mempunyai variasi warna, urat mineral, lichen dan lumut, satu tekstur perincian dengan jubinan dan kekuatannya, pencampuran triplanar dan relief parallax. Ia menggunakan bahan Stone terbina secara lalai; hantar satu bahan daripada Matter kepada Engine untuk menggantikannya.
Kitbash, perpustakaan yang sama seperti Sculpt#
Kitbash dikongsi dengan Sculpt: panel ini dan Edit Forge milik Sculpt membaca satu perpustakaan yang sama. Sekeping yang dibina di sana boleh diletakkan di sini, dan sekeping yang dicat di sini boleh disimpan semula ke situ.
Apa yang disimpan oleh adegan ialah kepingan itu dan dimensinya, bukan verteksnya, itulah sebabnya sebuah bangunan kitbash hampir tidak mengambil apa-apa dalam fail dan boleh dikemas kini kemudian daripada sumbernya.
Persenjatai satu kepingan daripada katalog dan setiap klik kiri meletakkannya.
Tiga mod snap menentukan tempat ia mendarat: di atas terrain (kepingan
mengikut ketinggian tanah di bawahnya), di atas air (satah binaan berada
pada paras air), dan snap ke soket, bidik satu titik sambungan pada
kepingan yang diletakkan dan kepingan baharu berpaling untuk memenuhinya. Satu
rantai berkembang daripada hujung bebasnya, soket yang telah digunakan gugur
daripada calon, dan setiap klik ialah satu langkah buat asalnya sendiri.
Ctrl/Cmd kekal khusus untuk pemilihan dan Alt untuk putaran. Koleksi
mengekalkan sumber dan versinya, jadi sesuatu instans boleh dikemas kini apabila
yang asal berubah.
Editor-editor lain#
Editor dunia mengisi sebuah adegan; yang berikut memberikannya satu antara muka, satu peta, jadual kandungannya dan instrumen untuk menyemak kosnya.
Editor HUD#
Tools → Editors → UI. Enam tab, Templates, Elements, Layers, Preview, Style dan Script: di atas satu pratonton yang bertukar antara tiga saiz peranti: desktop 960×540, tablet 768×432, mudah alih 375×667.
Elemen datang dalam tiga kumpulan (Display, Data, Input) dan
bersarang: panel dan flex memuatkan anak, jadi tab Layers ialah pepohon
sebenar berbanding senarai rata. Sejarah mempunyai lima puluh langkah.
⚠️ Tab Style adalah seakan CSS, dan perbezaan itu penting. HUD dilukis
pada kanvas oleh GUI Babylon, dan CSS sebenar tidak sampai ke situ. Peraturan
yang anda tulis di sini dipetakan kepada sifat GUI; pemilihnya ialah #nama
untuk satu elemen, .jenis untuk satu jenis (.text, .panel) dan * untuk
semuanya.
Tab Script ialah cara lain untuk membina satu HUD: API ui.*, createText,
createPanel, createProgress, createButton, dengan dua cara untuk
menjalankannya. Build Layout melaksanakannya pada masa reka bentuk dan
meninggalkan elemen sebenar untuk anda laraskan dengan tangan; Run Live
menjalankannya dalam permainan.
Dua sambungan ke luar: seni HUD dibuka dalam Inkwell atau Vectra dan dipautkan semula berbanding disalin, dan satu dokumen Vectra boleh diimport sebagai elemen HUD. Elemen minimap adalah entiti tersendiri, dengan jarak, grid, dan penanda untuk pemain, musuh, sekutu, item dan objektif.
Editor tilemap#
Sebelas alat, berus, pemadam, isian, segi empat tepat, pilihan, eyedropper, cop, autotile, prop, zon dan laluan, pada empat unjuran peta: ortogon, isometrik, isometrik bertingkat dan heksagon.
Autotiling membawa empat templat, dan nombor pada setiap nama ialah bilangan jubin yang dijangkanya: Blob 47 (sudut dan tepi penuh), Wang 16 (berasaskan tepi), Simple 4 (NSEW), dan RPG Maker A2 (48 jubin, serasi dengan peta yang dibina di sana).
Dua lapisan berada di atas jubin itu sendiri. Zones melukis makna gameplay, boleh dibina, air, hutan, jalan, ladang, kediaman, komersial, disekat, dan props meletakkan objek mengikut kategori: pokok, batu, bangunan, tumbuhan, air, laluan. Peta hidup dalam pangkalan data pelayar itu sendiri, jadi satu peta yang belum disimpan terus wujud selepas muat semula.
Inventori, jadual data dan dialog#
Tiga editor yang membolehkan sebuah permainan mempunyai kandungan tanpa kandungan itu berada dalam kod.
Inventory menyunting satu katalog dan menerapkannya pada adegan. Sesuatu
item membawa tindakan, dan sesuatu tindakan ialah satu pencetus (trigger):
use, equip, unequip, ditambah salah satu daripada lapan jenis: mesej,
sembuh, kerosakan, beri, buang, peristiwa, toast, adegan. Panel itu sendiri
mempunyai tiga susun atur (grid, senarai, padat), tiga praset penampilan
(graphite, midnight, warm), dan empat slot visual, latar belakang, slot,
kelengkapan, tooltip, yang dibuka dalam modul lain untuk dilukis semula dengan
kemas.
Data tables ditaip: sesuatu lajur ialah text, number, bool atau
ref. CSV masuk dan keluar. Setiap suntingan berjalan melalui fungsi tulen,
dan itulah yang mengekalkan jadual yang ditulis oleh eksport sama seperti
jadual yang dibaca oleh binaan.
Dialogue trees ialah nod dengan seorang penutur dan satu baris. Sesuatu nod
sama ada bersambung kepada satu next, atau bercabang kepada choices,
setiap satu dengan teks dan destinasinya sendiri, suis cabang itulah satu-satunya
keputusan struktur dalam editor ini.
Animasi dan kamera#
Cinematic Sequencer membina jujukan dengan tempoh dan penanda gelung, satu trek bagi setiap entiti, dan kekunci yang ditangkap pada kepala main, Add Key mengambil nilai semasa entiti berbanding meminta anda menaipnya. Editor graf di bawahnya menunjukkan masa lawan kemajuan, dengan pemegang bulat untuk easing: kecerunan itulah kelajuan. Syot mempunyai tempoh masing-masing, dan satu pembingkaian Cinemascope (1.422:1) tersedia untuk letterbox.
Camera Tools meliputi FOV, kedudukan, sasaran, mod dan kelajuan, ditambah penanda buku (bookmarks) untuk sudut pandangan yang sering anda kembali kepadanya, dan lapisan kamera.
Audio#
Audio Manager memegang peristiwa audio, trek dan satu pengadun dengan saluran dan kategorinya. Kesan bagi setiap sumber ialah satu low-pass, satu high-pass dan satu reverb send; mod random memilih antara beberapa klip supaya bunyi berulang berhenti terdengar seperti satu gelung. Scrubbing memainkan audio semasa anda menyeret kepala main.
Profiler#
Satu pecahan bingkai, bukan pengira bingkai: render kamera, penilaian mesh, zarah, sprite dan kompilasi shader, setiap satu ditanda sebenar atau anggaran, supaya satu nombor yang datang daripada pengukuran tidak pernah disalahanggap sebagai nombor yang datang daripada satu model. Di sebelahnya, pengira: mesh dan mesh aktif, lampu, kamera, jasad fizik.
Rakaman bersifat eksplisit, dan ia berakhir dengan senarai Issues berbanding satu graf untuk ditafsir: FPS rendah, panggilan lukis tinggi, segi tiga tinggi, memori tinggi, terhadap kadar bingkai sasaran yang anda tetapkan.
Membina sebuah adegan#
Entiti#

Sebuah adegan baharu tiba dengan satu Main Camera, satu Directional Light, satu Skybox dan satu Ground Plane.

Apa yang boleh anda tambah: Empty, Cube, Sphere, Cylinder, Plane, Light, Camera, Script, Mesh, ditambah dua keluarga yang tiba sudah tersambung:
- Characters: Third-Person, First-Person (FPS), Top-Down, Platformer, Basic.
- Props: Pickup (sembuh) dan Hazard (kerosakan).
Graf adegan boleh dicari, ditapis mengikut jenis, dan menambah, menduakan atau memadam; entiti bersarang, dan menukar induk (reparenting) hanya perlu diseret. Peletakan mempunyai snap dan satu berus serakan (scatter brush) untuk mengisi tanah dengan pantas.
Inspektor#
Transform (kedudukan, putaran, skala), satu suis Enabled, dan komponen-komponen entiti itu: ditambah, ditetapkan dan dibuang di sini, dengan Add Script di bahagian bawah. Pilih beberapa entiti dan inspektor bertukar kepada suntingan kelompok, jadi satu perubahan medan mendarat pada kesemuanya.
Konsol#
Bukan sekadar satu log. Ia menapis mengikut tahap (semua, log, info, amaran,
ralat), memautkan satu mesej kembali kepada entiti yang menghasilkannya, dan
membawa satu prompt ungkapan: taip satu ungkapan, Enter menjalankannya
terhadap adegan yang hidup, anak panah menjelajahi sejarahnya.
Memberikannya kelakuan#
Tiga laluan, dan ia wujud bersama.
Skrip#
JavaScript dengan cangkuk kitaran hayat, dan rujukannya sendiri:
function start() {} // once, when the entity starts
function update(dt) {} // every frame
function fixedUpdate(dt) {} // fixed timestep, for physics
function onCollisionEnter(other) {} // first frame of contact
function onCollisionStay(other) {} // every frame while touching
function onCollisionExit(other) {} // contact just ended
function onTriggerEnter(other) {} // entered a trigger volume
function onTriggerExit(other) {}
function onMessage(msg, data, senderId) {} // entity-to-entity messaging
function onAnimationEvent(name, data) {}
function onDestroy() {}
Perlanggaran dan pencetus berlaku dalam 2D dan 3D, dan setiap pihak
menerima normal sentuhannya sendiri: other.contact.normal menuding daripada
entiti satu lagi ke arah entiti ini. Itulah yang membolehkan satu skrip
membezakan "saya mendarat di atasnya" daripada "ia jatuh ke atas saya": satu
pijakan gaya platformer membaca other.contact.normal.y > 0.5.
Editor skrip#
F2, atau Add Script pada satu entiti. Satu editor Monaco bertab, beberapa
skrip dibuka serentak, setiap satu disimpan dalam pangkalan data pelayar itu
sendiri berbanding dalam fail projek, jadi satu buffer yang belum disimpan
terus wujud selepas muat semula.
Lima dialek, satu program. Suis bahasa menawarkan JavaScript, BASIC, Python, C# dan Rust. Apa yang dilakukannya bukan seperti yang kelihatan: JavaScript adalah sumber kebenaran, dan empat yang lain ialah paparan yang ditranspil daripada JS yang disimpan. Bertukar daripada Python ke Rust tidak menterjemah Python itu, editor kembali kepada JS asal Python itu dijana dan menterjemah JS itu. Terjemahan berbilang lompatan itulah yang merosakkan sesuatu program, dan editor ini enggan melakukannya.
Tiga belas templat dalam lima kategori, setiap satu dilabel mengikut kesukaran:
| Kategori | Templat |
|---|---|
| Basics | skrip kosong dengan stub kitaran hayat |
| Movement | putaran automatik · WASD · pergerakan 3D berasaskan paksi · lompatan fizik dengan pengesanan tanah · kamera orang ketiga mengikuti |
| Gameplay | zon pencetus · bar kesihatan dengan kerosakan dan pemulihan · pemunculan bermasa |
| AI | rondaan dengan amaran kedekatan pemain |
| Advanced | babak sinematik tak segerak gaya Verse · konkurensi berstruktur · ujian keseluruhan permukaan API |
Praset pengawal watak dan prop permulaan permainan (pickup, hazard) muncul dalam senarai yang sama, cara praktikal untuk meletakkan satu pengawal yang berfungsi ke atas satu watak yang diimport.
Menjalankan dan menyahpepijat. F5 menjalankan, F9 meletakkan satu
titik henti (breakpoint). Penyahpepijat berhenti pada satu baris, melangkah
satu bingkai tunggal, dan melaporkan nilai hidup melalui ungkapan tontonan
(watch expressions). Script Lab menjalankan satu program tanpa sebarang
entiti dilekatkan langsung, satu ruang uji coba untuk API berbanding satu
komponen pada satu objek.
Di sebelah kod: satu rujukan API, satu senarai simbol untuk fail yang
dibuka, dan satu perpustakaan potongan (snippet) dengan kegemaran dan yang
terkini. Ctrl+S menyimpan, Ctrl+F mencari, Ctrl+H menggantikan, dan
editor ini membawa lapan tema.
Blueprint dan kelakuan#
Satu graf visual, satu perpustakaan kelakuan siap sedia, dan satu mesin keadaan (state machine) yang berlapis di atas timbunan kelakuan.
Graf itu membawa 267 nod dalam dua puluh dua kumpulan, Math, Scene, Entity, Animation, Flow Control, String, Events, Physics, UI, Array, Vector, Transform, Debug, Input, Utility, Game, Boolean, Camera, Tween, Variables, Audio dan keluarga 2D serta 3D. Tiga sifat memisahkannya, dan itulah yang membina graf ini: 17 nod peristiwa memulakan pelaksanaan, 117 nod tulen mengira satu nilai tanpa kesan sampingan dan tanpa pin pelaksanaan, dan 9 nod pendam (latent) selesai kemudian, itulah yang menjadikan satu kelewatan atau satu tween boleh dinyatakan tanpa satu mesin keadaan tersendiri.
Empat alat: pilih V, leret H, komen C, ubah hala (reroute) R, di atas
satu kanvas yang zum daripada 0.1× hingga 3× dengan satu minimap. Pemboleh
ubah datang dalam enam jenis, boolean, integer, float, string, vector3 dan
objek. Penerangan setiap nod berada pada tooltip-nya, satu-satunya tempat
sesuatu perpustakaan sebesar itu boleh menjelaskan dirinya.
Mesin keadaan#
Panelnya sendiri, dan sengaja bukan milik Animator: syarat Animator ialah satu enum rata dengan antara muka yang ditulis tangan bagi setiap kes, manakala yang ini berstruktur dan bercakap tentang dunia.
Tujuh syarat, dan setiap satu adalah satu soalan tentang adegan itu: sees (satu sasaran bertag dalam jarak, secara pilihan dalam satu sudut dan dalam garis pandangan), lost (tiada sasaran selama N saat), distance terhadap satu ambang, health, message received, timer (masa yang dihabiskan dalam keadaan semasa), dan flag (satu nilai pada blackboard yang dikongsi). Dua kombinator, and dan or, kedua-duanya disenaraikan walaupun or sudah wujud secara tersirat, dua peralihan kepada keadaan yang sama ialah satu or, tetapi "ia nampak saya DAN saya masih ada kesihatan" tiada bentuk langsung.
⚠️ Kesihatan dibandingkan sebagai pecahan daripada maksimum, tidak pernah secara mutlak. Satu ambang "di bawah 30 HP" tidak akan bertahan satu laluan mengimbang semula; "di bawah 0.3" bertahan.
Semasa memasuki atau meninggalkan satu keadaan, empat kesan: send satu mesej, set satu kunci blackboard, play satu klip animasi, atau lepaskan satu kesan bernama. Tiada satu pun daripadanya menggerakkan apa-apa, pergerakan kekal dengan kelakuan-kelakuan, dan mesin itu memutuskan kelakuan mana yang aktif.
Satu peralihan boleh bermula daripada *, bermaksud mana-mana keadaan.
Pengesah mengembalikan senarai masalah berbanding melontar pada masalah
pertama, jadi satu mesin separuh siap masih terlukis dan anda melihat segala
yang salah sekaligus. Kedudukan nod adalah sebahagian daripada data: satu graf
yang susun aturnya hidup di luar adegan kembali tersusun semula secara rawak
bagi orang seterusnya yang membukanya.
BASIC#
Mod viewport TXT ialah satu persekitaran BASIC klasik dengan program demo
yang disertakan, dan bahasa ini mempunyai
rujukannya sendiri. Ia adalah bahasa sebenar di sini,
bukan mainan: modul berbilang fail (#INCLUDE), numerik ditaip (integer
bertanda dan tidak bertanda 8/16/32/64-bit, float32 dan float64), rekod
bersarang, kaedah objek dengan SELF, rujukan (REF/BYREF), TRY/CATCH/
FINALLY berstruktur, kompilasi bersyarat, korutin, pemegang (handle) ditaip,
dan pengiraan WebGPU dengan storage buffer dan WGSL mentah.
OPTION EXPLICIT bersifat pilihan; pemboleh ubah tersirat klasik kekal sebagai
lalai supaya program yang diimport masih berjalan.
Bermain dan menghantar#
Main#
Play, Pause, Stop. Apabila dihentikan, satu sepanduk melaporkan apa
yang diubah oleh sesi itu, jadi satu suntingan dalam mod main tidak pernah
disimpan atau hilang secara senyap. Sesi boleh dirakam dan dimain semula
ke dalam satu laporan pepijat, dan penanda buku senario membolehkan satu
ujian permainan bermula daripada pertengahan sesuatu tahap.
Build#
Build mengambil satu jenis permainan (dikesan daripada adegan, atau ditetapkan dengan tangan: sidescroller/platformer, orang pertama/ketiga, berasaskan teks) dan satu sasaran.
- Web: WebGPU dengan sandaran WebGL, WebXR sebagai pilihan (VR/AR), minifikasi, satu pengira FPS, dan satu pilihan embed assets yang menghasilkan satu fail tunggal.
- Desktop dan mudah alih: binaan native. Adegan dieksport sebagai data
(
scene.glb+scene.json) dan dikompil melalui satu projek Bevy (Rust) yang dijana; skrip berjalan tanpa perubahan di sana pada satu runtime QuickJS terbenam.
Pemampatan boleh ditetapkan mengikut paksi, algoritma, tekstur, mesh, dengan satu praset kualiti yang mengikatnya bersama. Binaan disimpan dalam satu sejarah dengan saiznya (asal berbanding termampat) dan boleh dimuat turun semula kemudian.
Satu binaan native hanya mengandungi apa yang diketahui oleh pengeksport untuk dieksport. glTF tidak menangkap shader tersuai, thin instance, langit prosedural atau pasca-pemprosesan, jadi satu sistem runtime yang belum dipindahkan ke pihak Bevy akan hilang daripada satu binaan desktop atau mudah alih sambil kelihatan sempurna di web. Semak satu binaan native sebelum bergantung kepadanya.
Multiplayer#
Panel Multiplayer room menyambungkan sebuah adegan kepada satu pelayan permainan Colyseus. Satu pelayan ujian yang dikongsi dan percuma tersedia tanpa akaun dan tanpa konfigurasi; satu projek juga boleh diberikan pelayannya sendiri. Bilik itu dikunci pautan (keyed) oleh satu kod perkongsian yang boleh anda simpan untuk diri sendiri atau berikan kepada orang lain.
Fail yang dibaca dan ditulis#
| Format native | .engine |
| Imports | .glb, .gltf, .obj, .fbx, .png, .svg, .mp4, .webm, .mov, .scene |
| Exports | satu binaan web, satu binaan native desktop/mudah alih, scene.glb + scene.json |
Menghantar kerja ke modul lain#
Menerima mesh daripada Sculpt, Retopo dan Pigment, keseluruhan adegan daripada Render, seni piksel, animasi, set bahan PBR daripada Matter, rig 2D, projek video, imej, seni vektor, dan objek Vectra.
Menghasilkan rig 2D.
Sebuah machup skrin Vectra tiba sebagai struktur, bukan sebagai gambar. Ia menjadi satu hierarki HUD yang boleh disusun atur dan diskrip oleh Engine: perbezaan antara satu reka bentuk yang boleh anda hubungkan dengan satu tangkapan skrin bagi reka bentuk itu.
Pintasan#
Cmd/Ctrl + K mencapai perintah Engine sendiri daripada palet, bersama
perintah global. Engine juga mempunyai panel pintasan papan kekunci khusus
yang boleh dicari dalam tetapannya sendiri; ia mempunyai jauh lebih banyak
daripada yang muat pada
halaman pintasan.
Had dan masalah lazim#
- Satu viewport kosong biasanya adalah pelayar, bukan adegan. Engine memerlukan WebGL 2; semak sama ada pecutan perkakasan dihidupkan.
- Systems dan Tools berkongsi satu laci. Jika satu panel "hilang", ia mungkin berada dalam satu lagi.
- Konsol adalah tempat pertama untuk diperiksa, bukan yang terakhir: ia memautkan ralat kembali kepada entiti yang menyebabkannya.
- Satu komponen yang ditambah dalam mod main mungkin tidak bertahan selepas dihentikan. Baca sepanduk yang muncul apabila anda berhenti.
- Fizik berbeza antara 2D dan 3D pada penyelesainya walaupun panggilan balik skrip adalah sama. Satu sentuhan rehat dalam 2D dikesan dengan kulit 2 mm, kerana penyelesai itu membawa penembusan kepada tepat sifar sebelum pengesanan berjalan.