Da iPhone a AppUp: Porting di "G:Into the Rain"
Con la crescita e la popolarità dello sviluppo di applicazioni per iPhone, molti sviluppatori stanno valutando la possibilità di ampliare il loro mercato in altre piattaforme. Alcuni di loro hanno avuto successo nel porting in AppUp e hanno scoperto alcune sfide e opportunità interessanti tra le piattaforme.
Le domande riportate di seguito sono state rivolte allo sviluppatore Chris Skaggs, CTO di Soma Games, sulla sua esperienza nel porting del suo gioco basato su gravità "G Into the Rain" da iPhone a AppUp.
D. Quali strumenti e metodi hai utilizzato per il porting della tua app in ambiente netbook e perché hai seguito questo percorso?
Chris Skaggs:
Per Soma Games, siamo scesi in campo meno di un mese prima che il centro Intel AppUp venisse annunciato al CES. Quindi abbiamo dovuto prendere alcune decisioni dettate dalla fretta che magari non avremmo preso in altre circostanze. Il nostro gioco era già in esecuzione nella piattaforma iPhone, dove ogni riga dell'app Obj-C si trovava nel suo ambiente naturale, quindi non erano necessarie modifiche, e abbiamo scoperto che il porting di Objective-C in un'applicazione Flex era semplice. Una volta ottenuto un file SWF, è risultato piuttosto semplice creare un wrapper C++ che forniva il layer di autenticazione per il centro Intel AppUp.
Se avessimo avuto più tempo, avremmo creato il gioco dall'inizio in C++ per motivi di prestazioni, ma in definitiva il tipico netbook dispone di tutta la potenza necessaria per eseguire il nostro gioco Flash e anche di più, quindi malgrado tutto non è stato un problema.
D. Come hai gestito le differenze hardware come la risoluzione dello schermo, la funzionalità multi-touch rispetto all'utilizzo di mouse e tastiera e l'accelerometro dell'iPhone?
Chris Skaggs
Ovviamente l'iPhone presenta alcune opzioni dell'interfaccia specifiche che hanno portato allo sviluppo di giochi interessanti che non funzionano in altre piattaforme, ma per ogni caratteristica specifica esiste anche una limitazione significativa. Nel nostro caso, G è stata facilmente convertibile in una caratteristica per netbook e, anche se l'interfaccia e i controlli sono diversi, non si può dire che il gioco sia molto diverso tra l'iPhone e il netbook. Se non altro, il netbook sfrutta i punti di forza del gioco anche meglio dell'iPhone: grafica complessa, musica di atmosfera e una pianificazione precisa sono tutte caratteristiche che funzionano meglio con l'aumento delle dimensioni dello schermo e della qualità hardware.
Il trucco in realtà sta nello sfruttare i punti di forza della piattaforma e evitarne le limitazioni. Basta assicurarsi che qualsiasi applicazione creata sia appropriata per l'hardware in cui verrà utilizzata.
D. Hai avuto sorprese durante il processo di porting? È stato più difficile o più facile del previsto?
Chris Skaggs
Sinceramente è stato più facile del previsto. Quando ho presentato il progetto al mio team pensavo di proporre qualcosa di impossibile da realizzare: "dobbiamo trasferire questa applicazione che abbiamo creato in cinque mesi in una piattaforma completamente nuova in circa tre settimane. Buona fortuna". Ma in realtà la parte Flex del progetto è stata sorprendentemente veloce. Abbiamo avuto qualche problema con la parte del progetto riguardante il wrapper, ma solo rispetto alla velocità con cui abbiamo completato l'altra.
D. Avete perso o potenziato delle caratteristiche?
Chris Skaggs
In realtà abbiamo finito con l'aggiungere diverse nuove caratteristiche, anche se non strettamente legate al processo di porting. G:Into The Rain era già presente nello store iTunes da circa sei mesi e anche se eravamo soddisfatti del risultato sapevamo che alcuni aspetti potevano essere migliorati. Quando abbiamo deciso di dedicarci al porting del gioco su PC, abbiamo stabilito di sfruttare l'opportunità per aggiungere diversi elementi della nostra lista di desideri per l'iPhone. Per cui quando è stato lanciato il centro Intel AppUp, la versione per PC del gioco era in realtà una versione 2, mentre la versione 1.4 è rimasta in iTunes per un altro mese e mezzo. Attualmente le due versioni sono sincronizzate.
D. Quali sono le differenze nella modalità di gioco tra i due dispositivi?
Chris Skaggs
È difficile da dire, soprattutto se devo scegliere una versione preferita. Direi che le due versioni mi attirano da punti di vista diversi. Mi piacciono molto gli aspetti dell'accelerometro e delle funzionalità touch della versione per iPhone, il gioco sembra molto immediato e istintivo. Ma apprezzo anche l'esperienza più coinvolgente offerta dalle dimensioni dello schermo e dall'audio del netbook. In più, la precisione che ottengo sul netbook tira fuori il "geek" che è in me. Come accennavo prima, le differenze nell'interfaccia utente implicano un'esperienza diversa anche in presenza degli stessi elementi e delle stesse funzionalità.
D. È stato necessario richiedere supporto a Intel nel processo? Come definisci il processo di invio e il supporto per AppUp rispetto all'iPhone?
Chris Skaggs
Abbiamo richiesto assistenza in misura ragionevole. La piattaforma PC in generale era una novità per noi e i tempi erano stretti. La parte riguardante l'autenticazione ha richiesto molto lavoro. In quel periodo, l'SDK non includeva alcuni degli strumenti oggi disponibili, per cui quando abbiamo dovuto apportare una modifica al codice C++ in realtà ci siamo mossi alla cieca e abbiamo dovuto inviare l'applicazione alla cieca e fare affidamento sul processo di revisione per scoprire se funzionava o meno. Quindi, il nostro approccio poco ortodosso per il wrapping di Flash in C++ ha generato alcuni errori davvero strani e difficili da risolvere.
A parte questo, però, sono rimasto colpito dal modo in cui Intel è intervenuta e ha collaborato con noi. Ho avuto la sensazione che ci tenessero davvero al nostro successo e ci hanno supportato nella ricerca e nella risoluzione dei nostri piccoli bug strani. Il loro supporto diretto e personale ci ha impressionato molto positivamente.
D. Cambieresti qualcosa o hai suggerimenti da proporre agli sviluppatori impegnati nel porting da iPhone a AppUp?
Chris Skaggs
Non credo che farei niente di diverso, a parte le considerazioni sul linguaggio a cui accennavo prima. In particolare, ripeteremo certamente questa esperienza e il sequel di G è già in fase di sviluppo, con un occhio puntato allo sviluppo multipiattaforma sin dall'inizio. Per quanto riguarda i suggerimenti, direi di procurarsi strumenti di sviluppo software efficaci; le imitazioni gratuite disponibili per il download generano più problemi che risultati. :)