Engine
Oyun motoru: Scene Graph, bileşenler, betikleme, fizik, bir PBR pipeline'ı, dünya editörleri ve masaüstü ile mobil için native build'ler.
Kısaca#
Tarayıcıda tam bir oyun motoru: bir sahne kurun, ona davranış kazandırın, play'e basın ve onu web'e ya da native bir masaüstü ve mobil ikili dosyasına aktarın.
Engine, aukimi'nin açık ara en büyük stüdyosudur. Bu sayfa onu, özellikleri alfabetik olarak sıralamak yerine, arayüzün yaptığı gibi her panelin yaşadığı çekmeceye göre haritalandırır.
Yerleşim#

| Menü çubuğu | File · Edit · View · Windows · Run · Plugins |
| Araç çubuğu | proje adı, geri al/yinele, görüntü alanı modu anahtarı (3D · 2.5D · 2D · TXT), sahne seçici, dört panel düğmesi, FX Master, HUD, çözünürlük kutusu, transport (play, pause, stop) ve Build |
| Sol | bir simge şeridi, Scene Graph, liste, ses, console, ve açtığı panel |
| Orta | görüntü alanı, kendi gizmo çubuğuyla (taşı, döndür, ölçekle, world/local, ızgara, yapışma, çerçeveleme) ve bir kalite seçiciyle birlikte |
| Sağ | seçili varlık için inspector |
| Alt | Console ve Profiler, yan yana |
| Durum çubuğu | mod, görüntü alanı boyutu, varlık sayısı, ızgara durumu |
Dört panel düğmesi#

