UNIVERSITA DEGLI STUDI DI CATANIA
facolta di scienze matematiche, fisiche e naturali
corso di laurea in informatica
TESI
Dragonbladeun gioco realizzato con Blender
Candidato:
Filippo Daniele Legname
Relatore:
Chiar.mo Prof. Giovanni Gallo
anno accademico 2008/2009
UNIVERSITA DEGLI STUDI DI CATANIA
facolta di scienze matematiche, fisiche e naturali
corso di laurea in informatica
TESI
Dragonbladeun gioco realizzato con Blender
Filippo Daniele LegnameRelatore:
Chiar.mo Prof. Giovanni Gallo
anno accademico 2008/2009
alla mia famiglia che mi ha sempre sostenuto
Indice
Elenco delle figure iv
Introduzione 1
1 Videogames 2
1.1 Cosa e un videogame? . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Storia dei videogiochi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Game Engine 4
2.1 Cosa e un Game Engine? . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Storia dei Game Engine 7
4 Blender 9
4.1 Cosa e Blender? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Dalla NeoGeo fino all’Open Source . . . . . . . . . . . . . . . . . . . . 10
4.3 Breve storia sul Blender Game Engine . . . . . . . . . . . . . . . . . . 12
4.4 Blender ora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5 Le tappe Principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Progettazione del gioco 16
5.1 Idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2 Logica del gioco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3 Scenari/Livelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3.1 Realizzazione cripte . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3.2 Realizzazione terreno vulcanico . . . . . . . . . . . . . . . . . . 20
5.4 Protagonista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.4.1 Realizzazione volto protagonista . . . . . . . . . . . . . . . . . . 22
5.4.2 Realizzazione corpo protagonista . . . . . . . . . . . . . . . . . 23
5.4.3 Animazioni protagonista . . . . . . . . . . . . . . . . . . . . . . 27
5.4.4 Oggetto Armature . . . . . . . . . . . . . . . . . . . . . . . . . 29
i
INDICE ii
5.4.5 Logica oggetto Armature . . . . . . . . . . . . . . . . . . . . . 30
5.4.6 Logica oggetto VitalSpacePg . . . . . . . . . . . . . . . . . . . 32
5.5 Ideazione Spada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5.1 Realizzazione Spada . . . . . . . . . . . . . . . . . . . . . . . . 36
5.6 Telecamera e indicatori . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.7 Menu Principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7.1 Logica Menu Principale . . . . . . . . . . . . . . . . . . . . . . 40
5.8 Oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.8.1 Dragonstones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.8.2 Logica Dragonstone . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.8.3 Porte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.8.4 Logica porte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.8.5 Alberi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.8.6 Colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.9 Mostri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6 Screenshot 46
7 Stato dell’arte 50
7.1 Fasi complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2 da completare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Ringraziamenti 51
Elenco delle figure
1.1 La prima consolle: il Magnavox Odyssey . . . . . . . . . . . . . . . . . 3
1.2 Uno dei primi giochi Pong . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1 Logo del gioco Doom . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Logo del gioco Quake . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1 Logo Blender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Logo Bullets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 Il primo gioco completamente realizzato su Blender . . . . . . . . . . . 12
5.1 Cripte dopo la realizzazione . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 Creazione volto fase 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Creazione volto fase 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4 Creazione volto fase 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.5 Personaggio completo . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.6 Personaggio completo e dettagli . . . . . . . . . . . . . . . . . . . . . . 25
5.7 Personaggio principale lowpoly . . . . . . . . . . . . . . . . . . . . . . 26
5.8 Personaggio principale lowpoly completo . . . . . . . . . . . . . . . . . 26
5.9 Bozza Personaggio principale . . . . . . . . . . . . . . . . . . . . . . . 27
5.10 Bozza Personaggio principale . . . . . . . . . . . . . . . . . . . . . . . 29
5.11 Weight Paint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.12 Logica Armature1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.13 Logica Armature2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.14 Logica Armature3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.15 Logica VitalSpacePg 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.16 Logica VitalSpacePg 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.17 Logica VitalSpacePg 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.18 Bozza finale spada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.19 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.20 Indicatore Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
iii
ELENCO DELLE FIGURE iv
5.21 Indicatore pietre DragonStone . . . . . . . . . . . . . . . . . . . . . . . 38
5.22 Menu principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.23 Logica Menu Pricipale rotazione spada . . . . . . . . . . . . . . . . . . 40
5.24 Logica del pulsante Start . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.25 Logica del pulsante Quit . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.26 Dragonstone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.27 Indicatore Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.28 Porta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.29 Logica della porta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.30 Albero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.31 Alcune colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Introduzione
Con questo progetto ho realizzato un gioco con l’aiuto del programma Blender, un
software di grafica tridimensionale gratuito, con licenza GPL (General Public License).
L’obiettivo principale e stato quello di comprendere come realizzare attraverso l’uso
del BGE (Blender Game Engine) un action game (gioco di azione).
Attraverso la lettura dei vari capitoli percorreremo brevemente la storia dei video-
giochi fino alla nascita dei complessi strumenti di sviluppo nella moderna industria
videoludica. Vedremo poi le fasi di creazione di un videogioco dall’ideazione, alla
creazione dei bozzetti, alla modellazione e alle logiche di gioco.
1
Capitolo 1
Videogames
1.1 Cosa e un videogame?
Un videogame e un gioco dove le regole sono gestite automaticamente da un calco-
latore elettronico che utilizza un’interfaccia uomo-macchina basata sul display come
sistema di output, e come input, una tastiera oppure un Joystick.
1.2 Storia dei videogiochi
Il primo videogioco risale al lontano 1952, inventato all’universita di Cambridge,
dal signor A.S. Douglas, come tesi per il dottorato, si chiamava OXO ed era la tra-
sposizione del gioco del Tris su computer. In realta questo non viene propriamente
considerato un videogioco, perche questo progetto era fatto semplicemente per com-
pletare la tesi di laurea e non creato per intrattenere. Il primo pero ad avere l’idea di
sviluppare un vero e proprio videogame fu Ralph Baer. Il concetto di un giocatore,
un gioco, un televisore, ed una scatola ad essa collegata in cui inserire i videogiochi e
suo. La societa per cui lavorava come ingegnere la Sanders and Associates gli permise
di sviluppare il primo prototipo di consolle, il Magnavox Odyssey.
2
1.2 Storia dei videogiochi 3
Figura 1.1: La consolle Magnavox Odyssey
Questo prototipo permetteva di giocare a Odyssey, una simulazione del gioco del
ping-pong: nello schermo compaiono soltanto una pallina e due barrette luminescenti
controllate o da un giocatore ed il computer, oppure da due giocatori in contempora-
nea. Lo scopo e cercare di oltrepassare la barretta avversaria con la pallina.
Figura 1.2: Uno dei primi giochi Pong
Nel 1972 Nolan Bushel, che lavorava per una societa di circuiti integrati e nastri ma-
gnetici decise di lasciare il suo impiego e fondare l’Atari. Bushell con la nuova societa
si prefiggeva l’obiettivo di sostituire completamente i flipper dei bar con videogiochi
a gettoni. Nei primi mesi di produzione l’Atari vendette circa 2000 unita con il gioco
Pong una versione modificata del gioco Odyssey. Al contrario della consolle di Baer,
i videogiochi a gettoni erano destinati ai luoghi pubblici e quindi grazie a questo la
diffusione e la conoscenza dei videogiochi divenne capillare.
Capitolo 2
Game Engine
I primi videogiochi erano realizzati da singoli programmatori che si occupavano
dello sviluppo di tutti gli elementi necessari. Col passare del tempo, grazie all’au-
mento della potenza dell’hardware a disposizione, i videogiochi sono diventati sem-
pre piu complessi, rendendo indispensabile la suddivisione dei compiti: si hanno cosı
programmatori che si occupano del codice, artisti per la parte audiovisiva, e i designer.
L’industria dei videogiochi e una realta altamente competitiva per questo motivo
spesso si utilizzano i Game Engine.
2.1 Cosa e un Game Engine?
Un Game Engine o GE e un software costruito per la creazione e lo sviluppo di
videogiochi. Esistono molti tipi di Game Engine che sono fatti per lavorare su console
e sistemi operativi desktop come per esempio Microsoft Windows, Linux e Mac OS
X. Le funzioni che un GE deve sviluppare sono un motore di rendering (renderer) per
la grafica 2D o 3D, un motore fisico o un rilevatore di collisioni (o collision response),
suoni, scripting, animazione, intelligenza artificiale, networking, streaming, gestione
della memoria, threading, e disegno delle scene. Il processo di creazione di un gioco
e frequentemente semplificato perche con lo stesso motore di gioco si posso realizzare
giochi completamente differenti.
Un Game Engine possiede una serie di strumenti di sviluppo visuali in aggiunta a
componenti software che possono essere opportunamente riusati. Questi tool sono in
genere forniti in un ambiente di sviluppo integrato (IDE) per semplificare e indirizzare
verso la metodologia di sviluppo di software chiamato RAD (Rapid Application De-
velopment) che permette di sviluppare il gioco insieme al Planning, o fase di ideazione
del gioco.
4
2.1 Cosa e un Game Engine? 5
Questi Game Engine sono qualche volta chiamati Middleware1, perche sono l’indi-
spensabile di cui si ha bisogno per sviluppare un gioco riducendo i costi, la complessita
e tempi per avere un prodotto finito e pronto per gli scaffali.
Cosi come le altre soluzioni Middleware, i Game Engine hanno una buona com-
patibilita con tutte le piattaforme, permettendo cosi al gioco di essere funzionante
su consolle e Personal Computer applicando, in qualche caso, cambiamenti minimi al
sorgente. Spesso, il game Middleware e disegnato con una componente di base dell’ar-
chitettura, o CBSE, tale da permettere che alcune parti vengano sostituite o estese
con altre componenti come HAVOK per la fisica, FMOD per il suono o Scalefrom per
UI e Video. Qualche GE come RenderWare sono costruiti come una serie di compo-
nenti Middleware debolmente connessi in modo da dare la possibilita di combinare le
varie componenti per creare un motore di gioco completamente personalizzabile, in-
vece del piu comune approccio di estendere e personalizzare una soluzione integrata.
Comunque e importante, oltre alla possibilita di estendere il GE, quella di poterlo
usare in molti modi. Nonostante la specificita del nome, il GE viene usato anche per
altri tipi di applicazioni interattive come grafici in real-time, cosi come demo pubblici-
tarie, visualizzazioni di architetture, simulazioni per l’addestramento, e modellazioni
di ambienti.
Qualche GE possiede semplicemente il 3D Render invece che dell’intera funziona-
lita che serve per i giochi. Questi GE lasciano il resto del lavoro allo sviluppatore che
puo egli stesso aggiungere le altre componenti sviluppandole oppure piu semplicemen-
te assemblare il tutto con altre componenti gia pronte. Questi pezzi spesso vengono
chiamati come motore Grafico, motore di rendering o motore 3D, invece del piu gene-
rale e impreciso GE. Qualche esempio di GE sono RealmForge, TrueVision3d, OGRE,
Crystal Space, Genesis3D, Irrlicht e Jmonkey Engine.
Molto spesso, i motori 3D o sistemi di rendering sono costruiti sopra librerie grafi-
che come Direct3D o OpenGL che crea un’astrazione della GPU o della scheda Video.
Le librerie di Basso livello come per esempio DirectX, SDL, e OpenAL sono anche
comunemente usate per l’accesso alle periferiche di sistema come tastiera, mouse e joy-
stick, periferiche di rete e schede sonore. Prima dell’accelerazione grafica Hardware
erano usati i render grafici software. Questi ultimi tipi di rendering sono tutt’ora usati
in qualche tool di modellazione o per renderizzare immagini ad alto dettaglio dove il
framerate, la velocita di elaborazione delle immagini misurata in frame per secondo,
1Con il termine inglese middleware si intende un insieme di programmi informatici che fungono
da intermediari tra diverse applicazioni e componenti software. Sono spesso utilizzati come supporto
per sistemi distribuiti complessi. I software utilizzati possono anche essere piu di uno.
2.1 Cosa e un Game Engine? 6
non e importante o quando l’hardware del computer non ha i requisiti necessari alla
creazione delle ombreggiature.
Capitolo 3
Storia dei Game Engine
Il termine Game Engine, o brevemente GE, nacque nel 1990, in speciale connessio-
ne con eventi 3D come per esempio la nascita dei primi sparatutto in prima persona
o FPS quali DOOM e Quake.
Figura 3.1: Doom Figura 3.2: Quake
La popolarita di questi giochi era tale che altri sviluppatori invece di implementare
un gioco da zero prendevano in licenza le componenti principali del codice e si limi-
tavano a creare il game content o game assets: ambientazione, armi e livelli. Alcuni
giochi successivi, come Quake III Arena e Unreal di Epic Games usano questo approc-
cio. Il riutilizzo di GE permette di creare seguiti di giochi in modo molto piu facile e
veloce e questo e particolarmente importante nella moderna industria videoludica.
Prima dei Game Engine, i giochi erano tipicamente scritti come singole entita: un
gioco per Atari, per esempio doveva essere costruito partendo dalla base cioe dove-
va essere implementato il software per la gestione ottimale dell’hardware del display
e successivamente tutto il resto. Questa parte del codice oggi sarebbe chiamato il
7
8
kernel del gioco. Un tipo di approccio di questo tipo anche quando non si dovevano
sviluppare parti del software complessi e di basso livello, rendeva difficile il riutiliz-
zo del codice anche a causa della esosa richiesta di memoria che rendeva impossibile
l’approccio ingegneristico Game Engine.
Il continuo avanzamento della tecnologia dei motori grafici ha permesso una netta
separazione tra rendering, scripting, artwork e level design. Al giorno d’oggi e comune
negli sviluppatori un rapporto di 4 a 1 tra artisti e programmatori.
Gli sparatutto in prima persona sono ancora il principale motivo di riutilizzo dei
motori grafici di terze parti, ma il loro uso si sta diffondendo anche in altri generi.
Alcuni esempi sono il gioco di ruolo The Elder Scrolls III: Morrowind, i MMORPG
Dark Age of Camelot (basati su NetImmerse) e Lineage II (basato sull’Unreal Game
Engine).
Stesso discorso vale anche per i motori grafici come per esempio Renderware che
e stato usato in Rayman 2 Revolution, Gran Theft Auto III e Borout 2 e 3.
I motori moderni rientrano tra i software piu complessi in assoluto e possiedono
frequentemente decine di sistemi accuratamente sincronizzati per garantire un buon
controllo dell’esperienza offerta all’utente finale.
Capitolo 4
Blender
4.1 Cosa e Blender?
Figura 4.1: Logo Blender
Blender e un programma libero di modellazione, rigging, animazione, compositing
e rendering di immagini tridimensionali. Dispone inoltre di funzionalita per map-
pature UV, simulazioni di fluidi, di rivestimenti, di particelle, altre simulazioni non
lineari e creazione di applicazioni/giochi 3D. E disponibile per vari sistemi operativi:
Microsoft Windows, Mac OS X, Linux, IRIX, Solaris, NetBSD, FreeBSD, OpenBSD
assieme a porting non ufficiali per BeOS, SkyOS, AmigaOS, MorphOS e Pocket PC.
Blender e dotato di un robusto insieme di funzionalita paragonabili, per caratteristi-
che e complessita, ad altri noti programmi per la modellazione 3D come Softimage
XSI, Cinema 4D, 3D Studio Max, Lightwave e Maya. Tra le funzionalita di Blender
sono incluse l’utilizzo di raytracing e di script (in Python).
9
4.2 Dalla NeoGeo fino all’Open Source 10
4.2 Dalla NeoGeo fino all’Open Source
Nel 1988 Ton Roosendaal ha co-fondato lo studio di animazione olandese NeoGeo.
NeoGeo e diventata rapidamente il piu grande studio di animazione 3D dell’Olanda
ed una delle principali case di animazione in Europa. NeoGeo ha creato delle produ-
zioni vincitrici di premi (European Corporate Video Awards 1993 e 1995) per grandi
aziende come clienti come la Philips, multinazionale dell’elettronica. All’interno di
NeoGeo, Ton e stato responsabile sia della direzione artistica sia dello sviluppo inter-
no del software. Dopo un’attenta riflessione, Ton decise che l’insieme dei strumenti 3D
propri della NeoGeo era troppo vecchio ed ingombrante da mantenere ed aggiornare
e bisognava riscriverle daccapo. Nel 1995 e iniziata questa riscrittura ed fu destinata
a diventare la piattaforma di creazione di software 3D che noi tutti conosciamo co-
me Blender. Dato che NeoGeo ha continuato a rifinire e migliorare Blender, divento
chiaro a Ton che Blender potesse essere usato come strumento per altri artisti, al di
fuori della NeoGeo.
Nel 1998, Ton decise di fondare una nuova azienda chiamata Not a Number (NaN)
come spin-off della NeoGeo per altri mercati e per lo sviluppo di Blender. Nel cuore
della NaN c’era il desiderio di creare e distribuire gratuitamente una piattaforma di
creazione 3D compatta e multi-piattaforma. Inizialmente fu un concetto rivoluziona-
rio dato che la maggior parte dei modellatori costavano migliaia di dollari americani.
La NaN ha sperato di portare ad un livello professionale gli strumenti di modellazione
3D e di animazione prima di raggiungere il grande pubblico. Il modello aziendale della
NaN era legato alla fornitura di prodotti commerciali e servizi intorno a Blender. Nel
1999 la NaN ha partecipato alla sua prima conferenza Siggraph nello sforzo di un’ul-
teriore promozione di Blender. La prima convention del Siggraph 1999 di Blender e
stata un grande successo ed ha suscitato un enorme interesse sia della stampa che dei
partecipanti. Blender e stato un successo ed e stato confermato il suo potenziale!
Sulla scia del successo del Siggraph all’inizio del 2000, la NaN aveva un finanziamento
privilegiato di 4.5 milioni di Euro da dai capitalisti d’impresa. Questo grande afflusso
di cassa ha consentito alla NaN di espandersi rapidamente nelle sue operazioni. Ben
presto la NaN ha raggiunto i 50 dipendenti sparsi nel mondo per migliorare e pro-
muovere Blender. Nell’estate del 2000, fu rilasciato Blender v2.0. In tale versione di
Blender fu aggiunto il motore per i giochi alla piattaforma 3D. Per la fine del 2000, il
numero di utenti registrati sul sito web della NaN superava i 250.000.
Sfortunatamente, le ambizioni della NaN e le opportunita non incontrarono le capa-
cita dell’azienda e la realta del mercato del momento. Questa ristrutturazione porto
ad un riavvio della NaN con nuovi finanziatori ed un’azienda piu piccola nell’aprile
2001. Sei mesi dopo, fu lanciato il primo prodotto software commerciale della NaN,
4.2 Dalla NeoGeo fino all’Open Source 11
Blender Publisher. Questo prodotto era destinato al mercato emergente dei media
3D interattivi basati su web. A causa delle vendite deludenti e del clima di difficolta
economiche in corso, i nuovi investitori decisero di fermare tutte le operazioni della
NaN. La chiusura includeva anche la cessazione dello sviluppo di Blender. Sebbene
la versione di allora di Blender fosse chiaramente difettosa, con una complessa ar-
chitettura software interna, le caratteristiche incomplete ed un modo non-standard
della GUI, si ebbe un entusiastico supporto della comunita di utenti e di clienti che
hanno acquistato Blender Publisher nel passato, Ton non poteva lasciare che Blender
sparisse nell’oblio. Dal riavvio della societa con un team abbastanza ampio di svilup-
patori non fu possibile, nel Marzo 2002 Ton Roosendaal ha fondato l’organizzazione
non-profit Blender Foundation. Il primo obiettivo della Blender Foundation e stato
di trovare un modo per continuare lo sviluppo e la promozione di Blender come un
progetto fondato sulla comunita Open Source. Nel luglio del 2002, Ton e riuscito
ad ottenere dagli investitori della NaN il passaggio unico alla fondazione Blender per
tentare di rilasciare Blender come Open Source. La campagna Free Blender ha cer-
cato di raggiungere 100.000 Euro affinche tale Fondazione potesse acquistare i diritti
dei codici sorgenti di Blender e la proprieta dei diritti intellettuali dagli investitori
della NaN e di conseguenza il rilascio di Blender alla comunita open source. Con
un gruppo di entusiastici volontari, tra cui diversi ex impiegati della NaN, inizio la
campagna per raccogliere fondi per Liberare Blender. Con piacevole sorpresa di tutti
la campagna raccolse 100.000 Euro in sole sette settimane. La domenica del 13 otto-
bre 2002, Blender e stato rilasciato al mondo nei termini della GNU General Public
License (GPL). Lo sviluppo di Blender continua in questi giorni condotto da un vasto
gruppo di volontari da tutto il mondo guidati dal creatore originale di Blender, Ton
Roosendaal.
4.3 Breve storia sul Blender Game Engine 12
4.3 Breve storia sul Blender Game Engine
La prima versione di Game Engine e stata rilasciata nel 2000 con la versione 2.0
di Blender dall’azienda NEOGEO. Il maggiore upgrade del BGE e stato fatto nella
versione 2.10 di Blender nel lontano 2001, dove il motore, il Bullet physics engine, e
stato completamente riscritto da Erwin Coumans (principale architettura) e Gino van
den Bergen (Collisione e fisica).
Figura 4.2: Logo Bullets Physics Library
Giovedı 11 Dicembre 2008 e stato rilasciato il primo gioco completamente realizzato
con Blender, dal nome Yo frankie!
Figura 4.3: Il primo gioco completamente realizzato su Blender
4.4 Blender ora 13
4.4 Blender ora
L’ultima release, la 2.48 e stata aggiornata per far conoscere i cambiamente ef-
fettuati sul Blender Game Engine fatti durante lo sviluppo del gioco Yo Frankie che
includono ombre in tempo reale, materiali in tempo reale con le librerie GLSL, e
aggiornamenti alla fisica. Nella versione 2.48 sono state apportamente migliorie al
sistema di animazione, alla simulazione del vento, e tolti numerosi bug. Attualmente
e stata rilasciata la versione 2.49a che ha apportato altre migliorie e l’aggiunta della
video Texture.
In questo momento si prosegue nello sviluppo di Blender version 2.5, che include
un’interfaccia completamente ridisegnata e aggiornamenti al sistema di key mapping
per la animazioni.
4.5 Le tappe Principali
• 1.00 Gennaio 1995 Blender sviluppato nello studio di animazione NeoGeo;
• 1.23 Gennaio 1998 SGI Versione pubblicata su web, IrisGL;
• 1.30 Aprile 1998 Versioni per Linux e FreeBSD, porting per OpenGL ed X;
• 1.3x Giugno 1998 Fondazione della NaN;
• 1.4x Settembre 1998 Rilasciate le versioni per Sun e Linux Alpha;
• 1.50 Novembre 1998 Pubblicato il primo Manuale;
• 1.60 Aprile 1999 C-key (nuove caratteristiche bloccate, $95), rilasciata versione
per Windows;
• 1.6x Giugno 1999 Rilasciate versioni per BeOS e PPC;
• 1.80 Giugno 2000 Fine della C-key, Blender di nuovo completamente libero;
• 2.00 Agosto 2000 Motore interattivo 3D e in tempo reale;
• 2.10 Dicembre 2000 Nuovo motore, simulazione leggi fisiche e Python;
• 2.20 Agosto 2001 Sistema di animazione dei Personaggi;
• 2.21 Ottobre 2001 Lancio di Blender Publisher;
• 2.2x Dicembre 2001 Versione per Mac OS X;
4.5 Le tappe Principali 14
• 13 Ottobre 2002 Blender diventa Open Source, Prima Blender Conference;
• 2.25 Ottobre 2002 Blender Publisher diventa liberamente disponibile;
• Tuhopuu1 Ottobre 2002 Viene creata la ramificazione sperimentale di Blender,
un’arena di programmatori;
• 2.26 Febbraio 2003 Il primo vero Blender Open Source;
• 2.27 Maggio 2003 Il secondo Blender Open Source;
• 2.28x Luglio 2003 La prima della serie 2.28x;
• 2.30 Ottobre 2003 Alla seconda Blender Conference viene presentato il rifaci-
mento della UI della 2.3x;
• 2.31 Dicembre 2003 Aggiornamento al progetto stabile 2.3x UI;
• 2.32 Gennaio 2004 Importanti revisioni delle funzionalita interne del rendering;
• 2.33 Aprile 2004 Ambient Occlusion, Nuove Textures Procedurali, torna il game
engine;
• 2.34 Agosto 2004 Grandi miglioramenti: Interazione delle Particelle, LSCM UV
mapping, integrazione funzionale con YafRay, increspature pesate [Weighted
creases] nelle Subsurfaces, Ramp shaders, OSA completo, e molto altro ancora.;
• 2.35 Novembre 2004 Un’altra versione piena di migliorie: Oggetti Ganci [hooks],
curve deformanti [deforms] e curve modellanti [tapers], duplicatori di particelle
e molto altro;
• 2.36 Febbraio 2005 Piu che una versione di stabilizzazione, molto lavoro die-
tro le quinte, alcune nuove funzionalita, soprattutto mappatura Normale e di
Spostamento [Displacement].
• 2.37 Giugno 2005 Un grande salto: strumenti di trasformazione e widgets,
Corpi molli [Softbodies], Campi di forza, deflessioni, Suddivisione di Superfici
incrementale, Ombre Trasparenti, ed il Multithreaded rendering;
• 2.40 Dicembre 2005 Un salto ancora piu grande: completo rinnovamento del
sistema di armatura, shape keys, peli particellari, simulazioni di fluidi e corpi
rigidi;
• 2.41 Gennaio 2006 Principalmente aggiunte al Motore di Gioco e un sacco di
aggiustamenti;
4.5 Le tappe Principali 15
• 2.42 Luglio 2006 La versione Node. Oltre 50 sviluppatori hanno contribuito
a Nodes, modificatori Array, offuscamento dei vettori, un nuovo motore fisico,
rendering, lipsync e a molte altre funzionalita;
• 2.43 Febbraio 2007 La Multi release: Multi funzioni: Meshes a multi risoluzione,
UV Texture multi livello, immagini multi strato e rendering e baking a multi
passaggio, Scultura, Retopology, Matte multiple addizionali, Distort e Filter
Nodes, miglioramenti nel modellamento e nell’animazione, migliore pittura con
spazzole multiple, particelle fluide, oggetti proxy, Riscrittura Sequenziale, e UV
texturing post produzione. Ha ancora il multi-threaded rendering per CPU
multi-core. Con Verse e ancora multi-user, permettendo a piu artisti di lavorare
collaborativamente sulla stessa scena. Infine, le render farms forniscono ancora
la distribuzione multi-workstation del rendering. C’e anche una riscrittura del
sito;
• 2.44 Maggio 2007 La release SSS: la grande notizia, in aggiunta a due nuovi
modificatori, al risveglio del supporto degli OS a 64-bit e alla correzione di
numerosi bug, e l’aggiunta del nuovo materiale Subsurface Scattering, il quale
simula la dispersione della luce al di sotto della superficie di oggetti organici e
morbidi;
• 2.45 Settembre 2007 Questa release non ha funzioni aggiuntive, ma si propo-
ne unicamente di correggere numerosi bug e di migliorare la performance del
programma;
• 2.46 riscritto Particle System, un sistema per la simulazione dei movimenti dei
vestiti e un paio di nuove caratteristiche per creare ed animare peli e capelli;
introdotto anche un metodo di rendering chiamato Glossy Reflection ed un in-
novativo Image Browser col quale e finalmente possibile sfogliaree le cartelle del
proprio sistema;
• 2.47 comprende una serie di bug fix e l’implementazione di alcuni tool creati
apposta dal team realizzatore di Bug Bucks Bunny
• 2.48 nasce il Grease Pencil (per scrivere direttamente sulle finestre di viewport),
GLSL material, possibilita di creare ambienti con cielo e sole, nuovi strumenti
di sculpt, migliorie al game engine, strumenti per i fluidi e deformatori, ed altri
miglioramenti nel reparto uv e python;
• 2.49 Video Texture, implementata la gestione delle texture con i Nodi, signifi-
canti miglioramenti alla velocita del Game Engine;
Capitolo 5
Progettazione del gioco
Nelle successive sezioni verranno illustrate in dettaglio le fasi di creazione del gioco
realizzato con Blender: DragonBlade
5.1 Idea
La prima cose da fare e quella di stabilire che tipo di gioco si vuole creare.
L’idea e stata quella di realizzare un action game (gioco di azione), simile a Devil
May Cry della Capcom, cioe un tipico gioco in terza persona ricco di combattimenti
frenetici, sia con armi che senza. Al giocatore e quindi richiesta la prontezza di riflessi
e l’agilita nel muovere i comandi del gioco, mentre il ragionamento puo anche avere
importanza marginale.
Un buon game design deve iniziare con la stesura delle idee redigendo un Back-
ground, cioe una storia del mondo in cui si svolge l’avventura specificando se l’am-
bientazione e futuristica, contemporanea ovvero fantasy.
Vista la mia passione per i giochi di ruolo, come Dungeon and Dragons, ho deciso
di ambientare il tutto in un mondo fantasy dove le armi a disposizione sono spade,
archi ed inoltre i personaggi hanno la possibilita di lanciare potenti incantesimi.
Pertanto ho scritto il seguente background che apparira al giocatore alla prima
schermata:
Corre l’anno 2734 del periodo di Arron, 1000 anni dopo le guerre di Calas.
Nel mondo delle terre conosciute di Errah, vi e un grande arcipelago di 30 grandi
isole, dove vive da millenni la casta guerriera degli Uriani.
La piu grande fra queste e l’isola di Ira, famosa poiche sulle sue terre risiede il piu
grande tempio costruito a memoria d’uomo: il tempio di Ladhamar. Esso custodisce
16
5.2 Logica del gioco 17
all’interno delle gigantesche e labirintiche cripte, un’arma magica: la DragonBlade.
Un arma capace di generare una fiamma incantata in grado di sciogliere qualunque
tipo di armatura. Adesso dopo secoli di pace, le forze del Dio della Sofferenza sono
tornate piu minacciose che mai, decise a spazzare via, per sempre, gli abitanti delle
terre di Errah. La minaccia, ha spinto il Gran Consiglio dei guerrieri delle caste piu
elevate, coloro a cui e concessa la “ricerca”, a nominare un “eletto” per entrare nelle
cripte del tempio e trovare la spada che sconfiggera le forze del male. La scelta e
caduta su Kheal, una guerriera tra le piu valenti, discendente diretta di Calas. Ad
essa e stato assegnato l’arduo compito di combattere contro i millenari custodi della
spada che abitano le cripte del tempio.
5.2 Logica del gioco
Una volta avviato il gioco, il player potra muovere il personaggio principale, rap-
presentato da Kheal, l’eroina del gioco, attraverso i tasti freccia, saltare con la barra
spazio, muovere l’arma per colpire i mostri premendo Ctrl.
Essa dovra affrontare i vari mostri sia nel primo scenario, dove dovra trovare ed
impossessarsi della spada magica, sia nel secondo dove dovra sconfiggere le forze del
male, rappresentate da altre tipologie di mostri. Inoltre il giocatore potra raccogliere
delle pietre, le Dragonstone, per attivare il potere della spada.
Il personaggio perde energia se viene colpito, il gioco finisce se la sua energia vitale
si riduce a zero o se uccide tutti i mostri del livello del vulcano.
5.3 Scenari/Livelli 18
5.3 Scenari/Livelli
Sono passato cosı alla creazione delle Bozze delle mappe su cui si svolgera l’avven-
tura: le labirintiche cripte (vds imm. 5.1a), con il particolare dell’ultima stanza dove
si trova la spada (vds imm. 5.1b) e l’isola vulcanica (vds imm. 5.1c)
(a) Bozza: le labirintiche cripte (b) Bozza: le labirintiche cripte, dettaglio
ritrovamento Spada
(c) Bozza: Secondo Scenario: il vulcano
5.3 Scenari/Livelli 19
5.3.1 Realizzazione cripte
In figura 5.1 il risultato della creazione delle cripte con l’aiuto dello strumento
Sculpt e l’applicazione di una texture.
Figura 5.1: Cripte dopo la realizzazione
5.3 Scenari/Livelli 20
5.3.2 Realizzazione terreno vulcanico
Per la creazione del terreno vulcanico ho usato il nuovo strumento Greace Pencil
e le Multitexture. Il primo permette di colorare in tempo reale i poligoni direttamente
sulla finestra del viewport, le seconde la presenza di piu texture assegnate alla stessa
mesh. Per questo motivo e possibile notare come il terreno visualizzi in alcune zone
l’erba, in altre terreno lavico, in altre ancora, lava incandescente.
(a) Impostazioni Greace Pencil
(b) immagine Stencil per terreno vulcanico
(c) immagine Stencil per la lava
5.4 Protagonista 21
5.4 Protagonista
L’idea iniziale, per il personaggio principale, era quella di realizzare un guerriero
con tanto di elmo, cotta e mazza da battaglia e per il quale avevo realizzato un bozzetto
(vds immagine 5.2a). L’alternativa a questo personaggio e stata quella di sviluppare
(a) (b)
un personaggio femminile prendendo spunto da una creazione di Michel Roger, Joan
of Arc (vds 5.2b). Ho deciso, pertanto, di ispirarmi a questo personaggio ritenendo
che sarebbe stato piu divertente animare una donna capace di maneggiare un’arma
molto pesante ed incrementando allo stesso tempo l’universo degli eroi femminili.
5.4 Protagonista 22
5.4.1 Realizzazione volto protagonista
Per la realizzazione ho deciso di partire dal volto del personaggio. Ho utilizzato
come tecnica di modellazione il rotoscoping (o ricalco) cioe l’uso di sfondi nelle finestre
di proienzione ortogonale destra e sinistra come guida nella creazione. Le immagini
5.2a e 5.2b mostrano alcune fasi della creazione del volto.
(a) (b)
(a) Creazione del volto prime fasi
(b) fase finale del volto
5.4 Protagonista 23
5.4.2 Realizzazione corpo protagonista
Il corpo e stato realizzato con lo stesso sistema di quello usato per il volto. Le
immagini successive mostrano alcune fasi della creazione del corpo.
(a) (b)
Figura 5.2: Creazione di una gamba
5.4 Protagonista 24
Figura 5.3: Aggiunta dettagli e prima parte della schiena
Figura 5.4: Busto e braccia
5.4 Protagonista 25
Figura 5.5: Personaggio completo
Figura 5.6: Personaggio completo con dettagli
5.4 Protagonista 26
Purtroppo questo modello non e stato inserito nel gioco, visto il numero troppo alto
di poligoni che causerebbero quindi una richiesta di calcolo eccessiva. Il modello ad
alta definizione e comunque stato usato come forma base su cui sviluppare il modello
a basso numero di poligoni. (vds 5.7 e 5.8).
Figura 5.7: Personaggio in Lowpoly
Figura 5.8: Personaggio in Lowpoly completo
5.4 Protagonista 27
5.4.3 Animazioni protagonista
In questo sottoparagrafo si mostreranno alcune immagini che riguardano la crea-
zione delle animazioni. Come sempre la prima fase e quella della bozza (vds 5.9).
Figura 5.9: Bozza azioni personaggio principale
5.4 Protagonista 28
Elenco azioni create :
• Idle (attesa)
• Walk (camminare)
• Jump (saltare)
• Run (correre)
• Slash1 (colpire partendo da sinistra)
• Slash2 (colpire partendo da a destra)
• Back Walk (Camminare all’indietro)
• Turn Right (gira a destra)
• Turn Left (gira a Sinistra)
• Die (muori)
• Flame (o posizione del sparare la fiamma)
5.4 Protagonista 29
5.4.4 Oggetto Armature
Per creare le azioni e stato necessario costruire e collegare l’oggetto Armature
(vds 5.10) alla Mesh della personaggio. Le Armature non sono altro che lo scheletro
che permette il movimento alla protagonista. Lo strumento Weight Paint , attivabile
Figura 5.10: Lo scheletro del personaggio o Armature
dall’apposito menu con l’armatura nella modalita Pose Mode, e lo strumento miglio-
re per associare ogni Bone (osso) dell’armatura, alla specifica zona del modello da
influenzare durante il movimento.
Figura 5.11: Armature e Mesh durante la fase Weight Paint
5.4 Protagonista 30
5.4.5 Logica oggetto Armature
Le animazioni del personaggio saranno eseguite durante il gioco grazie ad una
serie di comandi associati all’Armature alla pressione di specifici tasti. Tutto questo
e possibile grazie al pannello Logic. In figura 5.12 si puo notare che l’associazione con
i tasti Up (freccia verso l’alto) si richiama l’animazione Forward ; LeftShift e Up Shift
di sinistra e freccia verso l’alto, esegue l’animazione turn left e cosi via per tutti gli
altri tasti.
Figura 5.12: Logica tasti Up, LeftShift e Up, LeftArrow, RightArrow
Nella figura 5.13 si puo notare che l’animazione, Slash, per l’uso della spada, si
esegue con il tasto Ctrl di sinistra. La pressione di quest’ultimo per l’apposita variabile
Intera, Slash1, permette l’esecuzione delle azioni Slash1 e Slash2 in modo alternato e
l’avvio del suono Sword Swing01.wav (la lama che fende l’aria).
5.4 Protagonista 31
Figura 5.13: Logica tasti Space, Down Arrow e Left Ctrl
Figura 5.14: Logica associata ai messaggi di Die, Flame e hit
5.4 Protagonista 32
5.4.6 Logica oggetto VitalSpacePg
Le interazioni con gli oggetti circostanti e il movimento nell’ambiente sono possibili
grazie all’oggetto VitalSpacePg, che altro non e che un poligono al cui interno si trova
l’armatura e il modello del personaggio. Nelle successive figure (vds 5.15, 5.16 e
5.17) si mostra il pannello logic di VitalSpacePg : ad ogni tasto di azione e associato
l’attuatore Motion che fa spostare il poligono alla quale e imparentata l’armatura
della protagonista.
Figura 5.15
5.4 Protagonista 33
Figura 5.16
Figura 5.17
5.5 Ideazione Spada 34
5.5 Ideazione Spada
A questo punto sono passato alla realizzazione dell’arma principale della protago-
nista ritenendo che un personaggio leggendario, deve possedere una spada dai poteri e
dall’aspetto attrettanto leggendari. Al caso faceva un mio vecchio disegno (vds 5.18a).
Su questa base ho poi sviluppato l’elsa, realizzando una serie di disegni con teste di
drago. (vds 5.18b e 5.18c)
(a) Bozza spada (b) Bozza Testa di Drago 1
(c) Bozza Testa di Drago 2
5.5 Ideazione Spada 35
Arrivando cosi a concretizzare un bozzetto finale sul quale poter lavorare in fase
di modellazione (vds 5.18).
Figura 5.18
5.5 Ideazione Spada 36
5.5.1 Realizzazione Spada
La spada, che ho chiamato DragonBlade, e stato il mio primo esperimento di
applicazione di NormalMap, che permette grazie alle nuove librerie GLSL, di creare
dei particolari riflessi rossastri sull’elsa e sulla base della lama.
(a) Particolare dell’impugnatura
(b) Particolare della lama
5.6 Telecamera e indicatori 37
5.6 Telecamera e indicatori
La telecamera che e situata alla spalle del personaggio e il punto di vista del
giocatore. In figura 5.32a e 5.32b si puo notare come vi siano due etichette: punteggio
di Energia e numero di DragonStone raccolte.
(a) La telecamera e gli indicatori e una
Dragonstone ad essa imparentati
(b) La telecamera durante il gioco e i due indicatori
5.6 Telecamera e indicatori 38
Logica telecamera e indicatori
Figura 5.19: Logica Telecamera
Figura 5.20: Logica indicatore Energia
Figura 5.21: Logica contatore Dragonstone
5.7 Menu Principale 39
5.7 Menu Principale
Il menu principale e la prima schermata che apparira al giocatore quando avvia il
gioco.
Figura 5.22: Il menu principale
5.7 Menu Principale 40
5.7.1 Logica Menu Principale
La spada ruotera sempre su un suo asse, invece i pulsanti Start e Quit, al cui
passaggio del mouse si attivano delle animazioni (vds 5.24 e 5.25) permettono l’uno
di iniziare il gioco l’altro di uscire e chiudere il programma.
Figura 5.23: Logica per la rotazione della spada
Figura 5.24: Logica per il pulsante Start
Figura 5.25: Logica per il pulsante Quit
5.8 Oggetti 41
5.8 Oggetti
Nelle successive sottosezioni verranno mostrati in dettaglio gli oggetti fino ad ora
realizzati e le relative logiche di comportamento se presenti.
• Dragonstone;
• porte;
• alberi;
• colonne;
• lava incandescente;
5.8 Oggetti 42
5.8.1 Dragonstones
Le Dragonstones, o pietre di drago, sono delle sfere a cui sono state applicate una
Normal Map, per dare l’effetto rugoso e una texture.
Figura 5.26: Pietre di drago o Dragonstone
5.8.2 Logica Dragonstone
Figura 5.27: Logica Dragonstone
5.8 Oggetti 43
5.8.3 Porte
Figura 5.28: Porta con texture
5.8.4 Logica porte
Figura 5.29: Logica della porta
5.8 Oggetti 44
5.8.5 Alberi
Figura 5.30: Albero con Texture
5.8.6 Colonne
Figura 5.31: Colonne con applicata Texture
5.9 Mostri 45
5.9 Mostri
Successivamente ho realizzato i mostri: zombie e spettri che popoleranno le cripte.
Per gli zombie mi sono ispirato a un gioco visto la prima volta alla fine degli anni ’90:
Resident Evil, della Capcom. Per gli spettri al film degli anni ’60: Pomi d’ottone e
manici di scopa, della Disney.
(a) Zombie
(b) Spettro
Capitolo 6
Screenshot
46
47
48
49
Capitolo 7
Stato dell’arte
7.1 Fasi complete
• il menu con la rotazione della spada e i pulsanti per iniziare il gioco oppure
uscire;
• le cripte con l’applicazione delle varie texture;
• la modellazione del personaggio, le texture e le logiche di movimento;
• la spada con le texture;
• il terreno del livello dell’isola vulcanica con gli oggetti relativi: colonne, alberi,
mura, porte con relativa logica;
• la modellazione delle due tipologie di mostri: zombie e spettri e animazioni;
• le pietre di drago e logica;
7.2 da completare
• intelligenza artificiale mostri;
• collisione spada personaggio principale con i mostri;
• collisione spada mostri con personaggio principale;
• trappole;
• animazione lava;
• animazione incantesimo della spada;
50
Ringraziamenti
Ringrazio il prof. Giovanni Gallo per avermi concesso di sviluppare un videogioco
con Blender e per il prezioso aiuto nella stesura del documento di tesi, il professor
Neal Hirsig, della Tufts University degli Stati Uniti, che, con i suoi numerosi e prezios-
sissimi tutorial online, mi ha praticamente insegnato tutto cio di cui c’era bisogno per
conoscere la modellazione e la texturizzazione in Blender, Jonathan Williamson per
avermi insegnato la basi della modellazione dei volti, Caleb Souza, di Blender Total,
per avermi illuminato con i suoi tutorial nella creazione di alcune logiche di gioco e
tutta la comunita libera di Blender per avermi sostenuto e consigliato, direttamente
o indirettamente.
Un ringraziamento a mio padre che mi ha aiutato a correggere e stilare le bozze della
tesi.
Ringrazio i miei amici Dario Coco, Elena, Salvo, Sebastiano, Dario Veneziano, Vivia-
na, Sergio, Sandro, gli amici del gruppo di Greenpeace G.L. di Catania, il gruppo di
ballo caraibico e tutti coloro che mi hanno aiutato in questi anni.
Un caloroso grazie a tutti i miei familiari e ai miei parenti per avermi supportato
moralmente. Un ringraziamento particolare a mia madre, a mio padre e alle mie due
sorelle senza di loro non avrei potuto raggiungere questo traguardo.
Top Related