Baada ya mwaka wa maendeleo, toleo la kwanza la injini ya mchezo wa Ambient ya chanzo huria limetolewa. Injini hutoa muda wa kutumika kwa ajili ya kuunda michezo ya wachezaji wengi na programu za 3D ambazo hukusanywa kwenye WebAssembly na kutumia WebGPU API kwa utekelezaji. Nambari hiyo imeandikwa kwa kutu na kusambazwa chini ya leseni ya MIT.
Lengo kuu la ukuzaji wa Ambient ni kutoa zana zinazorahisisha ukuzaji wa mchezo wa wachezaji wengi na kuifanya isiwe ngumu zaidi kuliko miradi ya mchezaji mmoja. Injini hapo awali ililenga kuunda wakati wa utekelezaji wa ulimwengu wote ambao unaauni uendelezaji wa mchezo na programu katika lugha yoyote ya programu ambayo inaweza kujumuisha msimbo wa kati wa WebAssembly. Walakini, toleo la kwanza kwa sasa linasaidia ukuzaji wa kutu.
Vipengele muhimu vya injini mpya:
- Usaidizi wa uwazi wa mwingiliano wa mtandao. Injini inachanganya utendaji wa mteja na seva, hutoa vipengele vyote muhimu vya kuunda mantiki ya mteja na seva, na inasawazisha kiotomati hali ya seva kwa wateja wote. Muundo wa kawaida wa data hutumiwa kwa upande wa mteja na seva, kurahisisha uhamishaji wa msimbo kati ya nyuma na mbele.
- Kila moduli huendesha katika mazingira yake ya pekee, na kupunguza athari za msimbo usioaminika. Kuacha kufanya kazi kwa moduli hakuvunji programu nzima.
- Usanifu unaozingatia data. Kutoa mfumo wa data kulingana na mfumo wa vipengele vinavyoweza kubadilishwa na kila moduli ya WASM. Kwa kutumia muundo wa ECS (Mfumo wa Vipengele vya Taasisi). Kuhifadhi data kutoka kwa vipengele vyote katika hifadhidata iliyo kati seva, hali ambayo inaigwa kiotomatiki kwa mteja, ambayo inaweza kupanua data upande wake ikizingatia hali ya ndani.
- Uwezo wa kuunda moduli za Mazingira katika lugha yoyote ya programu ambayo inajumuisha WebAssembly (kwa sasa ni Rust pekee inayotumika).
- Формирование на выходе универсальных исполняемых файлов, которые могут запускаться в Windows, macOS и Linux, и функционировать как в роли клиента, так и сервера.
- Uwezo wa kufafanua vipengele vya desturi na "dhana" (mkusanyiko wa vipengele). Miradi inayotumia vipengele na dhana sawa huwezesha kubebeka na kushiriki data, hata kama data haijaundwa mahususi kwa matumizi ya miradi mahususi.
- Usaidizi wa kukusanya rasilimali katika miundo mbalimbali, ikijumuisha .glb na .fbx. Upakuaji wa rasilimali za kutiririsha kwenye mtandao—mteja anaweza kupata nyenzo zote muhimu anapounganisha kwenye seva (unaweza kuanza kucheza bila kusubiri rasilimali zote kupakua). Fomati za modeli za FBX na glTF, pamoja na miundo mbalimbali ya sauti na picha, zinaungwa mkono.
- Mfumo wa hali ya juu wa uwasilishaji unaotumia GPU kwa ajili ya kuongeza kasi na kutumia uondoaji wa tovuti ya kutazama inayotegemea GPU na ubadilishaji wa kiwango cha maelezo. Utoaji unaozingatia hali halisi (PBR) hutumiwa kwa chaguo-msingi, na uhuishaji na ramani za vivuli vilivyopigwa zinaweza kutumika.
- Usaidizi wa kuiga michakato ya kimwili kulingana na injini ya PhysX.
- Mfumo wa kujenga kiolesura sawa na React.
- Mfumo uliounganishwa wa ingizo ambao hautegemei mfumo wa sasa.
- Mfumo wa sauti wa anga na vichujio vinavyoweza kuunganishwa.
Usanidi kwa sasa uko katika alpha. Vipengele ambavyo bado havijatekelezwa ni pamoja na uwezo wa uzinduzi wa wavuti, API ya mteja, API ya uundaji wa nyuzi nyingi, maktaba ya kuunda violesura vya mtumiaji, API ya kutumia vivuli maalum, usaidizi wa sauti, kupakia na kuhifadhi vipengele vya ECS (Mfumo wa Vipengele vya Entity), kupakia upya rasilimali mara moja, na kuongeza ukubwa kiotomatiki. seva, mhariri wa uundaji wa ramani za michezo kwa ushirikiano na mandhari za michezo.

Chanzo: opennet.ru
