SlideShare a Scribd company logo
1 of 32
Download to read offline
Sviluppo di videogiochi in Linux

2013

Linux Day 2013
27/10 - Messina

1

Vittorio Romeo
http://vittorioromeo.info
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
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
I miei progetti

Linux Day 2013
27/10 - Messina

4

Vittorio Romeo
http://vittorioromeo.info
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
10corp
●

Gioco puzzleplatformer gratuito,
open-source, multipiattaforma
–

–

Creato per la
competizione “Ludum
Dare 27”
C++11, JSON

Linux Day 2013
27/10 - Messina

7

Vittorio Romeo
http://vittorioromeo.info
operation bloodshed
●

Gioco azione/arcade
retro
–

In fase di lavorazione

Linux Day 2013
27/10 - Messina

9

Vittorio Romeo
http://vittorioromeo.info
Perché programmare videogiochi?

Linux Day 2013
27/10 - Messina

11

Vittorio Romeo
http://vittorioromeo.info
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
Come realizzare tutto ciò che serve?

Linux Day 2013
27/10 - Messina

13

Vittorio Romeo
http://vittorioromeo.info
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
Ricominciamo da zero:
GNU/Linux + strumenti open-source

Linux Day 2013
27/10 - Messina

15

Vittorio Romeo
http://vittorioromeo.info
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
Cosa ci guadagno?

Linux Day 2013
27/10 - Messina

17

Vittorio Romeo
http://vittorioromeo.info
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
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
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
Da dove inizio?

Linux Day 2013
27/10 - Messina

21

Vittorio Romeo
http://vittorioromeo.info
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
Live coding:
clone di Breakout

Linux Day 2013
27/10 - Messina

23

Vittorio Romeo
http://vittorioromeo.info
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
Partecipa al live coding!

Linux Day 2013
27/10 - Messina

25

Vittorio Romeo
http://vittorioromeo.info
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
Libreria SFML2
●

File binari
–

http://sfml-dev.org/download/sfml/2.1/

–
–
●

Ubuntu: apt-add-repository
ppa:sonkun/sfml-development
Arch Linux: pacman -S sfml

Sorgenti
–

https://github.com/LaurentGomila/SFML

Richiede cmake per la compilazione
Oppure...
●

●

Linux Day 2013
27/10 - Messina

27

Vittorio Romeo
http://vittorioromeo.info
Dati livecoding
http://vittorioromeo.info/Downloads/datiLC.zip
oppure

http://www.mediafire.com/?55q89mv5yarsgci
binaries SFML2

Linux Day 2013
27/10 - Messina

sorgenti SFML2

28

Vittorio Romeo
http://vittorioromeo.info
Game loop
1) Ottieni input
2) Aggiorna logica

Input

3) Disegna sullo schermo

Update
Draw
Linux Day 2013
27/10 - Messina

29

Vittorio Romeo
http://vittorioromeo.info
Coordinate
(0, 0)
(0, lunghezzaFinestra)

(0, altezzaFinestra)

Linux Day 2013
27/10 - Messina

30

Vittorio Romeo
http://vittorioromeo.info
Collisioni
(sx, sopra)

(sx, sopra)

(dx, sopra)

(dx, sopra)

(sopra - sotto)

(dx, sotto)

(sx, sotto)

(sx, sotto)

(dx, sotto)
(sx - dx)

Linux Day 2013
27/10 - Messina

31

Vittorio Romeo
http://vittorioromeo.info
http://vittorioromeo.info

Domande? Commenti?
vittorio.romeo@outlook.com
Grazie per l'attenzione!

More Related Content

Viewers also liked

SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...Danilo Riso
 
Racconti di fine anno scolastico
Racconti di fine anno scolasticoRacconti di fine anno scolastico
Racconti di fine anno scolasticoLicia Tabanelli
 
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiRetroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiCodemotion
 
Milano Game Makers Iniziative 2014
Milano Game Makers Iniziative 2014Milano Game Makers Iniziative 2014
Milano Game Makers Iniziative 2014Alexio Cassani
 
Presentazione tesina
Presentazione tesinaPresentazione tesina
Presentazione tesinachicosstefan
 
Storia dell'Informatica in Italia
Storia dell'Informatica in ItaliaStoria dell'Informatica in Italia
Storia dell'Informatica in ItaliaRetronomicon
 
Codemotion 2012 - Con le mani puoi... programmare
Codemotion 2012 - Con le mani puoi... programmareCodemotion 2012 - Con le mani puoi... programmare
Codemotion 2012 - Con le mani puoi... programmarePaolo Aliverti
 
