Curios despre dezvoltarea jocurilor 3D? Acum este momentul să înveți! Această serie de tutori din cinci părți va demonstra cum să construiți un joc simplu cu ShiVa3D Suite, un motor de joc cu platforme 3D și un instrument de dezvoltare. Această serie a fost inițial destinată numai membrilor Tuts + Premium, dar va fi în mod gratuit acordată comunității pentru fiecare porție publicată înapoi în spate în următoarele 5 zile. Citiți mai departe pentru a începe călătoria dvs. în programarea 3D!
În această serie de tutori, vom introduce dezvoltarea jocului 3D pentru platforma Android folosind ShiVa3D Suite. Dezvoltarea unei aplicații Android cu grafică 3D poate fi o provocare din mai multe motive. Dezvoltatorii ar trebui să fie familiarizați cu OpenGL API și API-ul Android specific care îl acceptă. De asemenea, dezvoltarea grafică 3D poate include codul nativ C / C ++ din motive de performanță, în plus față de codul Java / Obiectiv-C. Acest lucru crește nivelul de cunoștințe și efort necesar pentru dezvoltarea unei aplicații 3D Android. În plus, crearea graficii 3D implică o experiență unică independentă de competența de programare Java sau C / C ++. În concluzie, dezvoltarea aplicațiilor 3D necesită abilități avansate din diferite discipline.
ShiVa3D Suite este un set de instrumente concepute pentru a dezvolta aplicații 3D multi-platformă. Aceste instrumente ușurează proiectarea și compunerea aplicației pe baza unor sarcini și concepte specifice. De exemplu, puteți separa un model vizual vizual de comportamentul său și puteți lucra independent asupra acelor aspecte. În plus, dezvoltarea jocului în Suite ShiVa3D permite abstractizarea jocului de pe platforma țintă. Jocurile dezvoltate cu această suită pot fi implementate în mai multe platforme țintă, inclusiv Windows, iOS și Android OS printre altele.
Acest tutorial oferă un exemplu de dezvoltare a unui joc 3D pentru platforma Android utilizând două elemente principale ale suitei ShiVa3D, Editorului ShiVa și Instrumentului de creație ShiVa. Sistemul de operare țintă al acestei aplicații tutorial este Android 3.2 (Honeycomb). Cu toate acestea, vom oferi, de asemenea, o discuție despre cum să porți jocul pe dispozitive iOS, cum ar fi iPhone / iPod Touch și iPad / iPad2.
Acest tutorial a fost organizat ca o serie de 5 părți. În partea 1, vom introduce aplicația tutorial, vom discuta diferite concepte ShiVa3D și instrumentele principale din ShiVa3D Suite. În partea 1, vom explica, de asemenea, fișierele din arhiva de descărcare care însoțește acest tutorial. În partea a 2-a, vom începe să descriem cum să dezvoltăm jocul folosind editorul ShiVa. Vom introduce modulele Editor ShiVa utilizate în dezvoltarea aplicației tutorial. Apoi, vom vorbi despre fișierele modelului Collada reprezentând caracterele principale din aplicație. În cele din urmă, vom discuta câțiva pași inițiați pentru crearea aplicației, cum ar fi crearea jocului și a scenei, precum și importul modelelor Collada.
În partea a 3-a, vom arăta cum să editați scena aplicației noastre. De asemenea, vom începe să introduceți codul pentru modelele AIM ale jocului. În partea a 4-a, vom termina codarea pentru restul AIModelurilor și vom efectua testarea unităților prin animarea jocului. Apoi vom exporta jocul din ShiVa Editor pentru a fi importat în Shiva Authoring Tool. În cele din urmă, vom discuta două opțiuni de autorizare diferite în Instrumentul de editare Shiva, unul pentru generarea unui executabil Android și altul pentru generarea unui proiect Eclipse.
În partea a 5-a, vom începe prin personalizarea jocului în Eclipse. Aceasta va include configurarea proiectului Eclipse, modificările de cod și construirea codului Java și a bibliotecilor native. În acest moment, vom fi finalizat tutorialul în ceea ce privește dezvoltarea și implementarea. În restul părții 5 vom examina codul, vom discuta cum să portăm jocul pe dispozitivele iOS și să dăm câteva remarci finale.
Modelul Collada și fișierele imagine asociate pentru rața galbenă pentru cadă, precum și modelul Collada pentru ou sunt datorate de Sony Computer Entertainment Inc. Aceste modele au fost descărcate din secțiunea Basic Samples a modelului collada.org Model Bank și sunt licențiate în condițiile licenței Sursă partajată SCEA.
Textura "marmură" utilizată în fundal a fost descărcată de pe http://www.texturewarehouse.com și este licențiată sub licența Creative Commons License, Attribution-Noncommercial-ShareAlike 2.0.
Autorul a beneficiat foarte mult de o carte despre ShiVa3D, intitulată Introducere în programarea 3D cu ShiVa®. În plus, codul de gestionare a evenimentelor multitouch explicat în "Review Code" a împrumutat o tehnică introdusă într-un tutorial de pe site-ul dezvoltatorului ShiVa3D, numit Multitouch Management.
Jocul începe cu un ecran de pornire care afișează personajele principale ale jocului: o rață de cadă galbenă în prim-plan și un ou în spatele acesteia, după cum se arată mai jos.
Apoi, ecranul principal al jocului apare cu două obiecte, rața și oul. Rasa face o mișcare unghiulară într-un spațiu 3D pe un plan fix definit de y = 3. Oul se poate deplasa numai de-a lungul unei linii drepte definite de x = 0, y = 3. Mișcarea rață și ou în axele globale x, y, z este prezentată mai jos.
În același timp, rața se rotește în jurul axelor sale locale x, y, z, independent de rotația sa globală, după cum se arată mai jos.
În mod similar, Oul se întoarce în jurul axei sale locale x independent de mișcarea sa globală (vezi mai jos).
Mișcarea (globală) a oului de-a lungul căii liniare poate fi controlată prin acțiunea unică a utilizatorului de pe ecran. Dacă degetul utilizatorului se mișcă de la stânga la dreapta, atunci oul se mișcă în direcția negativă z. Dimpotrivă, dacă degetul utilizatorului se mișcă de la dreapta la stânga, atunci oul se mișcă în poziția z pozitivă. (Vezi mai jos.)
Din geometria din Figura 2, observați că calea liniară care descrie mișcarea globală a ouălor se află pe planul fix pe care rața face mișcarea globală. Prin urmare, rața și oul se pot ciocni la cele două puncte de intersecție definite de calea liniară a ouăi și de calea unghiulară a raței. Punctele de coliziune sunt prezentate în diagrama de mai jos.
Dacă rața și oul se ciocnesc, rotația raței va schimba direcția, de la sensul acelor de ceasornic până la cealaltă, sau invers.
Scopul jocului este de a coliza oul și rața de câte ori este posibil. De fiecare dată când apare o coliziune, scorul utilizatorului afișat în colțul din dreapta jos al ecranului va crește. De asemenea, dispozitivul Android va vibra pe o durată de 100 de milisecunde.
Utilizatorul poate reporni jocul prin aplicarea unei acțiuni dublu de atingere (de exemplu, deplasarea a două degete pe ecran) după cum se arată mai jos.
Înainte ca aplicația să repornească, se afișează un mesaj informațional timp de o secundă, după cum se arată mai jos.
Când aplicația se repornește, pozițiile rață și oul și scorul inițial sunt toate resetate.
În această secțiune, vom discuta despre conceptele de bază ale dezvoltării jocurilor 3D cu ShiVa3D. Majoritatea discuțiilor de aici sunt împrumutate din documentația originală ShiVa3D. Pentru mai multe informații, consultați http://www.stonetrip.com/developer/doc/ și manualul de utilizare livrat împreună cu editorul ShiVa.
Joc reprezintă un joc, entitatea principală a aplicației. Încapsulează tot ceea ce este în aplicație, cum ar fi camerele, scenele, modelele etc. Jocul este o unitate de desfășurare independentă.
Scenă reprezintă un loc sau o viziune asociată jocului. Există un set de obiecte sau modele asociate unei scene. Un joc poate avea mai mult de o scenă. Pentru simplitate, jocul din aplicația tutorial are o singură scenă.
aparat foto reprezintă un punct de vedere în joc. Utilizatorul va vedea jocul prin camera. O cameră poate trece de la o poziție la alta sau poate fi schimbată direcția acesteia. În tutorialul nostru, camera va rămâne fixă.
Model este un obiect sau un set de obiecte cu diferite atribute, cum ar fi forma, lumina și senzorul. În jocul nostru există două modele: o rață și un ou. Acestea sunt obiecte tridimensionale cu un anumit "rol" în jocul nostru. Fiecare rol al rață și ou are propriul AIModel (vezi mai jos) pentru a descrie acest rol prin cod.
AIModel implică "inteligență artificială" și reprezintă comportament. Un AIModel ar putea fi asociat cu un utilizator care joacă jocul sau un obiect în joc. În acest tutorial, vom folosi doar obiectele AIModels. Un AIModel poate avea funcții, manipulatoare, stări și variabile pentru a descrie comportamentele specifice.
scenariu conține codul într-un AIModel, de exemplu, codul pentru o funcție sau un manipulator. Limba de scripting în ShiVa3D este Lua. (Http://www.lua.org)
Senzor pot detecta anumite evenimente fizice. În jocul nostru, rața și oul au senzori de coliziune pentru a detecta o coliziune. Când un senzor detectează un eveniment, acesta poate fi manipulat de către dispozitivul de tratare a evenimentelor corespunzător din AIModelul asociat obiectului care conține senzorul.
HUD înseamnă "afișare în sus" și este un termen folosit pentru a reprezenta widget-uri de interfață cu utilizatorul, cum ar fi butoane, etichete, liste și glisoare, permițând utilizatorului să interacționeze cu jocul. Singurele componente HUD pe care le vom folosi în jocul nostru sunt etichetele de text.
Pentru a dezvolta aplicația noastră tutorial vom folosi versiunea gratuită a ShiVa3D Suite (http://www.stonetrip.com/download.html), care include ShiVa Editor PLE (ediția personală de învățare) și ShiVa Authoring Tool. Diagrama de mai jos oferă o prezentare generală a procesului de dezvoltare pe care l-am folosit cu aceste instrumente.
Să discutăm pașii individuali ai acestui proces.
Editorul ShiVa are diverse componente pentru dezvoltarea și testarea unui joc 3D de la zero. O caracteristică importantă a Editorului ShiVa este că un joc dezvoltat cu acest instrument poate fi implementat (după ce a fost autorizat în ShiVa Authoring Tool) pe diferite dispozitive cu diferite sisteme de operare (de exemplu, un PC care rulează Windows OS sau o tabletă cu sistem de operare Android sau iPhone).
Unele dintre acțiunile de bază pe care le puteți efectua cu editorul ShiVa sunt următoarele.
Scopul principal al instrumentului Shiva Authoring Tool este de a converti un joc creat prin ShiVa Editor într-o aplicație care poate fi implementată într-un anumit dispozitiv (de exemplu, un iPhone, iPad sau tabletă Android). Anumite restricții se aplică în ceea ce privește sistemul de operare al mașinii care rulează Shiva Authoring Tool și dispozitivul țintă pentru conversie. De exemplu, instrumentul Shiva Authoring Tool care rulează pe o mașină Windows nu poate genera o aplicație iPad sau iPhone. În acest tutorial, am folosit un PC Windows ca mașină de dezvoltare și platforma țintă este Android. Informațiile de mai jos se aplică acestui mediu particular.
Unele dintre acțiunile de bază pe care le puteți realiza cu instrumentul Shiva Authoring Tool sunt următoarele.
Notă: Pentru fiecare tip de autor, există două opțiuni de construire: Distribuție și dezvoltare. În acest tutorial, vom discuta doar despre tipul de dezvoltare.
Se poate personaliza jocul în Eclipse după cum urmează.
Pentru a utiliza ShiVa Authoring Tool în mediul Windows pentru dezvoltare Android, am folosit următorul software pre-requisite. Rețineți că Eclipse și ADT pentru Eclipse sunt necesare numai dacă doriți să generați un proiect Eclipse pentru personalizarea codului. Pentru detalii, consultați http://www.stonetrip.com/developer/doc/authoringtool/installation.
Software-ul | Versiunea folosită în aplicația Tutorial |
Android SDK | versiunea 13 (Android 3.2) |
Android NDK | revizuirea 7 |
Cygwin, GNU face pachet | versiunea 3.82.90 |
Apache Ant | versiunea 1.8.0 |
Java SDK | versiunea 1.6 |
Eclipsă | versiunea 3.7 |
ADT pentru Eclipse | versiunea 16.0.1 |
Rețineți că obiectivul nostru principal în acest tutorial este Android 3.2 (Honeycomb), pentru care aplicația a fost testată.
În această secțiune, vom oferi o descriere a fișierelor din fișierul de arhivă care însoțește acest tutorial.
Fișierul arhivă are trei sub-dosare: set1, set2 și set3.
În partea a 1 a acestui tutorial, am introdus aplicația tutorial, am discutat diverse concepte ShiVa3D, precum și instrumentele principale din suita ShiVa3D. De asemenea, am explicat fișierele din arhiva de descărcare care însoțește acest tutorial. În partea a 2-a, vom începe să descriem cum să dezvoltăm jocul folosind editorul ShiVa. Vom introduce modulele Editor ShiVa utilizate în dezvoltarea aplicației tutorial. Apoi, vom vorbi despre fișierele modelului Collada reprezentând caracterele principale din aplicație. Vom discuta despre pașii inițiali de creare a aplicației, cum ar fi crearea jocului și a scenei, precum și importul modelelor Collada.