Linux Day 2013 Messina - Sviluppo di videogiochi in Linux
1. Sviluppo di videogiochi in Linux
2013
Linux Day 2013
27/10 - Messina
1
Vittorio Romeo
http://vittorioromeo.info
2. Chi sono?
●
Studente di informatica
–
●
●
1° anno, UNIME
Appassionato di
informatica e
videogiochi
Programmatore
autodidatta
Linux Day 2013
27/10 - Messina
2
Vittorio Romeo
http://vittorioromeo.info
3. Di cosa parliamo?
●
La mia esperienza con GNU/Linux
–
●
●
GNU/Linux come ambiente di sviluppo
Sviluppo open-source
–
–
–
●
Progetti e risultati
Creare videogiochi – perché?
Programmazione sociale
Opportunità di guadagno
Live coding: clone di Breakout
Linux Day 2013
27/10 - Messina
3
Vittorio Romeo
http://vittorioromeo.info
4. I miei progetti
Linux Day 2013
27/10 - Messina
4
Vittorio Romeo
http://vittorioromeo.info
5. Open Hexagon
●
Gioco arcade gratuito,
open-source, multipiattaforma
–
–
–
–
Nato come un clone di
“Super Hexagon”
Fanbase di circa 2000
giocatori (Facebook)
7500 risultati per “Open
Hexagon” su YouTube
C++11, Lua, JSON
Linux Day 2013
27/10 - Messina
5
Vittorio Romeo
http://vittorioromeo.info
12. Gamedev: esperienza a 360°
Un videogioco ha bisogno
di:
–
–
–
–
–
–
–
–
Meccaniche
Grafica
Concetto
Design
Codice
Grafica
Musica
Sonoro
Storia
Community
...
Linux Day 2013
27/10 - Messina
Musica
Stile
Storia
Suoni
Videogioco
●
Engine
Implementazione
Scripting
Distribuzione
Grafica
Risorse
Musica
Suoni
12
Vittorio Romeo
http://vittorioromeo.info
13. Come realizzare tutto ciò che serve?
Linux Day 2013
27/10 - Messina
13
Vittorio Romeo
http://vittorioromeo.info
14. Usiamo dei tool/framework?
●
Vantaggi
–
–
–
●
Strumenti validi
Tempo di sviluppo rapido
Facile gestione di risorse
Svantaggi
–
–
–
–
–
–
Limitazioni
Compatibilità
Poca efficienza
Difficile collaborazione
Closed-source/a pagamento
Diseducazione
Linux Day 2013
27/10 - Messina
14
Vittorio Romeo
http://vittorioromeo.info
15. Ricominciamo da zero:
GNU/Linux + strumenti open-source
Linux Day 2013
27/10 - Messina
15
Vittorio Romeo
http://vittorioromeo.info
16. Sviluppo con GNU/Linux
●
Controllo totale
–
●
Esperienza educativa
–
●
–
●
●
Innumerevoli risorse
Se qualcosa manca... si contribuisce
Nessuna spesa richiesta
–
●
Capire veramente come funzionano
le cose
Collaborazione open-source
–
●
Nessuna limitazione
Tutto disponibile gratuitamente
Massima efficienza
Target universali
Grande community
Linux Day 2013
27/10 - Messina
16
Vittorio Romeo
http://vittorioromeo.info
17. Cosa ci guadagno?
Linux Day 2013
27/10 - Messina
17
Vittorio Romeo
http://vittorioromeo.info
18. Guadagni economici
●
Modello Freemium
–
●
Donazioni
–
●
●
●
Incentivare con reward
Dual-licensing
–
●
Evitare il pay-to-win
Esempi: Qt e OpenOffice
Kickstarting
Opportunità lavorative
Codice gratis, risorse a
pagamento
Linux Day 2013
27/10 - Messina
18
Vittorio Romeo
http://vittorioromeo.info
19. Guadagni personali
●
Esperienza
–
–
–
–
●
Soddisfazione
–
–
●
Lavorare su GNU/Linux
Scrivere codice efficiente e portabile
Gestire e creare risorse
Distribuzione e networking
Realizzare un gioco completo
Ottenere feedback
Community
–
–
Fan-base intorno ai propri progetti
Target esistente per progetti futuri
Linux Day 2013
27/10 - Messina
19
Vittorio Romeo
http://vittorioromeo.info
20. Guadagni universali
●
Librerie, snippet
–
●
Documentazione, Q/A
–
–
●
Qualsiasi contribuzione
open-source può tornare
utile!
StackOverflow, …
Creazione postmortem,
tutorial, articoli
Un'esperienza nativa
videoludica in più per
GNU/Linux
–
Più giochi = più utenti
Linux Day 2013
27/10 - Messina
20
Vittorio Romeo
http://vittorioromeo.info
21. Da dove inizio?
Linux Day 2013
27/10 - Messina
21
Vittorio Romeo
http://vittorioromeo.info
22. Open-source: infinite possibilità
●
●
●
●
●
●
●
C & SDL
C++ & SFML2
Python & PyGame
Lua & Love2D
Java & LibGDX
JavaScript & WebGL
...
Linux Day 2013
27/10 - Messina
22
Vittorio Romeo
http://vittorioromeo.info
23. Live coding:
clone di Breakout
Linux Day 2013
27/10 - Messina
23
Vittorio Romeo
http://vittorioromeo.info
24. Live coding: Breakout
●
160~ linee di codice
–
C++11
●
Nuovo standard
–
–
–
–
Più moderno
Più veloce
Più conciso
SFML2
●
Wrapper C++ per:
–
–
–
Linux Day 2013
27/10 - Messina
OpenGL
Libsndfile
GLFW
24
Vittorio Romeo
http://vittorioromeo.info
25. Partecipa al live coding!
Linux Day 2013
27/10 - Messina
25
Vittorio Romeo
http://vittorioromeo.info
26. Compilatori C++11
●
GCC
–
–
●
Versione 4.6.0: compila con `-std=c++0x`
Versione 4.7.2: compila con `-std=c++11`
Clang
–
–
Versione 2.8: compila con `-std=c++0x`
Versione 3.0: compila con `-std=c++11`
Linux Day 2013
27/10 - Messina
26
Vittorio Romeo
http://vittorioromeo.info