Sei curioso di sviluppare il gioco in 3D? Ora è il momento di imparare! Questa serie di tutorial in cinque parti mostrerà come creare un semplice gioco con ShiVa3D Suite, un motore di gioco 3D multipiattaforma e uno strumento di sviluppo. Questa serie era stata originariamente pensata solo per i membri di Tuts + Premium, ma sarà invece distribuita gratuitamente alla community con ogni porzione pubblicata back-to-back nei prossimi 5 giorni. Continua a leggere per iniziare il tuo viaggio nella programmazione 3D!
In questa serie di tutorial, introdurremo lo sviluppo di giochi 3D per piattaforma Android utilizzando ShiVa3D Suite. Lo sviluppo di un'applicazione Android con grafica 3D può essere difficile per diversi motivi. Gli sviluppatori devono avere familiarità con l'API OpenGL e con l'API Android specifica che lo supporta. Inoltre, lo sviluppo di grafica 3D può includere codice C / C ++ nativo per motivi di prestazioni oltre al codice Java / Objective-C. Ciò aumenta il livello di conoscenza e sforzo richiesto per lo sviluppo di un'applicazione Android 3D. Inoltre, la creazione di grafica 3D implica competenze esclusive indipendenti dalla competenza di programmazione Java o C / C ++. In sintesi, lo sviluppo di applicazioni 3D richiede competenze avanzate di diverse discipline.
ShiVa3D Suite è un set di strumenti progettati per sviluppare applicazioni 3D multipiattaforma. Questi strumenti semplificano la progettazione e la composizione dell'applicazione in base a compiti e concetti specifici. Ad esempio, è possibile separare un modello visivo 3D dal suo comportamento e lavorare su questi aspetti in modo indipendente. Inoltre, lo sviluppo del gioco nella Suite ShiVa3D consente l'astrazione del gioco dalla particolare piattaforma di destinazione. I giochi sviluppati con questa suite possono essere distribuiti su più piattaforme di destinazione, tra cui Windows, iOS e Android OS.
Questo tutorial fornisce un esempio di come sviluppare un gioco 3D per piattaforma Android utilizzando due elementi principali della Suite ShiVa3D, l'Editor di ShiVa e lo Strumento di authoring di ShiVa. Il sistema operativo di destinazione di questa applicazione tutorial è Android 3.2 (Honeycomb). Tuttavia, forniremo anche una discussione su come portare il gioco su dispositivi iOS, come l'iPhone / iPod Touch e l'iPad / iPad2.
Questo tutorial è stato organizzato come una serie in 5 parti. Nella parte 1, introdurremo l'applicazione tutorial, discuteremo i vari concetti di ShiVa3D e gli strumenti principali in ShiVa3D Suite. Nella parte 1, spiegheremo anche i file nell'archivio di download che accompagna questo tutorial. Nella parte 2, inizieremo a descrivere come sviluppare il gioco usando l'Editor ShiVa. Introdurremo i moduli di ShiVa Editor usati nello sviluppo dell'applicazione tutorial. Quindi, parleremo dei file di modello Collada che rappresentano i personaggi principali nell'applicazione. Infine, discuteremo alcuni passaggi iniziali per creare l'applicazione come la creazione del gioco e della scena, nonché l'importazione dei modelli Collada.
Nella parte 3, mostreremo come modificare la scena della nostra applicazione. Inizieremo anche a inserire il codice per gli AIModels del gioco. Nella parte 4, termineremo la codifica per i rimanenti AIModel ed eseguiremo test unitari animando il gioco. Eseguiremo quindi il gioco dall'Editor ShiVa per l'importazione nello Strumento di authoring di Shiva. Infine, discuteremo due diverse opzioni di authoring nello Shiva Authoring Tool, uno per generare un eseguibile Android e un altro per generare un progetto Eclipse.
Nella parte 5, inizieremo personalizzando il gioco in Eclipse. Ciò includerà l'impostazione del progetto Eclipse, le modifiche al codice e la creazione del codice Java e delle librerie native. A quel punto avremo completato il tutorial in termini di sviluppo e implementazione. Nel resto della parte 5 esamineremo il codice, discuteremo come portare il gioco su dispositivi iOS e fare alcune osservazioni conclusive.
Il modello Collada ei relativi file di immagine per l'anatra da bagno gialla e il modello Collada per l'uovo sono la cortesia di Sony Computer Entertainment Inc. Questi modelli sono stati scaricati dalla sezione Campioni di base della banca di modelli collada.org, e sono concessi in licenza secondo i termini della licenza di condivisione condivisa SCEA.
La texture "marmo" utilizzata in background è stata scaricata da http://www.texturewarehouse.com ed è stata rilasciata sotto licenza Creative Commons, Attribution-NonCommercial-ShareAlike 2.0.
L'autore ha tratto grande beneficio da un libro su ShiVa3D, intitolato Introduzione alla programmazione 3D con ShiVaÆ. Inoltre, il codice di gestione degli eventi multitouch spiegato in 'Code Review' ha preso in prestito una tecnica introdotta in un'esercitazione sul sito degli sviluppatori di ShiVa3D, denominata Gestione multitouch.
Il gioco inizia con una schermata iniziale che mostra i personaggi principali del gioco: una anatra da bagno gialla in primo piano e un uovo dietro, come mostrato sotto.
Quindi, la schermata principale del gioco appare con due oggetti, l'anatra e l'uovo. L'anatra crea un movimento angolare in uno spazio 3D su un piano fisso definito da y = 3. L'uovo può muoversi solo lungo una linea retta definita da x = 0, y = 3. Il movimento di anatra e uovo negli assi globali x, y, z è mostrato sotto.
Allo stesso tempo, l'anatra ruota attorno ai suoi assi x, y, z locali, indipendentemente dalla sua rotazione globale, come mostrato di seguito.
Allo stesso modo, l'uovo gira intorno al suo asse x locale indipendentemente dal suo movimento globale (vedi sotto).
Il movimento (globale) dell'uovo lungo il percorso lineare può essere controllato dall'azione a tocco singolo dell'utente sullo schermo. Se il dito dell'utente si sposta da sinistra a destra, allora l'uovo si muove nella direzione z negativa. Viceversa, se il dito dell'utente si sposta da destra a sinistra, allora l'uovo si muove nella direzione z positiva. (Vedi sotto.)
Dalla geometria in Figura 2, osservate che il percorso lineare che descrive il movimento globale dell'uovo è sul piano fisso su cui l'anatra fa il suo movimento globale. Pertanto, l'anatra e l'uovo possono collidere nei due punti di intersezione definiti dal percorso lineare dell'uovo e dal percorso angolare dell'anatra. I punti di collisione sono mostrati nello schema qui sotto.
Se l'anatra e l'uovo si scontrano, la rotazione dell'anatra cambierà direzione, da in senso orario a antiorario, o viceversa.
L'obiettivo del gioco è quello di scontrare l'uovo e l'anatra il maggior numero possibile di volte. Ogni volta che si verifica una collisione, il punteggio dell'utente, visualizzato nell'angolo in basso a destra dello schermo, verrà incrementato. Inoltre, il dispositivo Android vibra per una durata di 100 millisecondi.
L'utente può riavviare il gioco applicando un'azione a doppio tocco (ad esempio, muovendo due dita sullo schermo) come mostrato di seguito.
Prima che l'applicazione si riavvi, viene visualizzato un messaggio informativo per circa un secondo, come mostrato di seguito.
Al riavvio dell'applicazione, vengono ripristinate le posizioni dell'anatra e dell'uovo e il punteggio iniziale.
In questa sezione, discuteremo i concetti di base dello sviluppo di giochi 3D con ShiVa3D. La maggior parte della discussione qui è presa in prestito dalla documentazione originale di ShiVa3D. Per ulteriori informazioni, consultare http://www.stonetrip.com/developer/doc/ e il manuale dell'utente fornito con l'editor ShiVa.
Gioco rappresenta un gioco, l'entità principale dell'applicazione. Incapsula tutto il resto nell'applicazione come telecamere, scene, modelli ecc. Il gioco è un'unità di schieramento indipendente.
Scena rappresenta un luogo o una vista associati al gioco. C'è una serie di oggetti o modelli associati a una scena. Un gioco può avere più di una scena. Per semplicità, il gioco nell'applicazione tutorial ha una singola scena.
telecamera rappresenta un punto di vista nel gioco. L'utente vedrà il gioco attraverso la fotocamera. Una telecamera può spostarsi da una posizione all'altra o la sua direzione può essere modificata. Nel nostro tutorial, la fotocamera rimarrà fissa.
Modello è un oggetto o un insieme di oggetti con vari attributi come forma, luce e sensore. Nel nostro gioco ci sono due modelli: un'anatra e un uovo. Quelli sono oggetti tridimensionali con un particolare "ruolo" nel nostro gioco. Ogni ruolo dell'anatra e dell'uovo ha il suo AIModel (vedi sotto) per descrivere quel ruolo tramite codice.
AIModel implica 'intelligenza artificiale' e rappresenta il comportamento. Un AIModel potrebbe essere associato a un utente che gioca il gioco o un oggetto nel gioco. In questo tutorial, useremo solo l'oggetto AIModels. Un AIModel può avere funzioni, gestori, stati e variabili per descrivere i comportamenti specifici.
copione contiene il codice in un AIModel, ad esempio codice per una funzione o gestore. Il linguaggio di scripting in ShiVa3D è Lua. (Http://www.lua.org)
Sensore in grado di rilevare determinati eventi fisici. Nel nostro gioco, l'anatra e l'uovo hanno sensori di collisione per rilevare una collisione. Quando un sensore rileva un evento, può essere gestito dal gestore eventi appropriato nell'AIModel associato all'oggetto contenente il sensore.
HUD sta per "head up display" ed è un termine usato per rappresentare vari widget dell'interfaccia utente come pulsanti, etichette, elenchi e cursori, consentendo all'utente di interagire con il gioco. Gli unici componenti HUD che useremo nel nostro gioco sono le etichette di testo.
Per sviluppare la nostra applicazione tutorial utilizzeremo la versione gratuita di ShiVa3D Suite (http://www.stonetrip.com/download.html), che include l'Editor PLE di ShiVa (edizione di apprendimento personale) e lo Strumento di creazione di ShiVa. Lo schema seguente offre una panoramica del processo di sviluppo che abbiamo utilizzato con questi strumenti.
Cerchiamo di discutere i singoli passaggi di quel processo.
L'editor ShiVa ha vari componenti per lo sviluppo e il test di un gioco 3D da zero. Una caratteristica importante di ShiVa Editor è che un gioco sviluppato con quello strumento può essere distribuito (dopo essere stato creato nello strumento di authoring di ShiVa) in diversi dispositivi con diversi sistemi operativi (ad esempio un PC con sistema operativo Windows o un tablet con sistema operativo Android o i phone).
Alcune delle azioni di base che è possibile eseguire con l'Editor ShiVa sono le seguenti.
Lo scopo principale di Shiva Authoring Tool è convertire un gioco, creato tramite l'Editor ShiVa, in un'applicazione che può essere distribuita in un particolare dispositivo (ad esempio un iPhone, un iPad o un tablet Android). Alcune restrizioni si applicano al sistema operativo della macchina che esegue lo Strumento di creazione Shiva e al dispositivo di destinazione per la conversione. Ad esempio, Shiva Authoring Tool in esecuzione su una macchina Windows non può generare un'applicazione per iPad o iPhone. In questo tutorial, abbiamo utilizzato un PC Windows come macchina di sviluppo e la nostra piattaforma di destinazione è Android. Le informazioni di seguito si applicano a questo particolare ambiente.
Alcune delle azioni di base che si possono eseguire con lo strumento di creazione di Shiva sono le seguenti.
Nota: per ogni tipo di autore, ci sono due opzioni di compilazione: Distribuzione e sviluppo. In questo tutorial, discuteremo solo del tipo di sviluppo dello sviluppo.
Uno può personalizzare il gioco in Eclipse come segue.
Per utilizzare lo strumento di authoring ShiVa nell'ambiente Windows per lo sviluppo Android, abbiamo utilizzato il seguente software pre-requisito. Notare che Eclipse e ADT per Eclipse sono necessari solo se si desidera generare un progetto Eclipse per la personalizzazione del codice. Per i dettagli, consultare http://www.stonetrip.com/developer/doc/authoringtool/installation.
Software | Versione utilizzata nell'applicazione Tutorial |
SDK Android | revisione 13 (Android 3.2) |
NDK Android | revisione 7 |
Cygwin, pacchetto GNU make | versione 3.82.90 |
Apache Ant | versione 1.8.0 |
SDK Java | versione 1.6 |
Eclisse | versione 3.7 |
ADT per Eclipse | versione 16.0.1 |
Nota che il nostro obiettivo principale in questo tutorial è Android 3.2 (Honeycomb), per il quale è stata testata l'applicazione.
In questa sezione, daremo una descrizione dei file nel file di archivio che accompagna questo tutorial.
Il file di archivio ha tre sottocartelle: set1, set2 e set3.
Nella parte 1 di questo tutorial, abbiamo introdotto l'applicazione tutorial, discusso i vari concetti di ShiVa3D e gli strumenti principali nella suite ShiVa3D. Abbiamo anche spiegato i file nell'archivio di download che accompagna questo tutorial. Nella parte 2, inizieremo a descrivere come sviluppare il gioco usando l'Editor ShiVa. Introdurremo i moduli di ShiVa Editor usati nello sviluppo dell'applicazione tutorial. Quindi, parleremo dei file di modello Collada che rappresentano i personaggi principali nell'applicazione. Discuteremo quindi alcuni passaggi iniziali per creare l'applicazione, come la creazione del gioco e della scena, nonché l'importazione dei modelli Collada.