ఒక సంవత్సరం అభివృద్ధి తర్వాత, కొత్త ఓపెన్ సోర్స్ గేమ్ ఇంజిన్ యాంబియంట్ యొక్క మొదటి విడుదల ప్రదర్శించబడుతుంది. ఇంజిన్ మల్టీప్లేయర్ గేమ్లు మరియు వెబ్అసెంబ్లీ ప్రాతినిధ్యానికి కంపైల్ చేసే 3D అప్లికేషన్లను రూపొందించడానికి రన్టైమ్ను అందిస్తుంది మరియు రెండరింగ్ కోసం WebGPU APIని ఉపయోగిస్తుంది. కోడ్ రస్ట్లో వ్రాయబడింది మరియు MIT లైసెన్స్ క్రింద పంపిణీ చేయబడింది.
యాంబియంట్ అభివృద్ధిలో కీలక లక్ష్యం మల్టీప్లేయర్ గేమ్ల అభివృద్ధిని సులభతరం చేసే సాధనాలను అందించడం మరియు సింగిల్ ప్లేయర్ ప్రాజెక్ట్ల కంటే వాటి సృష్టిని మరింత కష్టతరం చేయడం. వెబ్అసెంబ్లీ ఇంటర్మీడియట్ కోడ్లో సంకలనం సాధ్యమయ్యే ఏదైనా ప్రోగ్రామింగ్ భాషలలో గేమ్లు మరియు అప్లికేషన్ల అభివృద్ధికి మద్దతు ఇచ్చే యూనివర్సల్ రన్టైమ్ను రూపొందించడం ఇంజిన్ ప్రారంభంలో లక్ష్యంగా పెట్టుకుంది. అయితే, మొదటి విడుదల ఇప్పటివరకు రస్ట్ అభివృద్ధికి మాత్రమే మద్దతు ఇస్తుంది.
కొత్త ఇంజిన్ యొక్క ముఖ్య లక్షణాలు:
- నెట్వర్కింగ్ కోసం పారదర్శక మద్దతు. ఇంజిన్ క్లయింట్ మరియు సర్వర్ యొక్క విధులను మిళితం చేస్తుంది, క్లయింట్ మరియు సర్వర్ లాజిక్ను సృష్టించడానికి అవసరమైన అన్ని భాగాలను అందిస్తుంది మరియు క్లయింట్లపై సర్వర్ స్థితిని స్వయంచాలకంగా సమకాలీకరిస్తుంది. క్లయింట్ మరియు సర్వర్ వైపు ఒక సాధారణ డేటా మోడల్ ఉపయోగించబడుతుంది, ఇది బ్యాకెండ్ మరియు ఫ్రంటెండ్ మధ్య కోడ్ను బదిలీ చేయడాన్ని సులభతరం చేస్తుంది.
- అవిశ్వసనీయ కోడ్ ప్రభావాన్ని పరిమితం చేయడానికి ప్రతి మాడ్యూల్ను దాని స్వంత వివిక్త వాతావరణంలో అమలు చేయండి. మాడ్యూల్ను క్రాష్ చేయడం వలన మొత్తం అప్లికేషన్ క్రాష్ అవ్వదు.
- డేటా ఓరియెంటెడ్ ఆర్కిటెక్చర్. ప్రతి WASM మానిప్యులేట్ చేయగల భాగాల వ్యవస్థ ఆధారంగా డేటా మోడల్ను అందించడం. ECS (ఎంటిటీ కాంపోనెంట్ సిస్టమ్) డిజైన్ నమూనాను ఉపయోగించడం. సర్వర్లోని కేంద్రీకృత డేటాబేస్లో అన్ని భాగాల డేటాను నిల్వ చేయడం, దాని స్థితి స్వయంచాలకంగా క్లయింట్కు ప్రతిరూపం అవుతుంది, దాని వైపు స్థానిక స్థితిని పరిగణనలోకి తీసుకొని డేటాను విస్తరించవచ్చు.
- WebAssemblyకి కంపైల్ చేసే ఏదైనా ప్రోగ్రామింగ్ భాషలో యాంబియంట్ మాడ్యూల్లను సృష్టించగల సామర్థ్యం (ఇప్పటివరకు రస్ట్కు మాత్రమే మద్దతు ఉంది).
- Windows, macOS మరియు Linuxలో రన్ చేయగల అవుట్పుట్ యూనివర్సల్ ఎక్జిక్యూటబుల్ ఫైల్ల ఉత్పత్తి మరియు క్లయింట్ మరియు సర్వర్ రెండింటిలోనూ పని చేస్తుంది.
- మీ స్వంత భాగాలు మరియు "భావనలు" (భాగాల సేకరణలు) నిర్వచించగల సామర్థ్యం. నిర్దిష్ట ప్రాజెక్ట్లలో ఉపయోగం కోసం డేటా ప్రత్యేకంగా రూపొందించబడనప్పటికీ, అదే భాగాలు మరియు భావనలను ఉపయోగించే ప్రాజెక్ట్లు డేటా పోర్టబుల్ మరియు భాగస్వామ్యం చేయబడేలా నిర్ధారిస్తాయి.
- .glb మరియు .fbxతో సహా వివిధ ఫార్మాట్లలో వనరులను కంపైల్ చేయడానికి మద్దతు. నెట్వర్క్ ద్వారా వనరులను ప్రసారం చేసే సామర్థ్యం - సర్వర్కు కనెక్ట్ అయినప్పుడు క్లయింట్ అవసరమైన అన్ని వనరులను పొందవచ్చు (అన్ని వనరులను లోడ్ చేయడానికి వేచి ఉండకుండా మీరు ప్లే చేయడం ప్రారంభించవచ్చు). FBX మరియు glTF మోడల్ ఫార్మాట్లు, వివిధ సౌండ్ మరియు ఇమేజ్ ఫార్మాట్లకు మద్దతు ఉంది.
- రెండరింగ్ని వేగవంతం చేయడానికి GPUని ఉపయోగించే అధునాతన రెండరింగ్ సిస్టమ్ మరియు GPU-సైడ్ క్లిప్పింగ్ మరియు LODలకు మద్దతు ఇస్తుంది. డిఫాల్ట్గా భౌతికంగా ఆధారిత రెండరింగ్ (PBR)ని ఉపయోగించడం, యానిమేషన్ మరియు క్యాస్కేడింగ్ షాడో మ్యాప్లకు మద్దతు.
- PhysX ఇంజిన్ ఆధారంగా భౌతిక ప్రక్రియల అనుకరణకు మద్దతు.
- రియాక్ట్ లాంటి యూజర్ ఇంటర్ఫేస్ బిల్డింగ్ సిస్టమ్.
- ప్రస్తుత ప్లాట్ఫారమ్తో సంబంధం లేకుండా ఏకీకృత ఇన్పుట్ సిస్టమ్.
- ప్లగ్-ఇన్ ఫిల్టర్లతో కూడిన స్పేషియల్ సౌండ్ సిస్టమ్.
అభివృద్ధి ఇంకా ఆల్ఫా దశలోనే ఉంది. ఇంకా అమలు చేయని కార్యాచరణ నుండి, మేము వెబ్లో అమలు చేయగల సామర్థ్యాన్ని గమనించవచ్చు, క్లయింట్ API, మల్టీథ్రెడింగ్ని నిర్వహించడానికి API, వినియోగదారు ఇంటర్ఫేస్ను సృష్టించడానికి లైబ్రరీ, మీ స్వంత షేడర్లను ఉపయోగించడం కోసం API, సౌండ్ సపోర్ట్, లోడ్ చేయడం మరియు సేవ్ చేయడం ECS (ఎంటిటీ కాంపోనెంట్ సిస్టమ్) భాగాలు, ఫ్లైలో వనరులను రీలోడ్ చేయడం, సర్వర్ల ఆటోమేటిక్ స్కేలింగ్, గేమ్ మ్యాప్లు మరియు గేమ్ దృశ్యాలను సహ-సృష్టించడానికి ఎడిటర్.
మూలం: opennet.ru