Hepsi aynı şekilde davranmaz ve bir şey ararken bunu bilmek işe yarar:
| Düğme | Davranış |
|---|---|
| Systems | bir çekmece açar |
| Tools | aynı çekmeceyi açar, Systems ve Tools birbirini kapatır |
| Assets | kalıcı bir dock'u açıp kapatır |
| Scripts | bir modal pencere açar |
Systems ve Tools kasıtlı olarak tek bir yeri paylaşır; bunun görülebilmesi için yan yana yerleştirilmişlerdir.
Systems#
Motorun kendi alt sistemleri: bir sahnenin sahip olduğu şeyler, üzerine inşa ettiğiniz şeyler değil.
| Grup | Paneller |
|---|---|
| Plugins | eklenti tarayıcısı |
| 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 |
Rendering#
Araç çubuğundaki FX Master anahtarı, tüm post pipeline'ı tek tıkla açıp kapatır: bunun size neye mal olduğunu görmenin en hızlı yolu budur. Tek tek: bloom, depth of field, SSR, SSAO, GTAO, SSGI, temporal AA, FXAA, motion blur, volumetric fog, contact shadows, renk derecelendirme, film grain, chromatic aberration, vignette ve tonemapping, ayrıca Nanite tarzı geometri ve Hi-Z occlusion.
Look Presets, yukarıdakilerin tam yapılandırmalarıdır. Render Style kaydı değiştirir, fotoğrafik değil stilize bir kayda geçer. Shader Lab, kendi shader'ınızı yazdığınız yerdir. Mesh LOD ve Post Process Volumes, büyük bir sahnede kendini amorti eden iki özelliktir: mesh başına level-of-detail ve yalnızca bir hacmin içinde uygulanan post-processing.
Renderer Babylon.js'tir. WebGL üzerinde başlar ve tarayıcı destekliyorsa kendini WebGPU'ya geçirir, bu başarısız olursa kendiliğinden geri döner.
Gameplay sistemleri#
Physics, hem 3D çözücüyü (Havok) hem de 2D olanı kapsar. AI & Navigation, navmesh ve üzerindeki ajanlardır. Gameplay Zones, davranış eklenmiş tetikleyici hacimlerdir. Multiplayer room, sahneyi bir Colyseus sunucusuna bağlar (aşağıya bakın).
World sistemleri#
Level Streaming, oyuncu ilerledikçe bir seviyenin parçalarını yükler ve boşaltır. Baking, aydınlatmayı önceden hesaplar; Light Probes, uzaydaki noktalarda dolaylı ışığı ve yansımaları yakalar. Decals, geometri eklemeden yüzeylere detay izdüşümü yapar.
Tools#
Üzerine inşa ettiğiniz şeyler.
| Grup | Paneller |
|---|---|
| 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 |
Dünya üreteçleri#
Terrain, Water, Sky ve dört içerik üreteci: ağaçlar, bitkiler, kayalar ve kitbash parçaları. Aşağıda kendi bölümleri var.
Oynanış yazarlığı#
Inventory, Data tables (Tools → Data) ve Dialogue Trees, bir oyunun içeriğinin kodda yaşamasına gerek kalmadan içerik sahibi olmasını sağlayan üç editördür aşağıda ayrıntılı olarak.
Animasyon#
Varlık animasyonu için Timeline, çekimler için Cinematic Sequencer ve kadraj için Camera Tools. Bkz. Animasyon ve kamera.
Dünya editörleri#
Tools → World altında yedi panel. Bir sahneyi hızlıca doldurmanın yolu bunlardır ve bir seviyenin bir modelleme oturumuyla başlamak zorunda olmamasının nedeni de budur.
Terrain#
Bir sahne birden çok terrain barındırabilir; her biri Terrains listesinde bir satırdır ve üç çözünürlükten birinde oluşturulur: 128² (hızlı), 256² (dengeli) veya 512² (detaylı).
Panelin on modu vardır ve hepsi ortak bir şeyi paylaşır: Masks'ta boyanan mask, bunların her birini kısıtlar.
| Mod | Ne yapar |
|---|---|
| Sculpt | yükseklik alanı üzerinde on yedi fırça |
| Paint | iki splatmap üzerinde sekiz doku katmanına kadar |
| Generate | gürültü, otomatik dokulandırma ve gerçek dünya yükselti içe aktarımı |
| Sketch | sırt ve vadi çiz, bunlara uyan bir terrain sentezle |
| Masks | diğer tüm modları yüzeyin bir kısmına kısıtla |
| Water | deniz seviyesi ve terrain suyu ile FFT okyanusu arasındaki seçim |
| Paths | zemine gömülü bir Bézier yolu |
| Vegetation | fırçayla veya kural tabanlı dağıtım |
| SDF | mesh'e dönüştürülmek yerine render edilen, raymarch'lanmış bir terrain |
| Biomes | tek geçişte toprak, bitki, ağaç ve kaya |
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 (kaynağı Alt tıklamasıyla ayarlarsınız), Blur B, Ramp R, ayrıca iki su
aracı: River bir akış çizer, Lake bir noktayı doldurur.
Fırçanın kendi dinamikleri vardır: basınç eğrisi, tembel fare (lazy mouse),
falloff, simetri, desen, ve hem boyutta hem de güçte jitter. Stamp, altı
şekil taşır: krater, dağ tepesi, plato, nehir vadisi, kubbe, gürültü tepesi.
Erozyon iki biçimde gelir: E fırçası yereldir, Adjustments ise tüm terrain
üzerinde hydraulic, thermal ve wind erozyonunu çalıştırır.
Paint. Sekiz katman, çünkü iki RGBA splatmap'in her biri dört kanal taşır. Malzeme kütüphanesi kategoriye göre sıralanır: çim, toprak, orman, kaya, yol ve yüzeyler, kayalık, kum, kar, volkanik, sulak alan, fantastik ve kendi malzemeleriniz; her katman UV ölçeği, displacement, bir detay haritası ve yüzey kabartması (bump gücü ve parallax derinliği) taşır. Break texture tiling (cell bombing), tekrarlanan bir zemin dokusunun bir ızgara gibi okunmasını engelleyen ayardır.
Generate, gürültüden inşa eder, ardından Generate Textures yükseklik ve eğime göre malzeme atar; kuzey/güney gölge farkı ve suyun olduğu yerlerde kum ya da çakıl kıyı şeritleriyle birlikte. Real World, kamuya açık NASA/USGS yükselti karolarını içe aktarır: bir dönüm noktası seçin veya koordinat girin, yakınlaştırmayı seçin ve panel getirdiği yükselti aralığını bildirir.
Sketch, işin diğer yakasıdır. 2D bir harita üzerinde sırt ve vadi vuruşları çizin, en fazla üç gerçek referans manzara seçin ve terrain, isteğe bağlı olarak zaten var olanla harmanlanarak, aynı geçişte otomatik dokulandırılıp erozyona uğratılarak, taslağa uyacak şekilde sentezlenir.
Masks, bir fırçayla boyanır ve sonra bir bütün olarak düzenlenir: temizle, tersine çevir, bulanıklaştır, büyüt, küçült. Smart masks, terrain'in kendisinden yükseklik, eğim, katman veya çukurluğa göre bir tane türetir.
Paths. Kontrol noktaları bırakmak için tıklayın ve içlerinden yumuşak bir eğri geçer; kehribar renkli noktaları sürükleyerek taşıyın, camgöbeği tutamaçlarla eğriyi bükün. Bake Path, altındaki zemini düzleştirir, dokuyu boyar ve setleri yükseltir.
Vegetation'ın iki yarısı vardır. Fırça, örnekleri elle yerleştirir ve kaldırır; scatter rules ise onları koşula, katman ağırlıklarına, tohuma, min/max ölçeğe ve her varlığın kabul ettiği yükseklik ve eğim bandına göre yerleştirir. Çim ve çiçekler yapılandırılabilir bir çizim mesafesinin ötesinde solar, Export to Scene ise örnekleri sahne nesnelerine dönüştürür.
Biomes, yukarıdakilerin hepsinin tek tıkla halidir: bir biyom seçin, istediğiniz kategorileri işaretleyin (toprak, ağaçlar, bitkiler ve çim, çiçekler, suya yakın yosunlar, kayalar), bir yoğunluk ayarlayın ve Apply Biome, zemini boyayıp her şeyi dağıtarak her birinden kaç örnek yerleştirdiğini bildirir. Ağaçlarda age variety, aynı ağacı her yere basmak yerine fidanlardan asırlıklara kadar bir karışım sunar ve ground blend (RVT), her kaya tabanını altındaki terrain rengiyle kaynaştırır.
SDF, farklı bir araç değil, farklı bir renderer'dır: terrain bir mesafe alanından raymarch edilir, şekil oktavlar, lacunarity ve persistence ile belirlenir, çim/kaya/kar ile bir kar sınırı ve eğim eşiği üzerinden dokulandırılır ve kendi yumuşak gölgelerine, ambient occlusion'ına ve sisine sahiptir.
Büyük terrain'lerde skirt geometrisi (seviyeler arasındaki boşlukları kapatan şey), yumuşak seviye geçişleri, frustum culling ve bir istatistik katmanı olan bir LOD sistemi vardır. Heightmap'ler 16-bit PNG, 8-bit PNG veya RAW 16-bit olarak içe/dışa aktarılır; splatmap'ler tek bir RGBA PNG veya katman başına bir dosya olarak; ve tüm terrain, ya da yalnızca ayarları, bir preset olarak.
Sky Studio#
Atmosfer. Dört gökyüzü türü: solid, gradient, HDRI ve Rayleigh ile Mie saçılması, Mie soğurması, ozon, zemin albedosu, bulanıklık, gezegen yarıçapı ve atmosfer kalınlığına sahip bir physical atmosphere.
Her şey kendi kendine döngüye girebilen time of day'e bağlıdır: yükselti, azimut ve yoğunluğuyla güneş, kendi gölge yoğunluğuyla birlikte; evresiyle ay; titreşimiyle yıldızlar; ve bir aurora. Volumetric clouds'un kalınlığı, erozyonu, gürültü ölçeği ve curl distortion'ı vardır, ve ışığı soğurma, saçılma, ambiyans ve bir powder terimi üzerinden alır; cirrus ve Belt of Venus ayrı ayrı ayarlanır. Aerial perspective, mesafeyle koyulaşan ve uzaktaki geometriyi ufuğa doğru soldurup uzaklığı belli eden sis; bir manzaranın büyük okunmasını sağlayan ayar budur.
Başlamak için on preset: clear day, dawn, sunset, dusk, night, overcast, stormy, desert, arctic ve space.
Water#
İki sekme: açık deniz için Ocean (FFT), geri kalan her şey için Shore & lakes.
⚠️ Su, Terrain editöründe oluşturulur: river ve lake araçları, ya da Show Water, ve burada ince ayarı yapılır. Bu paneli suyu olmayan bir sahnede açmak, uygulayacak hiçbir şeyi olmayan ayarlar verir.
Shore suyu renk, opaklık, dalga gücü ve hızı, choppiness, köpük genişliği ve Fresnel taşır; screen-space reflections ve refraction blur ile birlikte. Altında ise WGSL shader'ın kendisi vardır: kendi kaydırma yönleri ve hızları olan iki normal ölçeği, foam eşiği ve yumuşaklığı, refraction gücü ve kırılma indisi, ve suyun içindeki ışık: soğurma, bulanıklık, saçılma ve translucency.
Tree Generator#
İki mod: Tree ve Trunk. Bir ağaç yaprak döken ya da iğne yapraklı olabilir, fidandan asırlığa kadar bir yaşı vardır ve canlı, ölü, bir kütük ya da devrik bir gövde olabilir. Her şey tohumla belirlenir, bu yüzden Randomize seed, aynı karaktere sahip farklı bir ağaç elde etmenin en hızlı yoludur.
Şekil dal seviyesine göredir: çocuk sayısı, uzunluk, yarıçap, incelme, çarpıklık, bükülme, bölüm sayısı, segment sayısı, açı ve başlangıç yüksekliği, ayrıca doğal varyasyon, phototropism ve gravitropism: bir ağacı ışığa doğru eğdiren ve kendi ağırlığı altında sarkıtan ikisi, ve kendi gücüne sahip küresel bir kuvvet. Tabanda kök payandası (loblar ve yükseklik) ve payanda vardır.
Yapraklar tek veya çift taraflı billboard'lardır; sayı, boyut, açı, varyans, kümeleşme, kıvrılma, sarkma, parlaklık ve yuvarlatılmış normaller taşır. Kabuk altı stilde gelir: ridged, aspen, pine, birch, smooth, palm; kabartma, yosun, nemli taban, güneş solması, tepe ambient occlusion'ı ve sonbahar dönüşümüyle birlikte. Dört mevsim, tüm görünümü tek seferde değiştirir.
Forest, birçoğunu birden dağıtır: sayı, yayılma yarıçapı, ölçek varyansı ve bir yaş karışımı (tek, doğal, genç, yaşlı, eşit). Add age progression, beş yaşam evresinin tamamını art arda yerleştirir; bunları yan yana değerlendirmenin en hızlı yolu budur. Bir ağaç sahne varlığı olarak veya GLB olarak çıkar ve herhangi bir ayar preset olarak kaydedilebilir.
Plant Generator#
Beş tür: çiçek, küme, ot, eğrelti otu, çim; bir sap (sayı, yükseklik, kalınlık, eğri, renk) ve yaprakları (sayı, boyut, genişlik, açı) paylaşırlar. Eğrelti otları yaprakçık çiftleri, yaprakçık süpürmesi ve uç kavis ekler; çim ise bıçak sayısı ve kavis ekler.
Bir çiçek herhangi birinde isteğe bağlıdır: taç yaprakları, taç yaprağı sıraları, uzunluk, genişlik, kıvrım, uç keskinliği, açılma, merkez boyutu ve üç renk (taç yaprağı, taç yaprağı ucu ve merkez); yaprakta ışığın nasıl geçtiğini gösteren translucency ve pürüzlülükle birlikte. Sahneye bir tane ekleyin, birçoğunu dağıtın ya da GLB olarak dışa aktarın.
Rock Generator#
Üç tür: rock, stone, cliff; üç stilde: realistic, toon, ya da bir dış çizgiyle low poly.
Şekil, bir küre üzerindeki gürültüdür: ölçek, güç, oktav, persistence, warp ve bir ridged seçeneği, ayrıca kendi frekansına sahip strata ve köşeli taş için derinlik ve keskinliğe sahip facet cuts. Yarıçap, detay, düzleştirme, şekil varyansı ve düz bir taban silüeti belirler; ve dört erozyon preset'i (fresh, weathered, natural, eroded) hepsini birden hareket ettirir.
Yüzeyde renk varyasyonu, mineral damarları, liken ve yosun, tiling ve gücüyle bir detay dokusu, triplanar blending ve parallax kabartması vardır. Varsayılan olarak bir Stone malzemesi kullanır; onu geçersiz kılmak için Matter'dan Engine'e bir malzeme gönderin.
Kitbash, Sculpt ile aynı kütüphane#
Kitbash, Sculpt ile paylaşılır: bu panel ve Sculpt'ın Edit Forge'u tek bir kütüphaneyi okur. Orada inşa edilen bir parça buraya yerleştirilir, burada boyanan bir parça da ona geri kaydedilebilir.
Sahnenin sakladığı şey parça ve onun boyutlarıdır, vertex'leri değil; kitbash'lenmiş bir binanın dosyada neredeyse hiçbir şeye mal olmamasının ve daha sonra kaynağından güncellenebilmesinin nedeni budur.
Kataloğdan bir parça kuşanın ve her sol tıklama onu yerleştirir. Nereye
ineceğine üç yapışma modu karar verir: on terrain (parçalar altlarındaki
zemin yüksekliğini takip eder), on water (build düzlemi su seviyesinde
oturur) ve snap to sockets: yerleştirilmiş bir parçadaki bir bağlantı
noktasını hedefleyin, yenisi ona dönüp birleşir. Bir zincir kendi serbest
ucundan büyür, dolu soketler adaylardan düşer ve her tıklama kendi geri alma
adımıdır. Ctrl/Cmd seçim için, Alt ise döndürme için ayrılmış olarak
kalır. Koleksiyonlar kaynaklarını ve sürümlerini korur, böylece bir örnek
orijinali değiştiğinde güncellenebilir.
Diğer editörler#
Dünya editörleri bir sahneyi doldurur; bunlar ise ona bir arayüz, bir harita, içerik tabloları ve neye mal olduğunu kontrol edecek araçları verir.
HUD editörü#
Tools → Editors → UI. Altı sekme: Templates, Elements, Layers, Preview, Style ve Script; üç cihaz boyutu arasında geçiş yapan bir önizleme üzerinde: masaüstü 960×540, tablet 768×432, mobil 375×667.
Elements üç grupta gelir (Display, Data, Input) ve iç içe
geçebilir: panel ve flex çocuk barındırır, bu yüzden Layers sekmesi düz
bir liste değil gerçek bir ağaçtır. Geçmiş elli adım derinliğindedir.
⚠️ Style sekmesi CSS benzeridir, ve bu fark önemlidir. HUD, Babylon'un
GUI'siyle canvas üzerine çizilir ve gerçek CSS oraya ulaşmaz. Burada
yazdığınız kurallar GUI özelliklerine eşlenir; seçiciler bir eleman için
#name, bir tür için .type (.text, .panel) ve her şey için *'dır.
Script sekmesi, bir tane inşa etmenin diğer yoludur: ui.* API'si,
createText, createPanel, createProgress, createButton, iki çalıştırma
yoluyla birlikte. Build Layout, onu tasarım zamanında çalıştırır ve elle
oynayabileceğiniz gerçek elemanlar bırakır; Run Live ise onu oyunun
içinde çalıştırır.
Dışarıya iki bağlantı: HUD görseli Inkwell'de veya Vectra'da açılır ve kopyalanmak yerine geri bağlanır; bir Vectra belgesi de HUD elemanları olarak içe aktarılabilir. Minimap elemanı kendi başına bir şeydir: menzil, ızgara ve oyuncu, düşman, müttefik, eşya ve hedefler için işaretçiler taşır.
Tilemap editörü#
Dört harita projeksiyonu üzerinde on bir araç: brush, eraser, fill, rectangle, select, eyedropper, stamp, autotile, prop, zone ve path; orthogonal, isometric, staggered isometric ve hexagonal.
Autotiling, dört şablon sunar ve her isimdeki sayı, beklediği karo sayısıdır: Blob 47 (tam köşe ve kenar), Wang 16 (kenar tabanlı), Simple 4 (NSEW) ve RPG Maker A2 (orada yazılmış haritalarla uyumlu 48 karo).
Karoların kendisinin üzerinde iki katman durur. Zones, oynanış anlamı boyar: buildable, water, forest, road, farm, residential, commercial, blocked; props ise nesneleri kategoriye göre yerleştirir: trees, rocks, buildings, vegetation, water, paths. Haritalar tarayıcının kendi veritabanında yaşar, bu yüzden kaydedilmemiş bir tanesi bir yenilemeden sağ çıkar.
Envanter, veri tabloları ve diyalog#
Bir oyunun içeriğinin kodda yaşamasına gerek kalmadan içerik sahibi olmasını sağlayan üç editör.
Inventory, bir katalog düzenler ve onu sahneye uygular. Bir eşya action'lar
taşır ve bir action bir trigger'dır: use, equip, unequip, ayrıca
sekiz type'tan biri: message, heal, damage, grant, remove, event, toast,
scene. Panelin kendisinin üç düzeni (grid, list, compact), üç görünüm
preset'i (graphite, midnight, warm) ve düzgün bir yeniden çizim için başka
bir modülde açılan dört görsel yuvası vardır: background, slot, equipment,
tooltip.
Data tables tipliedir: bir sütun text, number, bool ya da ref'tir.
CSV içeri girer ve dışarı çıkar. Her düzenleme saf fonksiyonlardan geçer; bu,
export'un yazdığı tabloyu build'in okuduğu tabloyla aynı tutan şeydir.
Dialogue trees, bir konuşmacısı ve bir repliği olan node'lardır. Bir node
ya bir next'e devam eder ya da choices'a dallanır; her birinin kendi
metni ve kendi hedefi vardır: dallanma anahtarı, editördeki tek yapısal
karardır.
Animasyon ve kamera#
Cinematic Sequencer, bir süre ve bir loop bayrağı olan sekanslar inşa eder, varlık başına bir track ve playhead'de yakalanan keyframe'ler; Add Key, siz değeri yazmanızı istemek yerine varlığın o anki değerini alır. Altındaki graph editor, zamanı ilerlemeye karşı gösterir; kolaylaştırma için yuvarlak tutamaçlarıyla: eğim hızdır. Çekimlerin kendi süreleri vardır ve letterbox için bir Cinemascope kadrajı (1.422:1) mevcuttur.
Camera Tools, FOV, konum, hedef, mod ve hızı kapsar; ayrıca sürekli geri döndüğünüz bakış açıları için bookmarks ve kamera katmanları.
Ses#
Audio Manager, audio event'leri, track'leri ve kanallar ile kategorilere sahip bir mikseri barındırır. Kaynak başına efektler bir low-pass, bir high-pass ve bir reverb send'dir; bir random modu, tekrarlanan bir sesin bir loop gibi okunmasını engellemek için birkaç klip arasından seçer. Scrubbing, playhead'i sürüklerken ses çalar.
Profiler#
Bir kare sayacı değil, bir kare dökümüdür: kamera render'ı, mesh değerlendirmesi, particle'lar, sprite'lar ve shader derlemesi; her biri gerçek ya da tahmini olarak işaretlenmiştir, böylece bir ölçümden gelen bir sayı hiçbir zaman bir modelden geldiği sanılmaz. Yanında sayaçlar vardır: mesh'ler ve aktif mesh'ler, ışıklar, kameralar, fizik gövdeleri.
Kayıt açıktır ve yorumlanacak bir grafik yerine bir Issues listesiyle sonlanır: ayarladığınız hedef kare hızına karşı düşük FPS, yüksek draw call, yüksek üçgen sayısı, yüksek bellek.
Bir sahne kurmak#
Varlıklar#

