"pubblica il tuo gioco sugli app store in pochi giorni"

Post on 06-Dec-2014

4.362 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Intervento Codemotion del 5 Marzo 2001

TRANSCRIPT

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Target

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Target

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Scelta del target

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Scelta del tipo di gioco

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Scelta del fw/linguaggio

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Cocos2D per iPhone

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Cocos 2D iPhone

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Cocos 2D iPhone

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Cocos 2D Demo

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Scelta dei tool per Cocos2D

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Corona SDK

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Corona e Lua

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Corona e Lua

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Uso di Tiled Maps con Lime

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Corona e Lua

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Corona Demo

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Scelta dei tool per Corona

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Mi serve un grafico???e un musicista?

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Risorse free online

• Risorse free: • http://reinerstileset.4players.de/• http://tango.freedesktop.org• http://freesound.org

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Ok, ho finito il gioco, e ora?

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Risorse per Cocos2d

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <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> - <ugo.landini@gmail.com> – <JUG ROMA>

Risorse per Corona

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Pubblica il tuo gioco sull’App Store in pochi giorni

• http://developer.anscamobile.com/• http://www.lua.org/

Saturday, March 5, 2011

<ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>

Questions and Answers

Saturday, March 5, 2011

top related