Sviluppo di videogiochi e Linux di Alessandro Cominu



Documenti analoghi
ECM in provincia di Bolzano. Il punto di vista dei medici. Dr Giulio Donazzan, Vicepresidente Ordine dei Medici Commissione Provinciale ECM

Corso di Realtà Virtuale

1. Il Client Skype for Business

Il Computer 1. A cosa serve un Computer? Scrivere, Calcolare, Disegnare, Giocare, Ricercare informazioni, Comprare

Compagnia delle Ombre.

Book 2. Conoscere i contenuti digitali. Saper riconoscere diversi tipi di contenuti digitali

Lande Immortali GDR-Descrittivo. Progetto a cura di Martino Michele Matricola: Miglio Stefano Matricola:

PLANET REAVERS INTRODUZIONE: CARATTERISTICHE

Stampe in rete Implementazione corretta

3. Installare Wamp Server

Il calendario di Windows Vista

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15

PowerPoint. Guida introduttiva

INTRODUZIONE ALL INFORMATICA CORSO DI LAUREA IN BIOLOGIA A.A. 2015/2016

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

APPUNTI POWER POINT (album foto)

Guida all uso di Java Diagrammi ER

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Breve guida a Linux Mint

Summer Camp d Informatica 2014 RAGAZZE DIGITALI

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

PROGETTO ESCAVATORE VIRTUALE

Guida introduttiva. Barra di accesso rapido Personalizzare quest'area in modo che i comandi preferiti siano sempre visibili.

Il Linux che verrà... Francesco Crippa

Cookie: è scaduto il 2 giugno il termine per mettersi in regola con le prescrizioni del Garante

Office 2007 Lezione 02. Le operazioni più

STRUMENTI DI PRESENTAZIONE MODULO 6

GESTIONE LISTE R VIRTUALI

NAS 308 Introduzione a iscsi

Il controllo della visualizzazione

Manuale servizio ScambioDati

Progetti F.O.S.S. Ieri e Oggi

GIANLUIGI BALLARANI. I 10 Errori di Chi Non Riesce a Rendere Negli Esami Come Vorrebbe

Cos è ARXIVAR. Un sistema integrato per la Gestione dei documenti DESTRUTTURATI e di provenienza ERP.

La progettazione dell interfaccia HCI. Fabio Vitali

Corso base di Powerpoint

File, Modifica, Visualizza, Strumenti, Messaggio

CORSO DI INFORMATICA PER ADULTI

Cap. 3. APERTURA NUOVO PROGETTO

L ACQUISIZIONE E LA GESTIONE DEI DOCUMENTI ELETTRONICI

DISEGNO 3D IN AutoCad.

Note di rilascio. Aggiornamento disponibile tramite Live Update a partire dal. Il supporto per Windows XP e Office 2003 è terminato

Strutturazione logica dei dati: i file

PORTALE CLIENTI Manuale utente

FPf per Windows 3.1. Guida all uso


MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti

Corso Joomla per ATAB

E-learning Guida pratica all utilizzo

Plaze, il termine che definirà un nuovo concetto di piazza

I Altamira HRM I. I Human Resource

Gestionale Web Agenzia Immobiliare

PRESENTAZIONE PER XXXXXXXXXX

Portale Didattico Social Learning Environment

3. INSERIMENTO PUBBLICAZIONI NUOVE Anche qui previsto il nuovo codice 02 per Periodici in bolla quotidiani

Mercoledì degli Associati. Opportunità di business per le Aziende UCIF. Milano, 20 novembre Federata

Corso di formazione CerTICTablet

HP Advanced Profiling Solution Guide introduttiva

BIEMMEPI RE-IMPARA A SCRIVERE. E presenta PLATE, un programma semplice ed intuitivo per l incisione di targhe.

Insegnare con il blog. Materiale tratto da:

Play Avvia la giocata con il bet level e il numero di linee impostati. Messaggio: "Spin". Tasto scelta rapida: Spazio.

airis consulting Via Domenichino, Milano Tel: Fax: info@airisconsulting.it web:

Guida alla Navigazione e Utilizzo dell Area Fattura PA

Uomo Libero software Libero

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

UN GRUPPO DI LAVORO EVOLVE