Yeni bir sahne bir Main Camera, bir Directional Light, bir Skybox ve bir Ground Plane ile gelir.

Ekleyebilecekleriniz: Empty, Cube, Sphere, Cylinder, Plane, Light, Camera, Script, Mesh, ayrıca önceden bağlanmış olarak gelen iki aile:
- Characters: Third-Person, First-Person (FPS), Top-Down, Platformer, Basic.
- Props: Pickup (heal) ve Hazard (damage).
Scene Graph arama yapar, türe göre filtreler ve ekler, çoğaltır ya da siler; varlıklar iç içe geçer ve yeniden ebeveynleştirme bir sürükleme işlemidir. Yerleştirmede yapışma ve zemini hızla doldurmak için bir scatter brush vardır.
Inspector#
Transform (konum, döndürme, ölçek), bir Enabled anahtarı ve varlığın bileşenleri: burada eklenir, yapılandırılır ve kaldırılır; altta Add Script ile birlikte. Birkaç varlık seçin, inspector toplu düzenlemeye geçer, böylece tek bir alan değişikliği hepsine birden iner.
Console#
Yalnızca bir log değil. Seviyeye göre filtreler (all, logs, info, warning,
error), bir mesajı onu üreten varlığa geri bağlar ve bir expression
prompt taşır: bir ifade yazın, Enter onu canlı sahne üzerinde çalıştırır,
ok tuşları geçmişte gezdirir.
Ona davranış kazandırmak#
Üç yol, ve bunlar bir arada var olur.
Scripts#
Yaşam döngüsü kancalarına sahip JavaScript, ve kendi referansı:
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() {}
Collision'lar ve trigger'lar hem 2D'de hem 3D'de tetiklenir ve her taraf
kendi temas normalini alır: other.contact.normal, diğer varlıktan bu
varlığa doğru işaret eder. Bir betiğin "ona ben indim" ile "o bana indi"
arasındaki farkı anlamasını sağlayan şey budur: bir platformer stomp,
other.contact.normal.y > 0.5 okur.
Betik editörü#
F2, ya da bir varlıkta Add Script. Sekmeli bir Monaco editörü, birkaç
betik aynı anda açık, her biri proje dosyasında değil tarayıcının kendi
veritabanında tutulur; bu yüzden kaydedilmemiş bir tampon bir yenilemeden
sağ çıkar.
Beş lehçe, tek bir program. Dil anahtarı JavaScript, BASIC, Python, C# ve Rust sunar. Yaptığı şey göründüğü gibi değildir: JavaScript gerçeğin kaynağıdır, diğer dördü ise saklanan JS'ten transpile edilmiş görünümlerdir. Python'dan Rust'a geçmek Python'u çevirmez, saklanan Python'ın üretildiği JS'e geri döner ve onu çevirir. Çok adımlı çeviri bir programı bozan şeydir ve editör bunu yapmayı reddeder.
Beş kategoride on üç template, her biri zorluk derecesiyle etiketlenmiştir:
| Kategori | Template'ler |
|---|---|
| Basics | yaşam döngüsü taslaklarıyla boş betik |
| Movement | otomatik döndürme · WASD · eksen tabanlı 3D hareket · zemin algılamalı fizik zıplaması · üçüncü şahıs kamera takibi |
| Gameplay | trigger bölgesi · hasar ve iyileşmeli can barı · zamanlı spawner |
| AI | oyuncu yakınlık uyarısıyla devriye |
| Advanced | Verse tarzı asenkron cutscene · yapılandırılmış eşzamanlılık · tam API yüzeyi testi |
Karakter kontrolcüsü preset'leri ve oyun başlangıç props'ları (pickup, hazard) aynı listede görünür; çalışan bir kontrolcüyü içe aktarılmış bir karaktere düşürmenin pratik yolu budur.
Çalıştırma ve hata ayıklama. F5 çalıştırır, F9 bir breakpoint koyar.
Debugger bir satırda durur, tek bir kareyi ilerletir ve watch expression'lar
üzerinden canlı değerleri raporlar. Script Lab, hiçbir varlığa bağlı
olmadan bir program çalıştırır: bir nesne üzerindeki bileşen değil, API için
bir taslak defteridir.
Kodun yanında: bir API reference, açık dosya için bir sembol listesi ve
favoriler ile son kullanılanlara sahip bir snippet kütüphanesi. Ctrl+S
kaydeder, Ctrl+F bulur, Ctrl+H değiştirir ve editör sekiz tema sunar.
Blueprint'ler ve davranışlar#
Görsel bir graph, hazır davranışlardan oluşan bir kütüphane ve davranış yığınının üzerine katmanlanmış bir state machine.
Graph, yirmi iki grupta 267 node taşır: Math, Scene, Entity, Animation, Flow Control, String, Events, Physics, UI, Array, Vector, Transform, Debug, Input, Utility, Game, Boolean, Camera, Tween, Variables, Audio ve 2D ile 3D aileleri. Üç özellik onları ayırır ve graph'ın neden yapıldığı da budur: 17 event node çalıştırmayı başlatır, 117 pure node yan etkisi ve çalıştırma pini olmadan bir değer hesaplar, ve 9 latent node daha sonra biter: bunlar bir gecikmeyi veya bir tween'i kendi state machine'inize gerek kalmadan ifade edilebilir kılan node'lardır.
Dört araç: seç V, kaydır H, yorum C, reroute R; 0,1×'ten 3×'e kadar
yakınlaştıran ve bir minimap'e sahip bir canvas üzerinde. Değişkenler altı
türde gelir: boolean, integer, float, string, vector3 ve object. Her node'un
açıklaması tooltip'indedir; bu boyuttaki bir kütüphaneyi açıklayabilecek tek
yer de budur.
State machine#
Kendi paneli vardır ve kasıtlı olarak Animator'ınki değildir: Animator'ın koşulları her durum için elle yazılmış arayüze sahip düz bir enum'dur, bu paneldekiler ise yapılandırılmıştır ve dünya hakkında konuşur.
Yedi koşul, ve her biri sahne hakkında bir sorudur: sees (menzildeki etiketli bir hedef, isteğe bağlı olarak bir açı içinde ve görüş hattında), lost (N saniyedir hedef yok), bir eşiğe karşı distance, health, message received, timer (mevcut durumda geçirilen süre) ve flag (paylaşılan blackboard üzerindeki bir değer). İki birleştirici, and ve or, ikisi de listelenmiştir; or zaten dolaylı olarak var olsa bile (aynı duruma iki geçiş bir or'dur), ama "beni görüyor VE hâlâ canım var" hiçbir biçimde ifade edilemiyordu.
⚠️ Health, maksimumun bir kesri olarak karşılaştırılır, mutlak bir değer olarak asla. "30 HP'nin altında" eşiği bir yeniden dengeleme geçişinden sağ çıkmaz; "0,3'ün altında" çıkar.
Bir duruma girerken veya çıkarken dört etki: bir mesaj send, bir blackboard anahtarı set, bir animasyon klibi play, ya da adlandırılmış bir effect ateşleme. Bunların hiçbiri bir şeyi hareket ettirmez, hareket davranışlarda kalır; makine yalnızca hangi davranışın aktif olduğuna karar verir.
Bir geçiş *'tan başlayabilir, yani herhangi bir durumdan. Validator, ilkinde
patlamak yerine sorunların listesini döndürür; bu yüzden yarım yazılmış
bir makine hâlâ çizilir ve her şeyi bir kerede görürsünüz. Node konumları
verinin bir parçasıdır: yerleşimi sahnenin dışında yaşayan bir graph, onu bir
sonraki açan kişiye karman çorman geri gelir.
BASIC#
TXT görüntü alanı modu, hazır demo programlarıyla klasik bir BASIC ortamıdır
ve dilin
kendi referansı vardır. Burada gerçek bir dildir,
bir oyuncak değil: çok dosyalı modüller (#INCLUDE), tipli sayısal değerler
(işaretli ve işaretsiz 8/16/32/64-bit, float32 ve float64), iç içe kayıtlar,
SELF ile nesne metotları, referanslar (REF/BYREF), yapılandırılmış
TRY/CATCH/FINALLY, koşullu derleme, coroutine'ler, tipli handle'lar ve
storage buffer'lar ile ham WGSL içeren WebGPU compute.
OPTION EXPLICIT isteğe bağlıdır; klasik örtük değişkenler varsayılan olarak
kalır, böylece içe aktarılan programlar çalışmaya devam eder.
Oynamak ve yayınlamak#
Play#
Play, Pause, Stop. Durdurulduğunda bir banner oturumun neyi
değiştirdiğini bildirir; böylece bir play modu düzenlemesi hiçbir zaman
sessizce tutulmaz ya da kaybolmaz. Oturumlar bir hata raporuna
kaydedilebilir ve tekrar oynatılabilir, ve scenario bookmarks, bir
playtest'in bir seviyenin ortasından başlamasını sağlar.
Build#
Build, bir oyun türü (sahneden algılanan, ya da elle ayarlanan: sidescroller/platformer, first/third person, text-based) ve bir hedef alır.
- Web: WebGL yedeğiyle WebGPU, isteğe bağlı WebXR (VR/AR), küçültme, bir FPS sayacı ve tek bir dosya üreten bir embed assets seçeneği.
- Desktop ve mobile: native build'ler. Sahne veri olarak dışa
aktarılır (
scene.glb+scene.json) ve üretilen bir Bevy (Rust) projesinden derlenir; betikler orada gömülü bir QuickJS runtime'ı üzerinde değişmeden çalışır.
Sıkıştırma eksen, algoritma, doku, mesh başına yapılandırılabilir; bunları birbirine bağlayan bir kalite preset'iyle birlikte. Build'ler boyutlarıyla (orijinal ve sıkıştırılmışa karşı) bir geçmişte tutulur ve daha sonra tekrar indirilebilir.
Native bir build yalnızca exporter'ın dışa aktarmayı bildiği şeyi içerir. glTF özel shader'ları, thin instance'ları, prosedürel gökyüzünü ya da post-processing'i yakalamaz; bu yüzden Bevy tarafına aktarılmamış bir runtime sistemi, web'de kusursuz görünürken bir masaüstü ya da mobil build'de eksik olur. Ona güvenmeden önce native bir build'i kontrol edin.
Multiplayer#
Multiplayer room paneli, bir sahneyi bir Colyseus oyun sunucusuna bağlar. Hesap gerektirmeyen, yapılandırma istemeyen ücretsiz, paylaşımlı bir test sunucusu vardır; bir projeye kendi sunucusu da verilebilir. Room, kendinize saklayabileceğiniz ya da dağıtabileceğiniz bir paylaşım koduyla anahtarlanır.
Okuduğu ve yazdığı dosyalar#
| Yerel format | .engine |
| İçe aktarımlar | .glb, .gltf, .obj, .fbx, .png, .svg, .mp4, .webm, .mov, .scene |
| Dışa aktarımlar | bir web build'i, native bir masaüstü/mobil build'i, scene.glb + scene.json |
Diğer stüdyolara iş göndermek#
Kabul eder: Sculpt, Retopo ve Pigment'ten mesh'ler, Render'dan tüm sahneler, pixel art, animasyonlar, Matter'dan PBR malzeme setleri, 2D rig'ler, video projeleri, görüntüler, vektör sanatı ve Vectra nesneleri.
Üretir: 2D rig'ler.
Bir Vectra ekran maketi resim olarak değil, yapı olarak gelir. Bu, Engine'in düzenleyip betikleyebileceği bir HUD hiyerarşisi haline gelir: bağlayabileceğiniz bir tasarımla onun ekran görüntüsü arasındaki fark budur.
Kısayollar#
Cmd/Ctrl + K, palet üzerinden, küresel olanların yanında Engine'in kendi
komutlarına da ulaşır. Engine'in ayrıca kendi ayarlarında özel, aranabilir bir
klavye kısayolu paneli vardır; kısayollar sayfasına sığmayacak
kadar çok şey içerir.
Sınırlar ve sık karşılaşılan sorunlar#
- Boş bir görüntü alanı genellikle sahneden değil, tarayıcıdandır. Engine, WebGL 2 gerektirir; donanım hızlandırmanın açık olduğunu kontrol edin.
- Systems ve Tools tek bir çekmeceyi paylaşır. Bir panel "kayboldu"ysa, muhtemelen diğerinin içindedir.
- Console, bakılacak son yer değil, ilk yerdir: hataları onları üreten varlığa bağlar.
- Play modunda eklenen bir bileşen, durdurulduğunda hayatta kalmayabilir. Durduğunuzda görünen banner'ı okuyun.
- Fizik, 2D ile 3D arasında çözücüsünde farklıdır, betik callback'leri aynı olsa bile. 2D'de duran bir temas 2 mm'lik bir yüzeyle algılanır, çünkü çözücü, algılama çalışmadan önce penetrasyonu tam olarak sıfıra getirir.