Blender motor de joc - Andrew praohov

Blender merită considerat perla comunității Open Sources și unul dintre cele mai puternice instrumente pentru lucrul cu grafica 3D, nu numai pentru Linux, ci și pentru Windows. Dar este bine din punct de vedere al dezvoltării jocurilor? În acest articol, motorul de joc Blender Game Engine, care este o componentă încorporată a Blender, va fi revizuită.

CUPRINS

Blender motor de joc - Andrew praohov

1. Istoria dezvoltării

Această poveste Blender ar putea să se încheie, dacă nu ar exista o comunitate puternică - admiratori ai programului. În mod surprinzător, întreaga lume, în doar două luni, a primit o sumă de 100.000 de euro, care a servit ca un fel de răscumpărare pentru libertatea Blenderului. Din acest moment, dezvoltarea programului sa desfășurat în conformitate cu legile surselor deschise.

La începutul dezvoltării sa presupus că BGE (Blender Joc Engine) va doar numai platforma pentru crearea și rularea în jocurile prototip, iar cea mai mare parte a sarcinii ia Space Crystal - în toate privințele mai tech motor, de asemenea, de la Camp deschis Surse. În procesul de lucru, echipa de dezvoltare a luat decizia de a lansa jocul în ambele variante. Un fapt interesant este că opțiunea de BGE a fost mai avantajoasă, în ceea ce privește calitatea de imagini de desen, și nivelurile de saturație.

Pentru a rezolva această problemă, dezvoltatorii au trebuit să extindă și să completeze în mod semnificativ caracteristicile standard ale motorului. Și până în prezent, fiecare lansare a programului continuă să-i răsfețe pe utilizatori cu noile caracteristici ale BGE.

2. Oda la Glory BGE

Spre deosebire de principalul canon de jurnalism - abordat cu atenție și gânditor la dezvăluirea articol tema, ne-am adunat pentru a arunca pe cititor (adică tu), munte informații laudativ despre BGE și există motive.

Ce este un motor de joc? Acesta este un set de cod care vă permite să realizați - lumea grafică și fizică a jocului; suport pentru AI și mod de rețea; sunet și interfața cu utilizatorul. Luați, de exemplu, cel mai faimos motor grafic OGRE. Pe baza sa, și a lansat destul de multe jocuri comerciale, care vorbește pozitiv despre potrivirea sa pentru proiecte la scară largă. Acesta este doar unul dar este un motor GRAPHIC, nu un motor de joc. Sarcina sa este de a afișa o imagine frumoasă și de a oferi interacțiune cu utilizatorul. Desigur, datorită structurii modulare, aceasta poate fi "înșurubată" fizicii, sunetului și rețelei, dar acest lucru va necesita ore suplimentare de lucru.

Blender este mai convenabil în acest sens. În compoziția sa are un motor încorporat Bullet de fizică. suport de rețea prin scripturi Python, redare grafică cu suport complet pentru shadere.

Blender motor de joc - Andrew praohov

Orice dezvoltator mai mult sau mai puțin avansat încearcă să reducă timpul și efortul datorat masei de utilități care efectuează toate lucrările dure: redarea lightmap-ului, crearea unui peisaj, umplerea obiectelor cu nivele, scripting etc. și altele asemenea.

Puține dintre motoarele libere se pot lauda cu toate acestea, dar nu cu Blender. La dispoziția dezvoltatorului există un set de instrumente standard al programului, care permite modelarea și texturarea; plasați obiecte pe scenă și personalizați fizica; creați logică și, la sfârșitul lucrării, compilați sursele. Rețineți că toate aceste manipulări se pot face fără a scrie o singură linie de cod. Blender oferă o interfață excelentă de proiectare, unde logica jocului este configurată cu un simplu clic al mouse-ului. Cei care au puțină această posibilitate pot accesa direct API-ul motorului și pot gestiona jocul scriind scripturi Python. De fapt, pentru a crea un joc, nu este nevoie să ieșiți din program, deoarece tot ceea ce este necesar este deja acolo.

Blender motor de joc - Andrew praohov

După cum știți, foamea jucătorilor pentru inovații este cu adevărat imbatabilă: umbrele de stencil, iluminarea dinamică, cartografiere paralax, rigid și ragdol - nu mai provoacă scârțâie entuziastă, ci sunt o cerință standard. Jocurile care au ieșit cu doar cinci ani în urmă arată primitiv în comparație cu cele moderne. În consecință, motoarele de joc trebuie să introducă în timp util noi caracteristici pentru a ține pasul cu cerințele timpului și apetitului jucătorilor. Și ce zici de BGE?

Deoarece lansarea de rendering grafica Apricot (vorbim despre motorul de joc, și nu randarea standard a programului) a suferit modificări semnificative. O formă modernă a părții vizuale a jocului este imposibilă fără folosirea shaderelor. Înainte de această lansare, dezvoltatorul ar putea folosi shaderele, având în scris personalul necesar codul în limbajul GLSL, prin sprijinul Python. Cu toate acestea, acum este posibil să utilizați shaderele de materiale încorporate fără stadiul de programare. De exemplu, materialul configurat al unui obiect cu o hartă normală va fi tratat în mod egal, atât de un renderer standard, cât și de un motor în timp real. În plus, fereastra 3D a programului vă permite să vizualizați activitatea shaderelor fără a lansa direct motorul. Bineînțeles, este posibil să se scrie propriile proceduri pentru GLSL. Deci deja există o bună selecție de programe shader, adaptate special pentru BGE (poate fi găsit pe forumul comunității Blender - www.blenderartists.org).