Questo avvierà il wizard di importazione che ci porterà passo passo attraverso il processo.

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

STAMPA DI UNA PAGINA SEMPLICE

Servizio e-business eni Centro Stampa. Manuale Fornitore

Flow!Works Manuale d uso

2. Simulazione discreta: approcci alla simulazione

Archimede ver GUIDA FUNZIONALE ARCHIMEDE VER

XTOTEM offline sul proprio PC

CONTROLLO NUMERICO Z32

1. opzione 1, ubuntu accanto a windows

Cosa è un foglio elettronico

Giochi in Ubuntu e Linux mercoledì 27 agosto 2008 Ultimo aggiornamento mercoledì 14 novembre 2012

Uso di base delle funzioni in Microsoft Excel

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

Caratteristiche di TechnoTrain

POSTA ELETTRONICA Per ricevere ed inviare posta occorrono:

I.C. "L.DA VINCI" LIMBIATE CURRICOLO IN VERTICALE ANNO SCOLASTICO 2014/2015 GEOGRAFIA

Manuale per i redattori del sito web OttoInforma

INSERIMENTO DATI BASILARI

Archivio WebQuest I Grafi e le Reti

HR - Sicurezza. Parma 17/12/2015

Guida rapida alla prima installazione

L ultima fase di registrazione dei dati di una gara all interno del sistema informatico federale è l inserimento degli ordini di arrivo o classifiche.

5.2 UTILIZZO DELL APPLICAZIONE

Guida per Iniziare con. SCRATCH versione

Guida introduttiva. Aprire una finestra di dialogo Facendo clic sull'icona di avvio vengono visualizzate ulteriori opzioni per un gruppo.

Dall Archivio al Polo tecnologico dell audiovisivo didattico e documentale per l Alto Lazio

4. Fondamenti per la produttività informatica

I.T.S.T. E. FERMI FRASCATI MODULO 1. a.s SYLLABUS TRIENNIO LABORATORIO TITOLO

Corso di Informatica

IT Questionario per formatori di insegnanti di lingue Analisi dei dati

SocialMediaDivision. grippiassociati WEB AGENCY SINCE Social Marketing & Divulgazione Virale.

Transcript:

Sviluppo di videogiochi e Linux di Alessandro Cominu

Videogiochi...su Linux? Oggi pochissime persone usano Linux per giocare Feb 2013 - Steam Linux client (~200 giochi) Set 2013 - Gabe Newell (Valve): Linux and Open Source are the future of gaming Set 2013 - Valve annuncia SteamOS (basato su Linux) per un utilizzo da salotto Ott 2013 - Lars Gustavsson (Battlefield): Linux needs one killer app to take off

Perché così pochi giochi? Troppi pochi utenti = mercato troppo piccolo Svantaggioso dal punto di vista del business ma anche da quello tecnico Driver grafici incompleti, instabili, vecchi Mancanza di un unico e stabile sistema audio Gestione gamepad caotico Naturale inerzia degli sviluppatori a cambiare tools e abitudini fossilizzate dal tempo

Qualcosa sta cambiando... Si prospetta uno scenario diverso in futuro SteamOS Farà aumenterà il numero di utenti Migliore supporto per i driver (utili anche al di fuori dal mondo gaming) Humble Indie Bundle Sviluppatori indie: grazie a costi di sviluppo minori e maggiore agilità riescono a distribuire il gioco anche per Linux

Videogiochi su linux: conviene? Fonte: Wolfire Games Linux users contribute twice as much as Windows users

Anatomia di un videogioco Esistono tanti generi diversi ma sotto il cofano condividono una stessa organizzazione: tanti sistemi dedicati che collaborano tra loro Renderer Physics engine Script engine Audio engine Input system AI system Network system

Anatomia: Renderer E' la parte che si occupa di generare l'immagine mostrata a schermo Utilizza la lista di oggetti definiti nel mondo (posizione, rotazione, aspetto di ognuno) e la posizione della telecamera Genera tante foto del mondo in rapida successione (~60 FPS), dando l'illusione ai nostri occhi di qualcosa in movimento (come per i film al cinema).

