Ambient բաց բազմախաղացող խաղի շարժիչի առաջին թողարկումը

Մեկ տարվա մշակումից հետո ներկայացվում է նոր բաց կոդով խաղերի շարժիչի Ambient-ի առաջին թողարկումը։ Շարժիչը տրամադրում է գործարկման ժամանակ բազմախաղացող խաղերի և 3D հավելվածների կառուցման համար, որոնք հավաքվում են WebAssembly-ի ներկայացուցչության մեջ և օգտագործում են WebGPU API-ն ցուցադրման համար: Կոդը գրված է Rust-ով և տարածվում է MIT լիցենզիայի ներքո:

Ambient-ի զարգացման հիմնական նպատակը գործիքների տրամադրումն է, որոնք կպարզեցնեն բազմախաղացող խաղերի զարգացումը և դրանց ստեղծումը ոչ ավելի դժվար, քան մեկ խաղացողի նախագծերը: Շարժիչը սկզբնապես ուղղված է ստեղծելու համընդհանուր գործարկման ժամանակ, որն աջակցում է խաղերի և հավելվածների զարգացմանը ցանկացած ծրագրավորման լեզուներով, որոնց համար հնարավոր է հավաքել WebAssembly միջանկյալ կոդի մեջ: Այնուամենայնիվ, առաջին թողարկումն առայժմ միայն աջակցում է Rust-ի մշակմանը:

Նոր շարժիչի հիմնական առանձնահատկությունները.

  • Թափանցիկ աջակցություն ցանցի համար: Շարժիչը համատեղում է հաճախորդի և սերվերի գործառույթները, ապահովում է բոլոր անհրաժեշտ բաղադրիչները հաճախորդի և սերվերի տրամաբանությունը ստեղծելու համար և ավտոմատ կերպով համաժամացնում է սերվերի վիճակը հաճախորդների վրա: Հաճախորդի և սերվերի կողմից օգտագործվում է տվյալների ընդհանուր մոդել, ինչը հեշտացնում է ծածկագրի փոխանցումը հետնամասի և ճակատի միջև:
  • Գործարկեք յուրաքանչյուր մոդուլ իր մեկուսացված միջավայրում՝ անվստահելի կոդի ազդեցությունը սահմանափակելու համար: Մոդուլի խափանումը չի հանգեցնում ամբողջ հավելվածի խափանման:
  • Տվյալների վրա հիմնված ճարտարապետություն. Տվյալների մոդելի տրամադրում, որը հիմնված է բաղադրիչների համակարգի վրա, որը յուրաքանչյուր WASM կարող է շահարկել: Օգտագործելով ECS (Entity Component System) դիզայնի օրինակը: Բոլոր բաղադրիչների տվյալները սերվերի վրա կենտրոնացված տվյալների բազայում պահելը, որի վիճակը ավտոմատ կերպով կրկնօրինակվում է հաճախորդին, որն իր կողմից կարող է ընդլայնել տվյալները՝ հաշվի առնելով տեղական վիճակը:
  • Ambient մոդուլներ ստեղծելու հնարավորություն ցանկացած ծրագրավորման լեզվով, որը հավաքվում է WebAssembly-ին (միայն Rust-ն առայժմ աջակցվում է):
  • Ելքային ունիվերսալ գործարկվող ֆայլերի ստեղծում, որոնք կարող են աշխատել Windows-ի, macOS-ի և Linux-ի վրա և գործել և՛ որպես հաճախորդ, և՛ որպես սերվեր:
  • Ձեր սեփական բաղադրիչներն ու «հասկացությունները» (բաղադրիչների հավաքածուներ) սահմանելու ունակություն։ Նախագծերը, որոնք օգտագործում են միևնույն բաղադրիչներն ու հասկացությունները, ապահովում են, որ տվյալները շարժական են և համօգտագործվում, նույնիսկ եթե տվյալները հատուկ նախատեսված չեն հատուկ նախագծերում օգտագործելու համար:
  • Աջակցություն տարբեր ձևաչափերով ռեսուրսներ կազմելու համար, ներառյալ .glb և .fbx: Ցանցով ռեսուրսներ հոսելու ունակություն. հաճախորդը կարող է ստանալ բոլոր անհրաժեշտ ռեսուրսները, երբ միացված է սերվերին (կարող եք սկսել խաղալ առանց սպասելու բոլոր ռեսուրսների բեռնմանը): Աջակցվում են FBX և glTF մոդելային ձևաչափեր, ձայնի և պատկերի տարբեր ձևաչափեր:
  • Առաջադեմ արտապատկերման համակարգ, որն օգտագործում է GPU-ն՝ արագացնելու արտապատկերումը և աջակցում է GPU-ի կողմի կտրումը և LOD-երը: Օգտագործելով ֆիզիկապես հիմնված վերարտադրությունը (PBR) լռելյայն, աջակցություն անիմացիայի և կասկադային ստվերային քարտեզների համար:
  • Աջակցություն ֆիզիկական գործընթացների մոդելավորմանը՝ հիմնված PhysX շարժիչի վրա:
  • React-ի նման օգտագործողի միջերեսի կառուցման համակարգ:
  • Ներածման միասնական համակարգ, անկախ ընթացիկ հարթակից:
  • Տարածական ձայնային համակարգ միացված զտիչներով:

Զարգացումը դեռ ալֆա փուլում է։ Դեռևս չներարկված ֆունկցիոնալությունից մենք կարող ենք նշել համացանցում գործարկելու հնարավորությունը, հաճախորդի API-ն, բազմաշերտությունը կառավարելու API-ն, օգտատիրոջ միջերեսը ստեղծելու գրադարանը, ձեր սեփական շեյդերների օգտագործման API-ն, ձայնային աջակցությունը, բեռնումը և պահպանումը: ECS (Entity Component System) բաղադրիչներ, ռեսուրսների վերաբեռնում, սերվերների ավտոմատ մասշտաբավորում, խաղի քարտեզների և խաղի տեսարանների համատեղ ստեղծման խմբագիր:



Source: opennet.ru

Добавить комментарий