SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
Pubblica il tuo gioco sugli App Store in
                         pochi giorni
           ovvero “Guida pragmatica allo stato dell’arte del Mobile Game Programming”



                                                        <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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 :)
                                                  <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Target

                               <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Target




                                   <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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)
                                              <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                   <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Android

   • Android
      • C++, Java (OpenGL ES 1.1)
      • Framework di basso livello
         • Cocos2dx, Cocos2d-android, LibGDX,
             AndEngine
         • Framework di alto livello
            • Corona
                                       <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                       <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Scelta del target
 iOS ha la maggior parte del mercato applicativo
 Il rapporto con Android è circa 50:1
 10.000.000 vs 200.000 per smartphone
 4.000:1 su Tablet (dati 25/02/2011)
 60.000 vs 16




                                                   <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                                        <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Scelta del target




                                              <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Scelta del tipo di gioco

                                <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                                 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                                          <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                                          <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Scelta del fw/linguaggio

                           <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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


                                                    <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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)
                                             <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                             <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Corona e Cocos2D: un confronto
                                              Corona                         Cocos2D iPhone
              Serve un Mac             Si (Beta per Windows)                         Si
                 Android                          Si                                No
             Mac App Store                       No                                  Si
             Apprendimento                 Semplicissimo                       Impegnativo
              Performance                  Discrete/Buone                        Eccellenti
            Velocità Sviluppo                Eccellente                       Discreta/Buona
             Motore di Fisica                  Box3D                         Box3D/Chipmunk
                Comunità                       Buona                            Eccellente
              Tool 3rd party                    Buoni                            Eccellenti
                Maturità                      Discreta                            Ottima
                  Costo                      Fee Annuo                         Open Source
                                                               <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Cocos2D per iPhone

                                     <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                                       <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                        <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Cocos 2D iPhone




                                            <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Cocos 2D iPhone




                                            <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Cocos 2D Demo

                                   <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Scelta dei tool per
                               Cocos2D
                                      <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                                   <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Corona SDK

                                 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                         <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                               <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                                <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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


                                                        <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Corona e Lua




                                         <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Corona e Lua




                                         <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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
                                                       <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Uso di Tiled Maps con Lime




                                                       <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Corona e Lua




                                         <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Corona Demo

                                  <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Scelta dei tool per Corona

                          <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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.
                                                        <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Mi serve un grafico???
                          e un musicista?


                                       <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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!

                                                           <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                                          <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Risorse free online

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




                                                <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Ok, ho finito il gioco, e
                             ora?
                                  <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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

                                                               <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Risorse per Cocos2d

                                      <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
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


                                                               <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Risorse per Corona

                                     <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Pubblica il tuo gioco sull’App Store in pochi giorni

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




                                                               <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011
Questions and Answers

                              <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA>
Saturday, March 5, 2011

Weitere ähnliche Inhalte

Mehr von Ugo Landini

Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondUgo Landini
 
Osd 2016 Middleware Track
Osd 2016 Middleware TrackOsd 2016 Middleware Track
Osd 2016 Middleware TrackUgo Landini
 
Codemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labCodemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labUgo Landini
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentationUgo Landini
 
Scala Primi Passi
Scala Primi PassiScala Primi Passi
Scala Primi PassiUgo Landini
 

Mehr von Ugo Landini (9)

Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
Fuse webinar
Fuse webinarFuse webinar
Fuse webinar
 
Osd 2016 Middleware Track
Osd 2016 Middleware TrackOsd 2016 Middleware Track
Osd 2016 Middleware Track
 
Codemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labCodemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech lab
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentation
 
2.5 Tiers
2.5 Tiers2.5 Tiers
2.5 Tiers
 
Concurrency
ConcurrencyConcurrency
Concurrency
 
Scala Primi Passi
Scala Primi PassiScala Primi Passi
Scala Primi Passi
 

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

  • 1. Pubblica il tuo gioco sugli App Store in pochi giorni ovvero “Guida pragmatica allo stato dell’arte del Mobile Game Programming” <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 2. 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 :) <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 3. Target <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 4. Target <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 5. 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) <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 6. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 7. Android • Android • C++, Java (OpenGL ES 1.1) • Framework di basso livello • Cocos2dx, Cocos2d-android, LibGDX, AndEngine • Framework di alto livello • Corona <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 8. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 9. Scelta del target iOS ha la maggior parte del mercato applicativo Il rapporto con Android è circa 50:1 10.000.000 vs 200.000 per smartphone 4.000:1 su Tablet (dati 25/02/2011) 60.000 vs 16 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 10. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 11. Scelta del target <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 12. Scelta del tipo di gioco <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 13. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 14. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 15. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 16. Scelta del fw/linguaggio <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 17. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 18. 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) <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 19. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 20. Corona e Cocos2D: un confronto Corona Cocos2D iPhone Serve un Mac Si (Beta per Windows) Si Android Si No Mac App Store No Si Apprendimento Semplicissimo Impegnativo Performance Discrete/Buone Eccellenti Velocità Sviluppo Eccellente Discreta/Buona Motore di Fisica Box3D Box3D/Chipmunk Comunità Buona Eccellente Tool 3rd party Buoni Eccellenti Maturità Discreta Ottima Costo Fee Annuo Open Source <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 21. Cocos2D per iPhone <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 22. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 23. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 24. Cocos 2D iPhone <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 25. Cocos 2D iPhone <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 26. Cocos 2D Demo <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 27. Scelta dei tool per Cocos2D <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 28. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 29. Corona SDK <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 30. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 31. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 32. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 33. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 34. Corona e Lua <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 35. Corona e Lua <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 36. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 37. Uso di Tiled Maps con Lime <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 38. Corona e Lua <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 39. Corona Demo <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 40. Scelta dei tool per Corona <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 41. 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. <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 42. Mi serve un grafico??? e un musicista? <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 43. 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! <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 44. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 45. Risorse free online • Risorse free: • http://reinerstileset.4players.de/ • http://tango.freedesktop.org • http://freesound.org <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 46. Ok, ho finito il gioco, e ora? <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 47. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 48. Risorse per Cocos2d <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 49. 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 <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 50. Risorse per Corona <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 51. Pubblica il tuo gioco sull’App Store in pochi giorni • http://developer.anscamobile.com/ • http://www.lua.org/ <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011
  • 52. Questions and Answers <ugo landini> - <ugo.landini@gmail.com> – <JUG ROMA> Saturday, March 5, 2011