Meniul

BigWorld Motor - Motoare de joc - Fișiere pentru Irodelov - Crearea de jocuri. Cum facem lumea navelor de război: Automatizarea exportului și verificarea containerului Motor BigWorld 1.9 1 Codul sursă de server

Floricultură

  • Gen orientare: 3D mmo de orice gen;
  • Platformă: PC, PS3, Xbox 360, iOS (iPad), Web;
  • Limbaj de programare: C ++, Python;
  • Licență: Indie și comercială;
  • Codul sursă open: Nu sunt furnizate sau furnizate pentru o plată sporită;
  • Multiplayer: client server;
  • Avantaje: Puternic, sprijin pentru toate cele mai moderne tehnologii, optimizate, sprijin IOS, ieftine pentru astfel de oportunități;
  • Dezavantaje: nu este furnizat gratuit;
  • Dezvoltatorii motorului: BigWorld Tech, Inc.

    Motorul BigWorld este cel mai avansat motor 3D pentru a crea jocuri MMO. Pe aceasta sunt făcute astfel de jocuri ca "World of Tanks", "PEALMUL TITANII" DE LA WARGAMING.NET și alte jocuri ale altor dezvoltatori de jocuri din clasa mondială. Există mai mult de 15 jocuri MMO pe acest motor. El este dezvoltat de tehnologia BigWorld.

    Optimizarea motorului vă permite să creați jocuri cu consum redus cu grafică uimitoare. Motorul vă permite să jucați jocuri pe iOS. Scrisă în limba de programare C ++, implementarea logicii jocului este efectuată pe un script convenabil Python. Există instrumente puternice și un motor de server client. Pentru sunet, biblioteca FMOD este acceptată și orice alte biblioteci sunt conectate printr-un sistem plug-in. Funcționează cu baze XML și MySQL. Setul de instrumente are un editor mondial puternic, editor de model și editor de particule.

    Este foarte accesibil în preț. Build BigWorld: Ediția indie costă doar 299 USD; BigWorld: ediția sursă indie - $ 2.9999; BigWorld: Ediția comercială - negociată individual.

    Acest motor avansat nu este inferior în posibilitățile altor motoare mondiale de tipul lor. Motorul este disponibil în limba rusă, coreeană, americană și japoneză. Există documentație, poate funcționa pe browsere. În general, puteți continua să lucrați dacă există cunoștințe și diligență.

    Deja nu sunt disponibile pentru licențierea terță parte, pentru că Wargaming a decis să abandoneze răspândirea motorului său.

    Site-ul oficial: http://www.bigworldtech.com.





    Lanțul BigWorld Technology Tool oferă un sistem complet de creare a conținutului MMOG, care va spori calitatea și actualitatea jocului dvs. Toate instrumentele sunt proiectate pentru producția de cooperare a bunurilor de joc într-un mediu mare de echipă, asigurând o utilizare eficientă a resurselor și o conductă de conținut netedă.

  • În această publicație, continuăm să punem întrebări dezvoltatorilor de jocuri. De data aceasta, interviu oferă Mikhail Zhidish, director tehnic al proiectului ", companie Wargaming.net..

    "Nvidia World": Care este motorul grafic utilizat în proiectul dvs.? Care sunt cerințele minime și recomandate ale sistemului? Sunt determinate de anumite caracteristici sau ați fost axat pe un anumit nivel de prevalență a cardurilor 3D? Utilizați caracteristici speciale ale celor mai recente generații de carduri grafice sau Orient la standard?

    Proiectul World of Tanks utilizează motorul grafic BigWorld cu propriile modificări care au nevoie pentru a face specificul proiectului. O caracteristică a motorului este accentul pe lumile deschise cu părți dinamic încărcate din card, cum ar fi, de exemplu, se face în lumea Warcraft. Încercăm să folosim tehnologii care vă permit să creați o imagine pe ecranul monitorului, aproape de schițele artiștilor noștri și să le adaptați la cerințele sistemului.

    "Nvidia World": Există mult diferit, din punctul de vedere al programului, placa video din NVIDIA și ATI? Este posibil doar să scrieți prin DirectX sau OpenGL și să primiți un cod eficient pentru ambii furnizori, fie pentru fiecare producător de care aveți nevoie pentru a vă face versiunile de funcții? Ce abordare ați folosit?

    M. ZH.: Cardurile video de la diverși producători au caracteristici specifice proprii. Este posibil să sprijine formate speciale de texturi sau acces la texturi de la un shader de vârf. În același timp, atunci când se utilizează o funcționalitate generală furnizată de API DirectX sau OpenGL, diferențele dintre GPU-ul a doi furnizori sunt minime și, consecințe diferența dintre cardurile video ATI și NVIDIA, sunt, mai multe caracteristici suplimentare decât orice restricții. În ceea ce privește "relația specială" de către motor, BigWorld nu oferă un avantaj decisiv pentru niciunul dintre furnizori.

    "Nvidia World": Care sunt diferențele în viteza de a juca jocuri pe cardurile NVIDIA și ATI? Este proprietatea algoritmilor motorului de joc sau mai mult depinde de scenele de joc? Aceasta este, de exemplu, într-un singur joc există scene mai pololizate, iar într-un alt indicator mare de supraîncărcare sau multe texturi translucide cu complexe anti-aliasing și prin aceste carduri video care au o filtrare mai mare, fac mai bine? ("Iubit" este programul dvs. orice arhitectură?).

    M. ZH.: Diferențele sunt reduse în principal la caracteristicile hardware (diferențele în lățimea anvelopelor de memorie, numărul de blocuri de rasterizare, blocuri de shader etc.), precum și implementarea driverelor. Cu cât este mai echilibrat sarcina pe CPU și GPU, iar cea mai bună scena este organizată, cu atât mai puțin caracteristicile plăcii video ar trebui să afecteze performanța generală. Este posibil să se ia o atitudine slabă față de numărul și rezolvarea texturilor, o supraîncărcare scăzută din particule și obiecte transparente, folosind Lod -Os, gruparea obiectelor în loturi și așa mai departe - toate acestea, în mod egal, pe umerii dezvoltatorilor de motor și Designeri de jocuri.

    "Nvidia World": La testarea cardurilor video, de regulă, sunt utilizate aproximativ aceleași seturi de jocuri. Cât de adecvată este o astfel de generalizare în rezultatele rezultatelor testelor pentru genuri diferite, cum ar fi 3D-shooters, RPG de la o terță parte și o strategie. Sunt teste de testare populare pentru performanța jocului dvs.?

    M. ZH.: Nu aș împărți aplicațiile la genuri. Totul este exclusiv în mâinile dezvoltatorilor care le utilizează algoritmi. În orice caz, dezvoltatorii încearcă să încarce sistemul de utilizator mai mult asleh și să realizeze, în timp ce atractivitatea maximă a produsului.

    Privind indicatorii FPS din jocuri, cum ar fi critica sau ultima nevoie de viteză, puteți imagina în mod obișnuit performanța într-o serie de alte jocuri moderne, așa că aici putem vorbi cu toată încrederea că aceste teste sunt destul de indicative. Jocurile acestui nivel pot fi utilizate ca punct de referință pentru carduri video, deoarece la setări de înaltă calitate, acestea încarcă subsistemul grafic la cel mai mare maxim.

    "Nvidia World": Care este sarcina asociată pe CPU cu o creștere a permisiunii? Este adevărat că o creștere a detaliilor modelelor pentru a minimiza "unghiulitatea" necesită stimulențele CPU pentru animație, tăierea primitivilor invizibili, construirea volumelor umbrelor etc. A fost un astfel de efect în jocul tău?

    M. ZH.: O creștere a rezoluției nu ar trebui să afecteze în mod direct sarcina CPU, cu excepția cazului în care, în plus, motorul nu furnizează o creștere automată a poligonalei modelelor, tessellation suplimentar și mai multe cadre de animație cadru. Dacă, cu o creștere a permisiunii, sarcina de pe CPU crește fără un motiv, problema se află fie în codul jocului, fie în driverul cardului video.

    "Nvidia World": Poate sarcina pe CPU să crească când filtrarea anizotropică este pornită? Același lucru este valabil și pentru antialiasingul complet al scenei. Dacă acest lucru necesită ca întreaga scenă să tragă într-o jumătate de rezoluție mai mare, atunci numărul de triunghiuri poate crește teoretic.

    M. ZH.: Răspunsul la ambele întrebări nu este. În cazul incluziunii de filtrare anizotropă, sarcina va crește pe blocurile de textură. Cu FSAA activat, mai multă muncă va primi un transportor de pixeli. În ceea ce privește o mai mare permisiune, atunci când se dublează numărul de pixeli de două ori, numărul de operațiuni din Shader Pixel, blocurile de rasterizare și TMU va crește.

    "Nvidia World": Deja o lungă perioadă de timp este procesul de transferare a calculelor pentru shaderele GPU, mai întâi a fost T & L, tăiere. Este considerată a fi animația modelelor de pe GPU? Ce, în primul rând, rămâne în termeni de motor 3D pentru calcule pe CPU? (Ce credeți că în GPU, în plus față de T & L?).

    M. ZH.: Motorul utilizat în proiectul nostru nu îndeplinește calcule pe GPU. Teoretic, dacă, să spunem, a trebuit să luăm în considerare fizica unui set de obiecte în timp real, am putea lua același Physx, care efectuează remarcabil calcule pe GPU NVIDIA, dar în virtutea specificului proiectului, avem suficientă procesor CPU capabilități.

    "Nvidia World": În ultimii ani, acceleratoarele video au devenit "intelectuale", folosesc metodele de tăiere a primitivilor invizibili, cum ar fi: tampon z ierarhic. Cât de eficiente sunt acestea? Este posibil să împingeți toate triunghiurile din ecranul video, astfel încât el să picteze totul însuși? În timpul primelor jocuri 3D (serii cutremur și ireal), au fost folosite metode sofisticate pentru reducerea triunghiurilor trase, a copacilor BSP etc. etc. Cât de importantă este acum?

    M. ZH.: Desigur, nu trebuie să se bazeze pe faptul că ecranul video va determina în mod independent ce obiecte ar trebui să fie desenate și care nu vor fi vizibile. Este necesar să se aplice metoda de tăiere timpurie a inutilului, deoarece transferul de informații redundante pe GPU conduce la o scădere a vitezei. Deci, problema este încă relevantă, deși într-o măsură mult mai mică. Mai ales în cazurile în care trebuie să desenezi un număr mare de obiecte variate. Faptul este că cardurile moderne sunt ocupate nu numai prin întreruperea inutilă, au fost, de asemenea, încărcate de calculele unor tipuri mai complexe de iluminare etc. În consecință, dacă aveți ocazia și resursele pentru a ajuta placa video - trebuie făcută.

    De exemplu, în motorul BigWorld, pentru a tăia obiectele invizibile în stadiul de desen, utilizați Biblioteca Umbra. Scena este un copac BSP, care vă permite, de asemenea, să renunțați rapid și eficient fragmentele scenei, fără să cunoașteți domeniul de aplicare.

    "Nvidia World": La un moment dat a existat o astfel de situație, aproximativ în timpul crizei P4, pe care un loc îngust al sistemului a fost un procesor care nu a putut "descărca" un inspector video și să crească FPS în jocuri, în primul rând necesar CPU-ul modelului de top . Există acum o dependență similară între CPU și GPU, sau procesoarele au trecut un anumit nivel critic de productivitate și pot fi luate un procesor ieftin și o placă video puternică? Sunt în minte jocul cu accent pe program, în funcție de stilul cutremurului și al doomului.

    M. ZH.: Procesorul slab cu o placă video puternic este un loc îngust al sistemului, deoarece o mulțime de operațiuni la nivel scăzut (generând conducătorul comenzilor de control al fluxului) și niveluri ridicate (logica aplicației - ciclul de joc, reînnoirea particulelor, animația caracterului, fizica , sunet etc.) depind direct de performanța CPU-ului. Un rol important este jucat de cantitatea de cache de procesor, care este destul de mică pe modele ieftine.

    Pentru cea mai eficientă funcționare a plăcii video, sunt necesare și resurse de sistem, o anvelopă de viteză a vitezei, o cantitate suficientă de berbec de viteză bună. Adesea, subsistemul video nu este capabil să arate că este capabil, pur și simplu pentru că CPU nu are timp să transfere datele necesare. Deci, dacă vine vorba de salvarea resurselor, este suficient să achiziționați un procesor mediu, placa de bază este ușor peste nivelul mediu, dar nu vă deranjează pe placa video și RAM.

    "Nvidia World": DirectX de la versiunea la versiune devine din ce în ce mai mult ca un motor grafic. Este adevărat că acum programul 3D constă aproape din apelurile API Direct3d și partea principală a calculelor se face în ea? Cum evaluați cea mai recentă versiune de DirectX? A fost aproape un motor cu drepturi depline și câte versiuni au nevoie de acest lucru?

    M. ZH.: Direct3D nu poate fi vizualizat ca un motor grafic separat și este puțin probabil, în viitorul previzibil, Microsoft va merge la un astfel de pas ca crearea propriului motor de jocuri. Acest lucru este inadecvat din mai multe motive, inclusiv în perspectiva multor diferențe în ceea ce privește cerințele pentru motorul pentru diferite proiecte de joc. De exemplu, un autosimulator, o strategie în timp real și un shooter 3D au caracteristici distinctive care nu permit același motor să utilizeze același efectiv în toate cele trei cazuri.

    În cea de-a zecea versiune a Direct3D, noile niveluri de abstractizare au apărut atunci când lucrează cu resurse și oportunități suplimentare în dezvoltarea shaderelor, astfel de trucuri au devenit disponibile ca ieșire a fluxului. În același timp, D3D a rămas la fel ca și - un API la nivel scăzut, folosind care, dezvoltatorul poate proiecta un motor de joc pentru o anumită sarcină.

    "Nvidia World": În general, "globalizarea" a motoarelor de joc și 3D are loc în ultima vreme. Există mai multe dintre cele mai populare platforme pe care sunt fabricate multe jocuri. Este un proces obiectiv? Este logic să-i scrieți propriul motor dezvoltatorului acum când puteți licențiat Full-fabricat complet. De exemplu, următoarea versiune a motorului ireal a fost publicată recent, care a fost deja descărcată de zeci de mii de ori. Cât timp rămâne până când toate jocurile folosesc unul sau două motoare 3D?

    M. ZH.: Folosim Bigworld și am fost încă mulțumiți de ei. În ceea ce privește "globalizarea", un miracol și critek, epic și un număr de alții se vor da reciproc o piesă de motoare de joc pentru a se oferi reciproc. Nu uitați că, de regulă, jocurile create pe același motor sunt foarte asemănătoare, iar acest lucru nu este întotdeauna bun. Cel mai probabil, numărul de motoare va crește doar, cu grijă într-o specializare din ce în ce mai îngustă. În orice caz, motoarele unice vor întotdeauna.

    "Nvidia World": Este adevărat că cele mai recente carduri video au devenit foarte puternice de puterea brută și, care nu diferă de modelele anterioare în ceea ce privește efectele, pot dezvălui potențialul lor, în primul rând, pe sistemele cu monitoare mari (din 1920x1200) în moduri cu anti- Aliasing și filtrare completă anizotropă? Are sens unei persoane cu un monitor, de exemplu, 1280x1024, care nu este un ventilator de filtrare și AA, să cumpere o nouă placă video, cum ar fi GTX285 și Radeon pe un nou proces tehnic?

    M. ZH.: Sunt de acord, este așa. Dar, cu toate acestea, nu trebuie să uitați de monitoare decente, cu o reproducere suficientă a culorilor, o rezoluție înaltă, contrast. Veți primi mult mai multă plăcere din joc. Dar chiar dacă decideți să nu vă schimbați monitorul preferat, merită înlocuirea cardului, deoarece va duce cu siguranță la o creștere a performanței sistemului dvs., deoarece unele dintre vechiul algoritmi de calcul pe cardurile noi sunt deja implementate hardware.

    "Nvidia World": Anterior, dezvoltatorii de jocuri au fost conservatori în utilizarea posibilităților și efectelor celor mai noi carduri video, deoarece s-au concentrat pe cele mai comune cărți. Adică, vine, de exemplu, DirectX N, și jocurile sunt încă scrise sub DirectX N-2. Situația a fost schimbată în ultima vreme? Este ușor în joc să folosim oportunități pentru noi efecte pentru videoclipurile nou promovate?

    M. ZH.: Dacă Windows 7 a ieșit cu câțiva ani mai devreme sau Microsoft a abandonat ideea de a lega DirectX 10 la Windows Vista, dezvoltatorii de jocuri s-ar fi mutat mult timp la cel puțin a zecea versiune a API. Cu toate acestea, acum avem ceea ce avem: toate colibele din ultimii ani folosesc DX9, iar sprijinul pentru DX10 este adesea un accident vascular cerebral de marketing.

    "Nvidia World": Cât de intens, de obicei, jocurile folosesc puterea celor mai noi, în momentul de ieșire, inspecții video? De exemplu, este folosit acum toate posibilitățile arhitecturii GT200? Este situația tipică atunci când la momentul ieșirii, noul GPU este doar puțin mai bun decât jocurile existente, dar în timp cu optimizarea jocurilor pentru noua arhitectură și aplicarea unor noi caracteristici, totuși, totuși, este totuși creştere? Cât de mult utilizează jocurile noi?

    M. ZH.: În cazul unei noi arhitecturi și a modelului său unificat Shader, aproape toate câștigate. Încărcarea vertexului și a transportorilor de pixeli GPU a fost ridicată acolo unde erau chiuvete mari într-o singură direcție sau altul. În ceea ce privește noi oportunități, cu atât mai mult procentul de carduri video cu sprijinul unei anumite caracteristici, cu atât mai doresc dezvoltatorii de jocuri vor folosi în proiectele lor. Folosim BigWorld Focus pe caracteristicile DirectX 9 și SM 3.0.

    "Nvidia World": Acum, marele popularitate a achiziționat jocuri online. A avut această amprentă asupra industriei inspectorilor video? Deoarece motoarele acestor jocuri sunt orientate către un set de caracteristici de bază, care este prezent într-un număr mare de utilizatori, iar indicatorii FPS sunt încă limitați la conexiunea la Internet, pare fără sens să cumpere un accelerator video de top. Este aceasta o dezvoltare de frânare a graficelor de jocuri? Creșteți popularitatea jocurilor de browser în "Full 2D", pentru care acceleratorul nu este necesar.

    M. ZH.: Dacă te uiți la numărul de abonați World of Warcraft și comparați-l, spuneți, cu Aion sau Vârsta Conan, răspunsul este evident: pentru jocuri online, în primul rând, jocul este important, studiul lumii jocului, un interesant Componenta PVP și alte puncte care nu sunt direct direct la diagramă. Nu este o frână pentru dezvoltarea grafică, deoarece nu jucători live MMORPG. New Shooters, Autosimulante și RPG vor inevitabil, și ridică în continuare grafica de calitate 3D în jocuri. MMO-jocuri încet, dar cu siguranță merge în același mod, încercând să atragă cele mai bune audiențe de jocuri. Apropo, același Blizzard, conform zvonurilor, lucrează la un nou MMOG și este puțin probabil să utilizeze un motor de expunere de 8 ani în noul lor proiect.

    "Nvidia World": Cum tehnologiile sunt SLI și Crossfire necesită sprijin din partea dezvoltatorului de jocuri? Care este diferitele eficacități asociate a acestor tehnologii pentru diferite jocuri? Cu caracteristicile motorului de joc sau cu scene de joc? Cum câștigă jocul de la utilizarea SLI și Crossfire?

    M. ZH.: Optimizați motorul pentru două plăci video este un proces foarte dificil. Este necesar să organizați cu ușurință transmisia de date compactă pe GPU și să echilibrați motorul de încărcare dintre GPU și CPU. Dacă aplicația, atunci când lucrați pe o singură carte, deja se bazează pe procesorul sau transmiterea datelor din autobuz, despre SLI sau Crossfire va trebui să fie uitat. Acest lucru, de fapt, este jocuri diferite atunci când lucrați la acceleratoarele asociate. Jocul nostru încă oferă o creștere a performanței aproximativ 10% pe SLI, dar acum optimizăm o serie de module, pentru a îmbunătăți munca în astfel de moduri.

    "Nvidia World": De mult timp, se spune despre criza pieței pentru PC și trecerea treptată a jocurilor pe console. Dar acest lucru nu sa întâmplat încă. Este posibil să vă așteptați acest lucru în viitor? Este adevărat că din cauza standardului "Fier", grafica de programare pentru console este mult mai ușoară? Sau prefixul veșnic de întârziere la nivelul "fierului" nivelului unificării?

    M. ZH.: Consolele de joc au o serie de avantaje pentru dezvoltator (o platformă, un set de caracteristici și, ca rezultat, aceeași performanță pentru toți jucătorii), dar piața jocurilor PC și, în special, jocurile online sunt în continuă creștere, Așadar, așteptați ca consola să se aștepte ca consola să merite. Nu uitați că eliberarea consolelor de joc cu un hardware mai puternic este conținută de producătorii de console, încercând să compenseze costul de a alimenta prefixele generației anterioare prin vânzarea de jocuri curente. Prin urmare, înainte de a produce PlayStation 4 sau Xbox 720, va fi o mulțime de timp și vor exista multe proiecte orientate spre generația actuală de console. În unele cazuri, cum ar fi Nintendo Wii, "Fierul" avansat se dovedește a fi deloc inutil pentru a obține un rezultat excelent.

    "Nvidia World": Este adevărat că acum în jocuri aproape dureros utilizează combinația metoda de proiecție pentru a construi umbre din modele și metoda de volum de umbră cu volume dinamic sau static calculate pentru umbre pe obiecte, modele și arme și din mișcarea unor modele de modele înșiși?

    M. ZH.: În loc de volumul umbrei, este adesea folosită aceeași tehnică de proiecție, cu modificări (cartele de umbră cascadă, o hartă separată a umbrei pentru autoapărare etc.). Volumele umbrelor oferă o limită de umbră clară, dar suferă din cauza indicatorului de umplere ridicată, calcule suplimentare pe CPU și vânzarea complexă a marginilor moi ale umbrelor.

    "Nvidia World": Metodele existente pentru construirea perspectivelor umbrelor, din punctul de vedere al luminii dinamice a clădirii întregii scene? Adică, cu creșterea treptată a puterii sursei video, ele pot fi folosite pentru a calcula întreaga lumină dinamică? Sau va necesita utilizarea unor metode noi?

    M. ZH.: Umbrele proiective au trecut destul de mult în jocurile moderne, iar modificările lor vor fi folosite pentru o lungă perioadă de timp, combinate cu efecte suplimentare, cum ar fi SSAO. Bineînțeles, dacă există un raITRERECING GRATUIT pe GPU, atunci nici proiecția, nu umbre de volum nu au nici o șansă.

    "Nvidia World": Cum evaluați tehnologia transfer de radianțe precomputați, în ceea ce privește aplicarea în jocuri? O să o folosești în viitor?

    M. ZH.: PRT necesită calcule pe termen lung, nu se combină cu modele animate și, în principiu, nu oferă avantaje mari în planul vizual, comparativ cu aceeași ocluzie ambiană. De exemplu, puteți lua Halo 3, care utilizează PRT, dar nu se evidențiază calitatea iluminării pe fundalul acelorași unelte de război sau criză.

    "Nvidia World": DirectX 11 și Fermi Architecture, este în valoare de așteptare pentru acceleratoare și jocuri DirectX 11 sau este o versiune parolă a API? Poate modelul mai tânăr direct X 11 accelerator, dând în putere absolută, rata de umplere, să fie mai bună decât un model vechi, dar mai puternic, cu suport DirectX 10? Este posibil să se aștepte, cu ieșirea arhitecturii Fermi, unele salt de înaltă calitate în programul de joc sau va fi o creștere extinsă, mai multe triunghiuri, mai multă viteză în permisiuni ridicate etc.? Dacă în momentul dezvoltării jocului dvs., Fermi a fost disponibil, cât de mult ar fi un alt joc, în ceea ce privește grafica?

    M. ZH.: Versiunea a unsprezecea a DirectX oferă mai multe caracteristici pentru calculul GPU, în comparație cu DX10, nu sunt îmbunătățiri indigene pentru grafica 3D. În ceea ce privește Fermi, cea mai interesantă caracteristică, în opinia mea, este complet controlată Tessellation pentru modelele 3D.

    Mikhail Zhidish, director tehnic al World of Tanks Project, Wargaming.net

    După premii închise ferestrele lumii de nave de război pe Gamescom și "Igromir", lansarea oficială a jocului este mai aproape și mai aproape. Acum, în plină desfășurare, a închis testarea Alpha, și pentru noi, dezvoltatorii din Lista Studio, divizia de Wargaming St. Petersburg, trebuie să rezolve o mulțime de probleme. În același timp, multe obstacole au reușit încă să plece în urmă. Mai jos este o poveste despre modul în care am adaptat exportatorul motorului nostru pentru nevoile "navelor" și am construit procesul de verificare a conținutului.

    Motorul de livrare standard

    Orice motor include un set de instrumente pentru exportatorul de modele 3D de la editori 3D la propriul său format de date. Bigworld-ul nostru, pe baza căruia se face și de lumea tancurilor, nu este o excepție. Acesta susține exporturile de 3D MAX și Maya. Aproape orice proiect de joc necesită adaptarea exportatorilor standard sub specificul proiectului. În proiectul nostru, specificul sunt modele de nave.

    Prima versiune a exportatorului adaptat de la Maya pur și simplu "a revenit" pentru ao recunoaște o structură mai complexă a scenei navelor. Un cod ușor de control pe Python a fost adăugat la codul C ++, precum și pluginul Maya cu UI pe WXWIDGET. Arăta astfel:


    UI a adaptat exportator

    Instrumentul rezultat a avut o cântărire de defecte.

    Exporturile ar putea fi exercitate numai cu participarea utilizatorului care a trebuit să "spună" exportator, care conține scena. Cu privire la utilizarea acestui instrument în automatizarea diferitelor procese, de exemplu, verificarea automată a conținutului în stadiul de asamblare a distribuției, nu ar putea exista nici un discurs.

    Exportatorul a cerut de la cunoștințele utilizatorilor despre parametrii evideni, lucrat încet, practic nu a sprijinit verificarea scenei și, de asemenea, a cerut o cantitate imensă de resurse pentru sprijin.

    Arhitectura a fost principala problemă pentru extinderea funcționalității în viitor. Exporturile au fost efectiv operațiuni atomice (un set de funcții de spaghete), care difuzează date de la o structură (descărcarea scenei Maya) la o altă structură (BigWorld) direct la fișierele fizice. Atunci când serializatoarele și logica de afaceri sunt implementate "în monolit", iar modelul de date este pur și simplu absent, este imposibil să se adauge prelucrarea datelor (Pre / post-procesare), precum și reutilizările (reutilizarea codului) și modelul de date în alte instrumente care implementează propria lor afacere -logică. Construiți procese mai complexe pentru producția de conținut a fost imposibilă.

    De-a lungul timpului, noua funcționalitate din codul existent a devenit aproape imposibilă în codul existent. Sa decis rescrierea exportatorului "de la zero", a pus o nouă arhitectură în ea.

    Harsh zile săptămânii

    Nivelul proiectului nostru a crescut cerințele pentru calitatea, complexitatea și volumul conținutului. În ultimii doi ani, studioul nostru a crescut foarte mult. Avem posibilitatea de a aloca suficiente resurse cu privire la sarcinile asociate cu producția de conținut. Am primit profesioniști cu medii excelente în dezvoltarea arhitecturii, tehnologiilor pe C ++ / C #. În același timp, pentru dezvoltatorii exportatorului, a fost prima experiență de utilizare a API Python și Maya. Acest lucru a făcut riscuri suplimentare care trebuiau să ia în considerare.

    Am evaluat exportatorul refactoring în două sau trei oameni-luni. Fără optimism în Gamedeva, este imposibil.

    Pentru riscuri, am luat:

    Lipsa cerințelor formale;
    Proprietate Python;
    Complexitatea API a maya;
    Refacerea algoritmilor pentru prelucrarea primitivi.

    Multe timp real au fost luate pentru a colecta creanțe din surse informalizate, cum ar fi dezvoltatorii care au devenit manageri, "vechi-cronometre", câmpuri de torsiune și codul exportatorului existent. Aceste morminte de cunoștințe au fost formalizate și înregistrate sub formă de cerințe, specificații și diagrame UML în confluență.

    Primele prototipuri au arătat nevoia de a utiliza conceptul de spații de nume și modulele Python (__Init__.py). De asemenea, a fost elaborat un mecanism, permițând "transparent" să folosească funcționalitatea de la bibliotecile C ++ (.pyd).

    Puteți scrie o carte separată despre complexitatea și confuzia API Maya. Orice funcționalitate necesită prototipuri, consultări cu artiști 3D și cu dezvoltatori de motoare (Rendering).

    Exportatorul standard a avut propria implementare a unui număr mare de algoritmi, de exemplu, triangularea poligoanelor, calculul matricelor de transformări ale nodurilor imbricate etc. Le-am abandonat în favoarea utilizării API-ului Maya, care a crescut foarte mult performanța exportatorului.

    Pentru legile lui Murphy, este timpul să finanțăm regula că orice proiect pe care l-ați implementat în timpul nu mai mult de "X3" de la planificat dacă nu îl lăsați.

    Rezultatul își costă eforturile. În cele din urmă, chiar artistul nostru principal responsabil pentru modelele exportatoare, după câteva luni de funcționare, au găsit exportatorul nostru "aproape perfect".

    Uită-te sub capotă

    Scripturile Python sunt utilizate în mod activ în studioul nostru. Am încercat să implementăm pe acesta și întregul exportator. În mod natural, Python nu este potrivit pentru prelucrarea datelor binare mari - cum ar fi containerele de vârf (tampon vertex), containerele indexului de vârf (tampon de index) etc. Modelul de date și serializatoarele unor astfel de recipiente au fost implementate pe C ++ ca o bibliotecă (.pyd ) care în mod natural "se potrivesc" în modelul de date de pe Python. Toată logica de afaceri a fost implementată pe Python.

    Cadrul exportatorului a fost planificat să fie aplicat nu numai pentru sarcina de export "manuală" de la Maya, ci și pentru orice sarcini în care funcționalitatea acestuia ar putea fi refolosită, de exemplu, automatizarea verificării conținutului. Din orice set de instrumente dezvoltat, avem nevoie de prezența interfețelor (API) pentru Python, linia de comandă (linia de comandă) și instrumentele UI.

    Arhitectură

    Arhitectura exportatorului este modulară, strat, strat. Există straturi fizice și logice, precum și un strat al zonei subiectului. Fiecare strat conține module separate: un model de date, logică de afaceri, serializatori, precum și convertoare care pot converti un model de date cu un strat într-un alt model de date cu strat. Straturile fizice și logice implementează, de fapt, analogul arhitecturii ORM.

    Arhitectura stratului de obiecte este proiectată pentru procesarea convenabilă a modelului de date logic de afaceri. Este complet izolat și nu conține ipoteze despre modul în care acesta va fi serializat în stocarea fizică.


    Exportator de arhitectură stratificat

    Procesul de export

    Arhitectura stratului introduce anumite caracteristici ale procesului de export. De fapt, deserializăm două (sau mai multe) modele din diverse surse (Maya și Motor BigWorld). După aceea, fugele (îmbinarea) acestor modele într-un singur nou se produce. Apoi, noul model serializează în formatul motorului BigWorld.


    Procesul de export

    Flexibilitatea procesului de producție a conținutului

    Arhitectura implementată vă permite să construiți pur și simplu procese complexe de producție a conținutului. De exemplu, modelul de navă primară constă din punct de vedere tehnologic din trei scene de maya separate, fiecare dintre acestea fiind în curs de dezvoltare simultan de diferite departamente:

    Prima scenă conține un model vizual (model vizual) și un model de coliziuni (model de coliziune).
    A doua scenă conține un model balistic (model balistic).
    A treia conține efecte ale efectelor (efecte porturi).

    În plus, setul de instrumente de motor (ediții) adaugă (modifică) propriile date în modelul derivat al formatului motorului (scena a patra).

    Exportatorul rezolvă cu ușurință sarcina non-trivială de a combina toate cele patru scene într-un rezultat al modelului navei.

    Verificarea conținutului

    Sistemul de verificare a conținutului ne permite să căutăm erori de conținut ca în fiecare strat (sursă) separat și în conținutul rezultat. Numărul de verificatori ajunge acum la mai multe duzini. Verificarea automată a conținutului este construită în procesul de asamblare a distribuției (construi), ceea ce face posibilă excluderea maximă a factorului uman și a garanta integritatea și curățenia tehnică a conținutului.


    Exemplu de verificare a modelului navei în Maya

    Bugetele de conținut și rață în baie

    O componentă importantă a procesului de verificare a conținutului este de a verifica bugetele, de exemplu verificarea bugetelor poligonale. Figura de mai jos prezintă, în special, informații despre numărul de triunghiuri pentru un model vizual pentru fiecare promoție:


    UI Plugin Maya.

    O ilustrare strălucitoare a necesității unei astfel de verificări este o bicicletă mi-a spus colegii despre unul dintre proiectele anterioare. Pe hartă a existat un complot construit fără case distruse. De îndată ce aparatul de fotografiat și-a plătit ochii spre această secțiune, FPS a scăzut imediat sălbatic. După ce a studiat problema, sa dovedit că în interiorul uneia dintre casele era o baie, în care o mică rață de "plastic" a fost înotată. Toate acestea ar arăta ca un artist amuzant de glumă, dacă nu ar fi fost pentru faptul că modelul de clarificare conține un milion de poligoane.

    În practică, este foarte dificil să se conformeze importanței bugetului. Multe modele sunt în mod obiectiv excepții. Sarcina valorii bugetului sub forma unei game, de asemenea, nu rezolvă problema, deoarece în timp, poligranul de modele începe pur și simplu să se străduiască pentru valoarea superioară a intervalului. În cazul nostru, intenționăm să schimbăm bugetele personale ale acelor modele care nu îndeplinesc bugetul standard al acestui tip de modele.

    Procesarea conținutului

    Fiecare etapă a exporturilor trebuie procesată (pre / post-procesare). De exemplu, înainte de a transforma modelul de date logic al stratului Maya în modelul zonei de date, pentru pistoalele de apărare aeriană, o pre-rotire a scheletului armei este de 45 de grade de-a lungul axei Y și îndepărtarea scheletului . Arhitectura noastră a permis să încorporeze transparent diverse prelucrări în orice etapă a exporturilor.




    Exemplu de model înainte și după pre-procesare

    X64 suport

    Recent, artiștii noștri în vrac s-au mutat cu 32 de biți Maya 2012 pe 64 de biți Maya 2014. Deoarece exportatorul este aproape complet scris în Python, nu avem aproape nici o problemă cu sprijinul lui X64. Numai o bibliotecă (.pyd), implementată pe C ++, a cerut un mic "șamanism".

    Acum, exportatorul poate fi utilizat cu ușurință atât în \u200b\u200bprocesele X32 cât și în X64, deoarece determină și încărcați ansamblul bibliotecii C ++ necesare (.pyd).

    Verificarea cardurilor

    Lucrând o arhitectură exportator, nu am putut să presupunem în prealabil, în ce alte instrumente și automatizări vor putea să o reutilizeze. Automatizarea de verificare a hărții este un exemplu al modului în care arhitectura "corectă" a exportatorului și-a găsit utilizarea într-un alt instrument.

    Verificarea cardurilor construiește și verifică graficul de dependență de la alte obiecte situate pe acesta. În special, harta utilizează modele de peisaj vizual (pietre, aisbergs), clădiri (case, hangare, dig), tehnicieni (avioane, bărci) etc.

    Caracteristica verificatorului cardului este că poate verifica nu doar prezența fișierelor acestor modele vizuale, ci și modelele înșiși folosind cadrul exportatorului. Acest lucru a făcut posibilă excluderea factorului uman atunci când Departamentul de Dezvoltare a cardurilor (LA) trebuie să "creadă pe cuvântul" Departamentul de Dezvoltare al modelelor 3D (3D Art), care este utilizat de modelele corecte din punct de vedere tehnic.

    Asamblarea distribuției

    Cadrul exportator și-a găsit aplicarea în procesul de pregătire a pachetului de conținut pentru pachetul de distribuție (pachet de conținut). În distribuție, nu ar trebui să existe modele care:

    Nu mai este folosit;
    sunt încă în etapa de dezvoltare;
    Concepute pentru versiunile ulterioare ale produsului.

    Conform listei de bază a obiectelor de joc (obiecte de joc rădăcină), este necesar să se construiască graficul de dependență pe care va fi formată o listă completă a conținutului necesar. Nu este nimic mai ușor decât să deserializați modelul folosind cadrul exportatorului și "Aflați", ce alte modele vor fi necesare (referințe de conținut).

    Rezultate

    Istoria dezvoltării exportatorului nostru a arătat cum dintr-un instrument simplu de specialitate, el a evoluat într-un sistem puternic care distruge sarcinile imediate și a găsit, de asemenea, aplicația în alte procese. Baza dezvoltării sale de succes și reutilizare este o arhitectură modulară care vă permite să utilizați "cuburi" individuale pentru a construi alte sisteme.

    În viitorul apropiat, exportatorul are un alt test asociat schimbărilor în formatul fișierelor motorului BigWorld. Suntem încrezători că arhitectura pusă nu va experimenta dificultăți și va fi capabil să mențină lucrul cu ambele formate existente și cu un nou format de fișier.

    Aveți probleme cauzate de un anumit videoclip? Apoi, această pagină vă va ajuta să găsiți rolele de care aveți nevoie. Vom face cu ușurință cererile dvs. și vă vom oferi toate rezultatele. Nu contează ce vă interesează și ceea ce căutați, vom găsi cu ușurință videoclipul necesar, indiferent de orientare ar fi.


    Dacă sunteți interesat de știrile moderne, suntem gata să vă oferim cele mai relevante rapoarte de știri în acest moment în toate direcțiile. Rezultatele meciurilor de fotbal, evenimente politice sau probleme globale, globale. Veți fi întotdeauna conștienți de toate evenimentele dacă vă bucurați de căutarea noastră minunată. Conștientizarea videoclipurilor noastre și a calității acestora nu depinde de noi, ci de la cei care le-au inundat pe Internet. Vă oferim doar ceea ce căutați și solicitați. În orice caz, utilizând căutarea noastră, veți ști toate știrile din lume.


    Cu toate acestea, economia globală este, de asemenea, un subiect destul de interesant care îngrijorează foarte mulți. O depinde destul de mult de starea economică a diferitelor țări. De exemplu, import și export, orice alimentație sau tehnologie. Același nivel de trai este direct dependent de starea țării, precum și de salariile și așa mai departe. Ce ar putea fi utile astfel de informații? Vă va ajuta să nu vă adaptați numai la consecințe, ci să vă avertizați în călătoria în una sau altă țară. Dacă sunteți un călător nedrept, atunci asigurați-vă că utilizați căutarea noastră.


    Acum este foarte dificil să înțelegeți intrigile politice și pentru înțelegerea situației de care aveți nevoie pentru a găsi și comparați o mulțime de informații diferite. Și, prin urmare, vom găsi cu ușurință diferite performanțe ale deputaților Duma de Stat și a declarațiilor lor în ultimii ani. Puteți înțelege cu ușurință politica și în situația din arena politică. Politica diferitelor țări va deveni clare pentru dvs. și veți fi cu ușurință să vă pregătiți pentru schimbări viitoare sau să vă adaptați deja în realitățile noastre.


    Cu toate acestea, puteți găsi aici nu numai diferitele știri ale întregii lumi. De asemenea, puteți găsi cu ușurință un film care va fi frumos să vezi sticla de bere sau popcorn. În baza noastră de căutare, există filme pentru fiecare gust și culoare, puteți găsi cu ușurință o imagine interesantă pentru dvs. Vom găsi cu ușurință pentru tine chiar și cele mai vechi și dificil de găsit lucrări, precum și bine-cunoscute clasice - de exemplu, Star Wars: Imperiul va provoca o lovitură de represalii.


    Dacă doriți doar să vă relaxați puțin și sunteți în căutarea unor role amuzante, atunci putem stinge și aici setea voastră. Vom găsi pentru dvs. un milion de videoclipuri diferite de divertisment de pe întreaga planetă. Bancurile scurte ridică cu ușurință starea de spirit și totuși toată ziua vor fi îmbinate. Folosind un sistem de căutare convenabil, puteți găsi exact ce vă va face.


    După cum ați înțeles deja, lucrăm fără mâini moarte, indiferent de ce ați primit exact ceea ce aveți nevoie. Am creat această căutare minunată special pentru dvs., ce ați reuși să găsiți informațiile necesare sub forma unui videoclip și să o vedeți pe un jucător confortabil.