"pubblica il tuo gioco sugli app store in pochi giorni"
DESCRIPTION
Intervento Codemotion del 5 Marzo 2001TRANSCRIPT
<ugo landini> - <[email protected]> – <JUG ROMA>
Pubblica il tuo gioco sugli App Store in pochi giorni
ovvero “Guida pragmatica allo stato dell’arte del Mobile Game Programming”
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Per chi è questo talk
• Sei un bravo sviluppatore, e vuoi cimentarti nella programmazione di videogiochi 2D per Mobile• Non hai significative esperienze di programmazione
videoludica• Hai una buona idea ma non hai molto tempo a
disposizione per imparare nuove tecnologie• Vuoi divertirti, ma possibilmente vuoi anche
guadagnarci dei soldi :)
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Tool
• Tool nativi (SDK) per ogni piattaforma: gratuiti e con subscription per la pubblicazione sullo store• Mercato fluido ed in espansione• Nuovi spazi per tool che• abbassino il Time To Market• siano Cross Platform: iPhone in primis, Android e
poi a seguire tutti gli altri (eventualmente)
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
iPhone
• iOS (iPod/iPhone/iPad)• C, C++ o Objective C (OpenGL ES 1.1)• Framework di basso livello• Cocos2d, Cocos2dx, OOLong (3D)
• Framework di alto livello• Game Salad, Corona
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Android
• Android• C++, Java (OpenGL ES 1.1)• Framework di basso livello• Cocos2dx, Cocos2d-android, LibGDX,
AndEngine• Framework di alto livello• Corona
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Hardware
• L’Hardware è simile• OpenGL ES è il fattore comune
• Android è più frammentato• Molte versioni dell’OS, capacità molto diverse dei
dispositivi• Corona SDK ha recentemente annunciato di
supportare solo dalla 2.1 in poi
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Scelta del target
iOS ha la maggior parte del mercato applicativo Il rapporto con Android è circa 50:110.000.000 vs 200.000 per smartphone4.000:1 su Tablet (dati 25/02/2011)60.000 vs 16
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Scelta del target
• Android è un mercato emergente ma meno remunerativo• ma anche con meno concorrenza, e con la % più alta di applicazioni free
• Se lo sforzo del porting è eccessivo, in questo momento potrebbe convenire realizzare due giochi per iPhone che lo stesso gioco su entrambe le piattaforme• Usare tool cross platform se possibile
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Quale tipo di gioco?
• Molti giochi sono solo per specialisti di settore e hanno degli engine complicati• I Giochi per Mobile Indie Developer alle prime armi
sono altri:• Puzzle, Action• Physics• Platform, RPG
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Un gioco di successo: parte 1
• Un gioco di successo su Mobile oggi:• Ha una grafica colorata e stilosa, oppure molto
semplice e particolare• Un Gameplay specifico per il device (Giroscopio,
Accelerometro, Touch, ecc.)• Non è troppo impegnativo: Casual Gaming e non
Hardcore Gaming
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Un gioco di successo: parte 2
• Permette di giocare con gli altri sulla rete o perlomeno di condividere risultati, classifiche e simili (OpenFeint, GameCenter)• Ha dei livelli bilanciati e che vanno sbloccati man
mano: quasi banali all’inizio, ma intriganti• Deve essere immediatamente giocabile: test dei 30
secondi
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Programmare nativamente
• Utilizzare il linguaggio nativo, senza aiuti e programmando direttamente in OpenGL è una strada lunga e perigliosa• Ovviamente i professionisti non fanno altro che
utilizzare - magari dopo un porting - le loro librerie, tool ed engine preesistenti: una strada non percorribile, non siamo mica i fratelli Carmack
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Corona e Cocos2D
• Corona• Lua, portabile e semplice, physics engine integrato,
discretamente potente, time to market, qualche limite tecnico e mancanza, licenza commerciale
• Cocos2d per iPhone• Objective C, libri e tutorial, standard de facto, open
source, estremamente potente, 2 Physics Engine, versione 0.99.x (quasi 1.0)
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Corona e Cocos2D
• La soluzione migliore - partendo da zero oggi - è usare Corona SDK• se e solo se le limitazioni di Corona permettono di
realizzare il gioco• In caso di gioco non realizzabile con Corona o di
gioco simile ad uno Starter Kit preesistente, Cocos2D
• Più tempo, non portabile su Android, ma portabile su Mac App Store
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Corona e Cocos2D: un confrontoCorona Cocos2D iPhone
Serve un Mac
Android
Mac App Store
Apprendimento
Performance
Velocità Sviluppo
Motore di Fisica
Comunità
Tool 3rd party
Maturità
Costo
Si (Beta per Windows) SiSi NoNo Si
Semplicissimo ImpegnativoDiscrete/Buone Eccellenti
Eccellente Discreta/BuonaBox3D Box3D/ChipmunkBuona EccellenteBuoni Eccellenti
Discreta OttimaFee Annuo Open Source
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Cocos2D: alcune features
• Sprite ed Actions• Scrolling (anche con parallasse)• Scene e Transizioni• Effetti fisica con Box2D (C++) o ChipMunk (C)• (ma ci sono dei wrapper puri Objective C, SpaceManager)
• Tile Maps (TMX)• Particle System
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Cocos2D
• Objective C (ma si può usare Lua tramite Wax!)• C++ se si usa Box2D, C per Chipmunk gestione
memoria con release/retain (la Garbage Collection su iPhone non c’è ancora)• linguaggio in parte hi-level ed in parte low-level• talvolta si deve ricorrere a chiamate OpenGL
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Scelta dei tool per Cocos2D
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Come e da dove partire
• Giochi già fatti da cui partire (a pagamento)• Sapus Tongue, iPhone Game Kit, Starter kit vari
• Uno fra PhotoShop/PixelMator/Gimp/ecc.• Tiled• ParticleDesigner• ZwopTex• Audacity
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Corona
• Corona ha un approccio innovativo• LUA è un linguaggio di scripting molto utilizzato nel
gaming (WoW, ma anche Adobe Lightroom). • LUA è un interprete molto veloce, scritto in C, nato per
essere embedded, open source• Corona “semplicemente” implementa dei binding LUA
per un motore di fisica, Box2D, ed alcune funzioni OpenGL
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Vantaggi di Corona• Un semplice reload nel Simulatore per far ripartire il
gioco• Ciclo di sviluppo/test/deploy molto rapido• Semplice da imparare• Linguaggio funzionale, estremamente espressivo e
potente (closures, ecc.)• Linguaggio molto ben documentato e disponibile su
tutte le piattaforme
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Svantaggi di Corona
• Se mancano dei binding per funzionalità di base non implementabili in Lua, si fa complicata• Ci sono ancora dei bug• Esempio: le funzionalità di Tiles (TMX) sono
implementate da una libreria esterna (Lime, in beta)• su device ci sono problemi di performance per via
della mancanza di culling nativo
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Svantaggi di Corona
• Ci sono dei giochi non realizzabili con Corona• da capire il prima possibile per passare eventualmente a Cocos2D
• La maturità dei tool a corredo non è (ancora) paragonabile a Cocos2D• C’è un fee annuale da pagare
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Uso di Tiled Maps con Lime
• Lime è una libreria LUA per gestire mappe costruite con Tiled (TMX files)• Lime non solo carica e visualizza le mappe, ma può
gestire le proprietà dei Tiles mappandole direttamente su oggetti del motore di Physics• I livelli e come gli oggetti agiscono nel mondo fisico
sono dunque creati visualmente con Tiles, senza scrivere *una* riga di codice
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Come e da dove partire
• Tiled• Lime• attenzione che al 05/03 ha ancora problemi di performance sui device!
• Particle Candy • purtroppo Corona non è compatibile con Particle Designer
• ZwopTex• Uno fra PhotoShop/PixelMator/Gimp/ecc.
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Mi serve un grafico???e un musicista?
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
La Grafica, un tasto delicato
• Se si ha accesso ad un grafico, utilizzarlo :)• Sforzarsi in ogni caso di costruire la propria grafica• Si può proseguire nella programmazione del gioco con una grafica non
professionale, anche per poi trasmettere meglio al grafico stesso cosa si vuole ottenere
• L’icona è fondamentale: è l’elemento più visibile• L’icona da sola vale probabilmente il 50% delle vendite iniziali• Non avrete una seconda possibilità di fare una prima impressione!
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
La Grafica, un tasto delicato
• Realizzare un gioco che non ha bisogno di una grafica complicata e realizzarsela da soli• The Impossible Game, o i vari basati su Stick
Figures• Giochi basati su mappe con tiles
• Possibile reperire risorse free online
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Risorse free online
• Risorse free: • http://reinerstileset.4players.de/• http://tango.freedesktop.org• http://freesound.org
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Ok, ho finito il gioco, e ora?
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Pubblica il tuo gioco sull’App Store in pochi giorni
• Sembra tutto finito. Ora si deve:• Giocare il gioco, guardare gli amici giocarlo,
perfezionarlo: deve essere professionale• Submit all’App Store: e aspettare pazientemente• Cercare di ottenere il massimo numero di review:
creare un video, mandarlo a riviste e blogger per recensirlo
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Pubblica il tuo gioco sull’App Store in pochi giorni
• http://www.cocos2d-iphone.org/• http://www.learn-cocos2d.com• http://cocos2dbook.com/• http://www.iphonegamekit.com/ • https://github.com/probablycorey/wax
Saturday, March 5, 2011
<ugo landini> - <[email protected]> – <JUG ROMA>
Pubblica il tuo gioco sull’App Store in pochi giorni
• http://developer.anscamobile.com/• http://www.lua.org/
Saturday, March 5, 2011