Como desenvolvedor Android, o que devo ter em mente para migrar para o iPhone?


9

Como desenvolvedor de jogos para Android, o que devo ter em mente ao desenvolver meu jogo se eu quiser cruzar a plataforma para o iPhone? Alguma estratégia, dicas etc. sobre como migrar para essas duas plataformas móveis?


Em qual idioma a maior parte do seu código está escrita? Java? C / C ++?
Jason Kozak

O Android (e meu aplicativo) é escrito em Java. iPhone é o objetivo C
Bryan Denny

Respostas:


12

Escreva em C / C ++ - essa é a maior coisa que você pode fazer. Ambas as plataformas suportam C e C ++, embora de maneiras diferentes. No Android, você estará usando o NDK. No iPhone, ele pode ser compilado junto com o código Objective-C.

Você precisará investir algum tempo criando os andaimes em torno do código C / C ++ para cada plataforma. Você deve ser bastante genérico nessa área, pois é realmente apenas a conexão da funcionalidade específica do sistema operacional ao código do jogo. Não economize nessa área, a menos que esteja planejando apenas um projeto de plataforma cruzada ou que não se importe em reinventar a roda para cada projeto que você faz.

Use o OpenGL ES - ambas as plataformas têm suporte ao OpenGL ES. Tire vantagem disso. Isso minimizará a quantidade de código que você precisa reescrever. Você ainda terá algumas diferenças em cada plataforma, mas, em geral, a maior parte do seu código funcionará em ambas.

Evite APIs específicas de plataforma / linguagem - isso é óbvio, mas é fácil ser sugado para o uso das classes de coleção Java enquanto você trabalha em Java. Obviamente, se você seguiu a primeira regra acima, não estará fazendo muito em Java. O mesmo acontece da maneira oposta - por mais legais que sejam as classes Foundation no iOS, se você deseja portar para outra plataforma, evite-as.

Como você pode ver, há muitas coisas com que se preocupar ao se tornar multiplataforma. Se você é um pequeno desenvolvedor independente, pode nem valer a pena. Você terá que avaliar se realmente deseja seguir sua própria trilha para poder segmentar várias plataformas. Pode valer a pena aproveitar o que cada plataforma tem a oferecer para ter um ciclo de desenvolvimento mais rápido.

Boa sorte!


11
Você poderia elaborar o que você quer dizer com andaimes em torno do código c ++. Se possível, você poderia vincular um tutorial mostrando o que isso implicaria, pois eu realmente não entendo o que você está falando.
Skeith

5

Esse será um processo bastante doloroso, que vai do Java> Objective-C.

Orientado a dados
Crie um jogo que é amplamente orientado por dados. Acho que isso fala por si só, mas essa direção leva a menos trabalho que você deve reimplementar completamente.

Alto e apertado
Mantenha as coisas muito pequenas e modularizadas. Digo isso porque será muito mais fácil portar se você puder facilmente pegar um componente e implementá-lo, testar e repetir.

Contrato de trabalho
Jogue suas cartas da maneira certa e talvez conheça alguém que possa cuidar disso para você. Se você é o melhor amigo de um desenvolvedor de iPhone, pode comprar um dr. pepper para ajudar a migrar seu código.

Use um mecanismo de várias plataformas
Se você já tem um projeto em andamento, não faz muito sentido. Mas se você estiver prestes a fazer um projeto, que você sabe que será portado para outras plataformas, pode valer a pena aproveitar a tecnologia existente para ajudar a montar seu mundo. O Unity3D estará recebendo suporte para Android com o Unity 3.0.

Conversão / estremecimento / ferramenta
E a minha recomendação menos favorita é que você possa usar algum tipo de ferramenta de conversão para, pelo menos, converter seus modelos em Java> C ... Mas ... eu não apoio isso.


3

Se você está pensando em migrar para o iPhone e seu jogo ainda estiver em desenvolvimento, mude para C ++, caso ainda não o tenha feito. Isso tornará seu código significativamente mais portátil quando chegar a hora.


1

Vou adicionar meus dois centavos a esta discussão - considere escrever seu jogo em uma linguagem de plataforma cruzada, como muitos dos outros disseram aqui ... mas considere C #! É uma linguagem poderosa que é gerenciada e fornece muitos recursos excelentes que o C ++ não pode ajudar no desenvolvimento de jogos - e existe uma ótima biblioteca conhecida como MonoGame , semelhante ao XNA, que roda em todos os tipos de plataformas. Desde a versão 3.0, no momento da redação deste artigo, é possível escrever jogos e portas completos para todas as plataformas móveis com facilidade.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.