De la versiunea 2.49 Blender a achiziționat o nouă versiune a Bullet-ului motorului fizic. Interesant, multe dintre caracteristicile sale gustoase au fost disponibile pentru modul de joc. Procesarea în timp real a efectelor corpului moale, corpul rigid pune BGE cu un pas mai mare față de marii monștri ai motoarelor de jocuri comerciale ale industriei. Deși Blender este poziționat ca mijloc de dezvoltare a jocurilor tridimensionale, noua versiune are un mod de funcționare a motorului fizic în spațiul bidimensional, care, potrivit dezvoltatorilor programului, poate stimula interesul pentru crearea jocurilor casual.

Blender motor de joc - Andrew praohov

Recent, în jocurile moderne, a devenit la modă utilizarea post-procesării unei imagini deja redate. Exemple sunt jocurile seriei NFS sau aceleași Constantine. Amintiți-vă efectul post-ars în primul exemplu sau inferioritatea iadului în al doilea?

Blender permite, de asemenea, utilizarea postprocesării, care în terminologia sa se numește filtru. Această inovație a apărut o serie de lansări înapoi, iar acum, de la o versiune la alta, colecția de filtre crește. Fie ca în acest moment numărul lor să fie calculat în zeci, dar în absența programatorului necesar, puteți scrie propriul dvs.

Blender motor de joc - Andrew praohov

3. Ce se întâmplă în practică?

Blender motor de joc - Andrew praohov

Cu toate acestea, nu vă grăbiți de pe urma BGE! Să ne dăm seama pentru ce jocuri se poate folosi și unde este nedorită. Este clar că pentru genuri, cum ar fi o strategie bazată pe turn sau quest-ul nu este o critică extrem de scăzută, astfel încât să puteți folosi toate posibilitățile BGE la maxim, dar jocurile de acțiune activă ar trebui discutate mai detaliat.

Pentru a salva fps-uri prețioase, este util să folosiți obiecte create dinamic.
De obicei, pentru originale este folosit un strat separat. De asemenea, trebuie să ștergeți obiectele.

Luați în considerare primul shooter. Există trei tipuri de împușcături, din punct de vedere al mediului - interior (spațiu interior), exterior (spațiu deschis) sau mixt. Se pare că este clar că jocul cu acțiune în interior este mult mai ușor de calculat greșit decît cu un spațiu vast. Problema constă în faptul că este nerealist să încărcați imediat tot spațiul în memoria mașinii. De obicei, motoarele de jocuri, optimizate pentru a lucra cu un peisaj deschis, pot funcționa cu o așa-numită încărcare a paginii, adică atunci când zona de joc este împărțită în sectoare și la momentul potrivit, kernelul încarcă blocul necesar și este invizibil pentru utilizator. Din păcate, BGE nu este capabilă să facă acest lucru. Desigur, puteți împărți spațiul manual în zone și salvați-le în fișiere sau scene de proiect separate, dar nu veți putea să prelungiți peisajul neobișnuit. Aici ne confruntăm cu lipsa unui lucru atât de necesar ca un portal. Cu toate acestea, dacă nivelul cu spațiu liber este relativ mic - opțiunea cu fișiere scene individuale este destul de potrivită.

Următoarea problemă este fizica. BGE este capabil să lucreze cu coliziunile obișnuite, corpul moale, corpul rigid, particulele. Toate acestea sunt la un nivel destul de modern. Dar, cu un număr mare de obiecte cu proprietăți fizice, o scădere a vitezei este inevitabilă. Dezvoltatorii în cea mai recentă versiune a programului 2.49, la momentul redactării, au optimizat în mod semnificativ codul asociat cu calculul fizicii. Funcționează foarte repede, dar nu este suficient pentru un joc activ. Rezultatul poate fi în dezactivarea fizicii pentru acele obiecte care au fost deja elaborate conform scenariului. Versiunea 2.49 are funcțiile necesare pentru a gestiona starea de fizică, care este disponibilă atât din script-uri, cât și din blocuri logice.

BGE poate roti cu ușurință scene cu sute de mii de poligoane. Dar adăugați aici calculele fizicii, prelucrarea texturilor, logica și eroul dvs. se vor mișca cu viteza broasca țestoasă. Utilizați modelul low-poly cu harta normală. Deoarece astfel de calcule sunt asumate de cipul grafic, procesorul va fi lansat pentru mai multe sarcini importante.

O anumită complexitate poate oferi caracteristicile licențierii Blender, deși numai dacă jocul ar trebui să fie comercial și fără a deschide o sursă. Rețineți că licența GNU GPL necesită utilizarea, distribuirea sau modificarea gratuită a codului programului. În cazul conținutului creat în Blender - este proprietatea creatorului, care îl poate distribui sau vinde pe orice termen, inclusiv sub o altă licență. Dar codul compilat de Blender intră sub licența curentă GPL. Se pare că îl poți vinde doar cu disponibilitatea de surse deschise. Desigur, în unele cazuri este incomod. Ieșirea poate servi drept opțiune solicitată de dezvoltatorii Blender - folosiți codul original numai pentru a încărca fișierul principal de amestec (la urma urmei, fișierul proiectului este proprietatea creatorului său). Dar se pune următoarea întrebare: cum pot ascunde conținutul unui fișier de proiect de ochii curioși?

4. Concluzie

Este importantă posibilitatea implementării proiectului fără a lăsa programul în sine. Și setul de tehnologii propuse este foarte impresionant: particule, panouri, lumini dinamice și umbre; umbre colorate; sistem avansat de fizică și script; suport pentru sunet și rețea; designer grafic; șireturi personalizate și personalizate; cross-platform.

Se pare că acest program și motorul său sunt potrivite nu numai pentru începători, ci și pentru dezvoltatorii avansați de jocuri. Încercați - nu veți regreta!

Blender motor de joc - Andrew