Come sviluppatore di giochi Android, cosa dovrei tenere a mente durante lo sviluppo del mio gioco se avessi mai desiderato il gioco multipiattaforma su iPhone? Qualche strategia, suggerimento, ecc. Sul porting su entrambe queste piattaforme mobili?
Come sviluppatore di giochi Android, cosa dovrei tenere a mente durante lo sviluppo del mio gioco se avessi mai desiderato il gioco multipiattaforma su iPhone? Qualche strategia, suggerimento, ecc. Sul porting su entrambe queste piattaforme mobili?
Risposte:
Scrivilo in C / C ++ : questa è la cosa più grande che puoi fare. Entrambe le piattaforme supportano C e C ++, sebbene in modi diversi. Su Android, utilizzerai NDK. Su iPhone, può essere compilato insieme al codice Objective-C.
Dovrai dedicare un po 'di tempo a costruire l'impalcatura attorno al tuo codice C / C ++ per ogni piattaforma. Dovresti essere in grado di essere abbastanza generico in quest'area, dal momento che in realtà sta solo collegando la funzionalità specifica del sistema operativo al tuo codice di gioco. Non lesinare in quest'area a meno che tu non abbia intenzione di realizzare un solo progetto multipiattaforma o che non ti dispiaccia reinventare la ruota per ogni progetto che fai.
Usa OpenGL ES : entrambe le piattaforme hanno il supporto OpenGL ES. Approfittane. Ciò ridurrà al minimo la quantità di codice che è necessario riscrivere. Avrai comunque delle differenze su ciascuna piattaforma, ma nel complesso la maggior parte del tuo codice funzionerà su entrambi.
Evita API specifiche per piattaforma / lingua : questo dovrebbe essere ovvio, ma è facile essere risucchiato nell'uso delle classi di raccolta Java mentre lavori in Java. Naturalmente, se hai seguito la prima regola sopra, non farai molto in Java. Lo stesso vale dal modo opposto: bello quanto le classi Foundation sono in iOS, se vuoi portarlo su un'altra piattaforma, evitali.
Come puoi vedere, ci sono un sacco di cose di cui preoccuparti andando multipiattaforma. Se sei un piccolo sviluppatore indipendente, potrebbe anche non valere la pena. Dovrai valutare se vuoi davvero tracciare il tuo percorso in modo da poter scegliere come target più piattaforme. Potrebbe valere la pena sfruttare ciò che ogni piattaforma ha da offrire per avere un ciclo di sviluppo più rapido.
In bocca al lupo!
Sarà un processo in gran parte doloroso che va da Java> Objective-C.
Data Driven
Costruisci un gioco in gran parte guidato dai dati. Penso che questo parli da solo, ma questa direzione porta a meno lavoro che devi implementare completamente.
Alto e stretto
Mantieni le cose molto piccole e modularizzate. Dico questo perché sarà molto più facile eseguire il port se si può facilmente prendere un componente e implementarlo, testarlo e ripeterlo.
Lavoro a contratto
Gioca bene le tue carte e potresti conoscere qualcuno che può occupartene. Se sei il migliore amico di uno sviluppatore di iPhone, potresti essere in grado di comprarlo un po 'di dr. pepe per aiutarti a migrare il tuo codice.
Usa un motore multipiattaforma
Se hai già un progetto in movimento, allora non ha molto senso. Ma se stai per realizzare un progetto, che sai assolutamente che verrà portato su altre piattaforme, potrebbe valere la pena sfruttare la tecnologia esistente per aiutare a mettere insieme il tuo mondo. Unity3D otterrà il supporto Android con Unity 3.0.
Conversione / shudder / Strumento
E la mia raccomandazione minima preferita è che potresti usare una sorta di strumento di conversione per almeno convertire i tuoi modelli da Java> C ... Ma ... non lo sostengo.
Se stai pensando di eseguire il porting su iPhone e il tuo gioco è ancora in fase di sviluppo, passa a C ++ se non l'hai già fatto. Renderà il tuo codice significativamente più portatile quando sarà il momento.
Aggiungerò i miei due centesimi a questa discussione - considera di scrivere il tuo gioco in un linguaggio multipiattaforma come molti altri hanno già detto qui ... ma considera C #! È un linguaggio potente che è gestito e fornisce molte grandi funzionalità che C ++ non può aiutare nello sviluppo del gioco - e esiste una grande libreria conosciuta come MonoGame che è simile a XNA che gira su tutti i tipi di piattaforme. A partire dalla versione 3.0, al momento della stesura di questo documento, è possibile scrivere con facilità giochi completi e port su tutte le piattaforme mobili.