Anatomia: Physics engine Gestisce la simulazione dei movimenti di tutti gli oggetti dinamici e le relative collisioni Ricalcola la posizione e rotazione degli oggetti circa 50 volte al secondo E' separato dal renderer e gli oggetti del mondo fisico sono spesso semplificati per sveltire i calcoli (si usano tantissime forme semplici come sfere, cubi, etc)

Anatomia: Script engine Gestisce tutta la logica del gioco Permette di eseguire delle azioni come risposta ad eventi accaduti nel mondo di gioco E' il collante che tiene insieme tutti i sistemi di un gioco (renderer, physics engine, etc..) Es: premo un pulsante mostro animazione della porta che si apre Es: un proiettile colpisce un nemico applico un danno al nemico colpito

Anatomia: Audio engine Si occupa di gestire tutte le musiche e gli effetti sonori del gioco Spesso, utilizzando la posizione di un oggetto nel mondo di gioco, calcola un diverso volume per gli altoparlanti sinistro e destro, dando l'illusione di un suono 3D.

Anatomia: Input system Legge l'input del giocatore e passa queste informazioni allo script engine. Tastiera Mouse Gamepad Touch Joystick Volanti etc

Anatomia: AI E' un sistema dedicato alla intelligenza artificiale Nei giochi non viene usata la vera AI, ma spesso è una semplice lista di azioni predefinite ed eseguite in base a cosa accade attorno Il suo utilizzo e complessità varia tanto da gioco a gioco Lo scopo non è quello di creare una vera intelligenza, ma di dare l'impressione di un comportamento intelligente Es: pathfinding Es: reazione visiva, auditiva, al dolore, etc

Anatomia: Network system Oggi è sempre più comune grazie al fatto che siamo (quasi) sempre connessi ad internet. Comunicazioni con server su internet Es: download di nuove mappe Es: salvataggio del punteggio su classifica Es: salvataggio del savegame su cloud Comunicazioni con altri client di gioco Es: giochi multiplayer

Un esempio concreto: SW essenziali Collaborazione Git/Mercurial/SVN, Dropbox Skype Creazione e modifica Art assets Gimp, Audacity, Blender Programmazione GCC, QT, Python, OpenGL, OpenAL, ODE, SDL, Raknet Mono (C#), MonoDevelop Game engine Unity3D

Un esempio concreto: SW essenziali Collaborazione Git/Mercurial/SVN, Dropbox Skype Creazione e modifica Art assets Gimp, Audacity, Blender Programmazione GCC, QT, Python, OpenGL, OpenAL, ODE, SDL, Raknet Mono (C#), MonoDevelop Game engine Unity3D

Un esempio concreto: lato server C'e' altro oltre il client di gioco... N server web (apache, usato per downloads, patch e aggiornamenti) Chat server (python & twisted) Master server (C++ & Raknet, lista delle partite in corso) N game servers (server dedicati per ospitare le partite)

Come iniziare a fare giochi? I programmatori sono avvantaggiati ma oggi con i giusti tool chiunque con abbastanza determinazione e volontà può fare un gioco Scelta dell'engine Engine custom (es: C++, OpenGL, OpenAL, ODE, SDL, RakNet, etc) Engine generico (es: Unity3D, GameMaker, etc)...oppure, fare un Mod Source engine, Quake 3 engine, Minecraft, etc.. Es: cambio di textures, audio, modelli 3d, impostazioni e valori legati al gameplay fino ad arrivare ad una total conversion Mod divenuti giochi a parte: Team fortress, Counter Strike, Dear Esther, DayZ

Partite in piccolo! Avere tante idee per un gioco è semplice Partire da una idea semplice e...ridurla della metà Obiettivo per il primo gioco: Tetris!

Cosa devo sapere per fare un gioco? Conoscenza della lingua Inglese (almeno scritto) Algebra lineare (Operazioni su vettori, prodotti scalari, matrici, etc...) Tutte le guide, tutorial e libri sono in Inglese...rassegnatevi :D Vedi: http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/ Fisica dei corpi rigidi (Centro di massa, velocità lineari e angolari, accelerazione, etc) Saper usare Google ;-) Ormai si trova di tutto su internet, bisogna solo sapere cosa cercare...

Domande?