Android programming
Android programmingAndroid programming
Android programmingPi Libri
 
Programmazione android per esseri umani
Programmazione android per esseri umaniProgrammazione android per esseri umani
Programmazione android per esseri umaniRoberto Bettazzoni
 
Creare app senza programmare
Creare app senza programmareCreare app senza programmare
Creare app senza programmareTommaso Tosi
 
Programmare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneProgrammare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneHigh Secondary School
 
Introduzione alla programmazione Android - Android@tulug lezione 4
Introduzione alla programmazione Android - Android@tulug lezione 4Introduzione alla programmazione Android - Android@tulug lezione 4
Introduzione alla programmazione Android - Android@tulug lezione 4Ivan Gualandri
 
Programmare la creatività - Zappacosta
Programmare la creatività -  ZappacostaProgrammare la creatività -  Zappacosta
Programmare la creatività - ZappacostaCodemotion
 
Android App Development, Creare la nostra prima app
Android App Development, Creare la nostra prima appAndroid App Development, Creare la nostra prima app
Android App Development, Creare la nostra prima appNicola Corti
 
Matematica e Fisica nei Videogiochi - ITIS Malignani - Udine
Matematica e Fisica nei Videogiochi - ITIS Malignani - UdineMatematica e Fisica nei Videogiochi - ITIS Malignani - Udine
Matematica e Fisica nei Videogiochi - ITIS Malignani - UdinePier Luca Lanzi
 
Sviluppare app event-driven con RxJava su Android
Sviluppare app event-driven con RxJava su AndroidSviluppare app event-driven con RxJava su Android
Sviluppare app event-driven con RxJava su AndroidBoris D'Amato
 

Viewers also liked (20)

SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: COSA C’E’ OLTRE IL 2D. COMPRE...
 
Racconti di fine anno scolastico
Racconti di fine anno scolasticoRacconti di fine anno scolastico
Racconti di fine anno scolastico
 
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiRetroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
 
Milano Game Makers Iniziative 2014
Milano Game Makers Iniziative 2014Milano Game Makers Iniziative 2014
Milano Game Makers Iniziative 2014
 
A Lezione Di
A Lezione DiA Lezione Di
A Lezione Di
 
Campus La Camilla -
Campus La Camilla - Campus La Camilla -
Campus La Camilla -
 
Presentazione tesina
Presentazione tesinaPresentazione tesina
Presentazione tesina
 
Storia dell'Informatica in Italia
Storia dell'Informatica in ItaliaStoria dell'Informatica in Italia
Storia dell'Informatica in Italia
 
Codemotion 2012 - Con le mani puoi... programmare
Codemotion 2012 - Con le mani puoi... programmareCodemotion 2012 - Con le mani puoi... programmare
Codemotion 2012 - Con le mani puoi... programmare
 
Android programming
Android programmingAndroid programming
Android programming
 
Programmazione android per esseri umani
Programmazione android per esseri umaniProgrammazione android per esseri umani
Programmazione android per esseri umani
 
Creare app senza programmare
Creare app senza programmareCreare app senza programmare
Creare app senza programmare
 
Programmare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneProgrammare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezione
 
Presentazione Corso Scratch 2.0
Presentazione Corso Scratch 2.0Presentazione Corso Scratch 2.0
Presentazione Corso Scratch 2.0
 
Introduzione alla programmazione Android - Android@tulug lezione 4
Introduzione alla programmazione Android - Android@tulug lezione 4Introduzione alla programmazione Android - Android@tulug lezione 4
Introduzione alla programmazione Android - Android@tulug lezione 4
 
I giochi digitali
I giochi digitaliI giochi digitali
I giochi digitali
 
Programmare la creatività - Zappacosta
Programmare la creatività -  ZappacostaProgrammare la creatività -  Zappacosta
Programmare la creatività - Zappacosta
 
Android App Development, Creare la nostra prima app
Android App Development, Creare la nostra prima appAndroid App Development, Creare la nostra prima app
Android App Development, Creare la nostra prima app
 
Matematica e Fisica nei Videogiochi - ITIS Malignani - Udine
Matematica e Fisica nei Videogiochi - ITIS Malignani - UdineMatematica e Fisica nei Videogiochi - ITIS Malignani - Udine
Matematica e Fisica nei Videogiochi - ITIS Malignani - Udine
 
Sviluppare app event-driven con RxJava su Android
Sviluppare app event-driven con RxJava su AndroidSviluppare app event-driven con RxJava su Android
Sviluppare app event-driven con RxJava su Android
 

Similar to Linux Day 2013 Messina - Sviluppo di videogiochi in Linux

Introduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettivecarlobecchi
 
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Janhu Silvio Crispiatico
 
GNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 MilanoGNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 MilanoRoberto Innocenti
 
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook Roberto Innocenti
 
Presentazione del GDG Cosenza
Presentazione del GDG CosenzaPresentazione del GDG Cosenza
Presentazione del GDG CosenzaFrancesco Florio
 
Serata@gev
Serata@gevSerata@gev
Serata@gevPipperss
 
Unity 3D a C# developer's POV
Unity 3D a C# developer's POVUnity 3D a C# developer's POV
Unity 3D a C# developer's POVLeonardo Alario
 
Linux Day 2010 - "Fare impresa con il software libero"
Linux Day 2010 - "Fare impresa con il software libero"Linux Day 2010 - "Fare impresa con il software libero"
Linux Day 2010 - "Fare impresa con il software libero"mircfe
 
WiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open Source
WiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open SourceWiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open Source
WiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open SourceClaudio Cardinali
 
Da Rotor a .NET Core ed indietro: Microsoft <3 Open Source
Da Rotor a .NET Core ed indietro: Microsoft <3 Open SourceDa Rotor a .NET Core ed indietro: Microsoft <3 Open Source
Da Rotor a .NET Core ed indietro: Microsoft <3 Open SourceAndrea Saltarello
 
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneRiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneAlessandro Carichini
 
Andrea Cartotto Le carte vincenti del Software Libero
Andrea Cartotto Le carte vincenti del Software LiberoAndrea Cartotto Le carte vincenti del Software Libero
Andrea Cartotto Le carte vincenti del Software LiberoLibreItalia
 
Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...
Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...
Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...Andrea Cartotto
 
Perché contribuire a LibreOffice - Gabriele Ponzo
Perché contribuire a LibreOffice - Gabriele PonzoPerché contribuire a LibreOffice - Gabriele Ponzo
Perché contribuire a LibreOffice - Gabriele PonzoLibreItalia
 

Similar to Linux Day 2013 Messina - Sviluppo di videogiochi in Linux (20)

Introduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettive
 
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
 
GNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 MilanoGNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 Milano
 
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
 
Presentazione del GDG Cosenza
Presentazione del GDG CosenzaPresentazione del GDG Cosenza
Presentazione del GDG Cosenza
 
Serata@gev
Serata@gevSerata@gev
Serata@gev
 
Introduzione a Blender
Introduzione a Blender Introduzione a Blender
Introduzione a Blender
 
Linux Day 2017 - Italia
Linux Day 2017 - ItaliaLinux Day 2017 - Italia
Linux Day 2017 - Italia
 
Flash e software libero
Flash e software liberoFlash e software libero
Flash e software libero
 
Multimedia con GNU/Linux
Multimedia con GNU/LinuxMultimedia con GNU/Linux
Multimedia con GNU/Linux
 
Unity 3D a C# developer's POV
Unity 3D a C# developer's POVUnity 3D a C# developer's POV
Unity 3D a C# developer's POV
 
Windows vs-linux
Windows vs-linuxWindows vs-linux
Windows vs-linux
 
Linux Day 2010 - "Fare impresa con il software libero"
Linux Day 2010 - "Fare impresa con il software libero"Linux Day 2010 - "Fare impresa con il software libero"
Linux Day 2010 - "Fare impresa con il software libero"
 
WiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open Source
WiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open SourceWiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open Source
WiiLD Lavagna Interattiva Multimediale con Gnu/Linux e Software Open Source
 
Da Rotor a .NET Core ed indietro: Microsoft <3 Open Source
Da Rotor a .NET Core ed indietro: Microsoft <3 Open SourceDa Rotor a .NET Core ed indietro: Microsoft <3 Open Source
Da Rotor a .NET Core ed indietro: Microsoft <3 Open Source
 
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneRiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
 
Linux console
Linux consoleLinux console
Linux console
 
Andrea Cartotto Le carte vincenti del Software Libero
Andrea Cartotto Le carte vincenti del Software LiberoAndrea Cartotto Le carte vincenti del Software Libero
Andrea Cartotto Le carte vincenti del Software Libero
 
Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...
Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...
Andrea Cartotto - Le "carte vincenti" nel software libero: cittadinanza digit...
 
Perché contribuire a LibreOffice - Gabriele Ponzo
Perché contribuire a LibreOffice - Gabriele PonzoPerché contribuire a LibreOffice - Gabriele Ponzo
Perché contribuire a LibreOffice - Gabriele Ponzo
 

Linux Day 2013 Messina - Sviluppo di videogiochi in Linux