Mecanismo de jogo de plataforma cruzada 2D para Android e iOS? [fechadas]

262

Eu trabalhei por algum tempo com o Unity3d e achei a parte 2D com OnGUI () ou GUITextures muito desajeitada. Além disso, mesmo um jogo menor feito no Unity3d tem pelo menos 10 MB de download, o que é demais para um jogo 2D.

Atualmente, estou procurando um mecanismo para 2D. Eu tentei o Cocos2D, mas é apenas para iOS e não gostaria de reescrever tudo em outro idioma para Android (por exemplo, a porta Java do Cocos2d para Android não é uma opção). Em vez disso, quero escrever o código uma vez e, com menos problemas, implantá-lo no iOS, Android e possivelmente no Windows Phone 7. Eu tenho o Mac e o Windows.

Apenas para ser mais detalhado, eis os meus requisitos para o mecanismo:

  • deve ser multiplataforma
  • deve ser eficiente
  • deve ser C ++, Java, C # ou Objective C, pois estou confortável com eles e NÃO Flash, Javascript, HTML5, pois não sou desenvolvedor web
  • deve ter uma grande comunidade, tutoriais, bibliotecas adicionais que cubram a maioria das coisas que você teria ao desenvolver diretamente no iOS ou Android (cobrança no aplicativo, facebook etc.)
  • o pacote final entregue não deve ser muito grande
  • o motor pode ser gratuito, mas eu também não me importaria de pagar um preço razoável

Encontrei os seguintes mecanismos:

  • Marmalade (e o mecanismo IwGame em cima) - C ++, encontrou resenhas muito positivas do Marmalade, mas não tenho certeza sobre o IwGame. EDIT (março de 2013) : Parece que o Marmalade SDK agora inclui o Cocos2Dx e algum IDE embutido, o que o torna muito melhor (e custa US $ 150 por ano para o desenvolvedor independente, o que é bom para mim).
  • Corona SDK - Lua (eficiência duvidosa), também precisa de conexão com a internet para compilar código
  • Cocos2d-x - C ++, recebeu muitas críticas de desenvolvedores, principalmente positivas e muitas acham que é melhor para 2D
  • Código de partícula - Java + Eclipse, não foi encontrado nenhum comentário ou comentário
  • Moai - Lua, não encontrou nenhum comentário / opinião sobre ele
  • Mecanismo de macaco - parece ter poucos recursos
  • Haxenme - é o Flash, nunca o usei e não quero
  • use o Unity3d, mas com pacotes 2D como o 2D Toolkit
  • portas de SDL para Android (também aqui ) e iOS - não parece ter muito suporte ou desenvolvimento atual (?)
  • GLBasic - Linguagem básica, eu não gosto
  • playN - parece estar no início do desenvolvimento (?)
  • Gamvas - HTML5, não me parece um mecanismo maduro
  • Ignifuga - Python, também não parece maduro
  • ORX - não tenho certeza se ele ainda está desenvolvido (?)
  • Construto 2 - lembra o GameMaker, pode ser bom para protótipos rápidos, mas definitivamente não é para jogos no nível da indústria
  • XNA e depois portar o jogo usando ExEn (seria necessário o Mono Touch para portar para iOS e Mono para Android para portar para Android) - C #, e provavelmente é mais pensado para pessoas provenientes de produtos da Microsoft como xBox (eu venho do Android). Além disso, essas ferramentas Mono custam US $ 800 no total para pequenos desenvolvedores
  • Impacto - JavaScript, usa HTML5. Eu não gosto muito de JavaScript (por exemplo, C # preferido no Unity3d), também não tenho certeza sobre a eficiência, pois ele roda no navegador (?)
  • GameMaker - linguagem de script própria GML e, na verdade, eu me lembro dessa como uma ferramenta para não programadores. Ele realmente se transformou em um motor real, quero dizer para desenvolvimento sério?
  • AppGameKit - C ++, ainda parece ser bastante novo. Ainda não foram encontrados comentários
  • use o Cocos2D e o Objective C para desenvolver apenas para iOS e faça um APK para Android usando o Stella SDK . Alguém já fez isso? Tenho certeza de que haverá limitações e a integração com o faturamento no aplicativo do Google, a AdMob e o Facebook no Android?
  • Moscrif - JavaScript, parece mais para ex-desenvolvedores da web
  • Starling - Flash 11, não gosto muito de Flash
  • ND2D - ainda não 1.0, possui muitos recursos?

Então, ficaria feliz se você pudesse comentar suas experiências com os mecanismos e sugerir qual da lista (ou qualquer outra coisa que eu tenha perdido) é a melhor para os requisitos descritos. Também posso estar errado com minhas primeiras impressões sobre alguns dos motores.

Atualmente, estou pensando em Marmalade + IwGame como a melhor opção, mas como não tenho muitas informações sobre Cocos2d-x e código de partículas, não tenho muita certeza.

Obrigado!

EDIT (junho de 2013): Até agora, criei 2 jogos 2D multiplataforma e usei o Unity3D com o plugin 2D Toolkit para ambos. Para o jogo com GUI simples, usei um sistema de GUI simples e auto-fabricado, baseado no próprio Unity. Para um mais complexo (por exemplo, onde os elementos da GUI podem se sobrepor), usei o plug-in NGUI. Recentemente, o 2D Toolkit adicionou mais algumas classes para a GUI, o que é muito útil, pois é necessário usar 2 sistemas diferentes para atlas de textura ao combinar o NGUI com o 2D Toolkit. Definitivamente vou tentar esse no próximo jogo 2D. O principal motivo para escolher o Unity3D para jogos em 2D foi que eu já estava mergulhado no Unity3D, tanto em termos de experiência quanto em trechos de código acumulados para reutilização. Além disso, comprei o Unity3D pro (com Android Pro e iOS Pro) para jogos em 3D e fazia todo o sentido pagar apenas US $ 60 adicionais pelo 2D Toolkit para obter também jogos em 2D. Até agora eu não lamento minha decisão, parece ter sido ideal para o meu caso. A única coisa que me deu dor de cabeça foi adicionar recursos sociais aos plugins do Prime31 (plugins sociais Android e iOS), mas presumo que os erros deles não sejam culpa do Prime31, mas do Twitter / Facebook, então provavelmente veria os mesmos erros nos qualquer outro mecanismo ou plugin.

EDIT (Jan 2014) : Eu acho que com o Unity 4.3 a resposta para minha pergunta é bastante óbvia agora: o novo sistema de sprites do Unity e talvez o 2DToolkit superam totalmente qualquer outra coisa, especialmente para pessoas que (como eu) estão no Unity há algum tempo e comprou a versão Pro com complementos.

iseeall
fonte
e qual você escolheu? e quanto a libgdx ou andEngine, você nem mencionou sobre eles, os quais eu pensei que eram os mais
populares
1
@kosnkov - Ele especificou requisitos que incluem uma gravação e uma implantação duas vezes (iOS e Android com opção de Windows Phone um plus). O andEngine é apenas Android e a libgdx não tem como alvo o iOS (nem o Windows Phone), portanto eles não se qualificam.
sprite
1
Acabei fazendo um jogo 3D com o plugin Unity3D e NGUI para GUI. Se eu tiver que fazer um jogo 2D, eu acho que eu vou tomar Cocos2d-x e Marmelade
iseeall
1
a julgar pelo site, tenho certeza que a libgdx suporta o iOS agora. Ainda não há telefone com Windows.
Ehtesh Choudhury
1
como é que perguntas extremamente úteis como essa sempre são fechadas como "fora de tópico"? talvez por isso deve criar uma plataforma separada para "informação" e opiniões
Bogdan Alexandru

Respostas:

33

Eu trabalhei Marmaladee achei satisfatório. Embora não seja gratuito e a comunidade de desenvolvedores também não seja grande o suficiente, você ainda pode lidar com a maioria das tarefas usando seus tutoriais. (Vou escrever meus tutoriais assim que tiver algumas vezes também).
IwGameé um bom mecanismo, desenvolvido por um dos usuários do Marmalade. É bom para um jogo básico, mas se você estiver procurando por coisas sérias para jogos avançados, também poderá usar o Cocos2D-xMarmalade. Eu nunca usei o Cocos2D-x, mas há uma extensão no Marmalade Github.
Outra coisa boa do Marmalade é que ele EDK (Extension Development Kit)permite que você faça uma extensão para qualquer funcionalidade necessária disponível no código nativo, mas não no Marmalade. EU'

Edit :
Marmalade agora tem sua própria ferramenta RAD (Rapid Application Development) apenas para desenvolvimento 2D, nomeado como Marmalade Quick. Embora a codificação esteja em Lua, não em C ++, mas como é construída sobre o C ++ Marmalade, você pode facilmente incluir uma biblioteca C ++ e todas as outras extensões EDK. Além disso, as extensões Cocos-2Dxe Box2Destão incluídas no Quick. Eles lançaram recentemente a versão Release (esteve em beta por 3-4 meses). Eu acho que nós realmente procuramos apenas desenvolvimento 2D, você deve experimentá-lo.

Atualização: O
Unity3D lançou recentemente o suporte para jogos 2D, o que parece melhor do que qualquer outro mecanismo de jogos 2D, devido à sua GUI e Editor. Suporte de física, sprite etc. está embutido. Você pode dar uma olhada.

Atualização 2 A
Marmalade descontinuará seu SDK em favor da produção interna de jogos em breve. Portanto, não será uma decisão sábia confiar nisso.

novato
fonte
Você também pode ler esta pergunta SO também - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
Noob
Obrigado, parece que o Marmalade com Cocos2D-x em cima dele pode realmente ser a melhor opção para o meu caso.
Iseeall 03/09/12
2
Esquecer [LibGDX] [1] quando esse tipo de pergunta é levantada é imperdoável !!! ;) [1]: libgdx.badlogicgames.com
Ewoks
Verifique as atualizações :-)
noob
O Unreal Engine 4.3.0 também pode ser um candidato. É C ++ com editor e tudo.
Ervinbosenbacher
43

O LibGDX é um dos melhores mecanismos que já usei, funciona em quase todas as plataformas e funciona duas vezes mais rápido que o cocos2d-x na maioria dos testes que fiz. Você pode usar qualquer idioma da JVM que desejar. Aqui está um tutorial de 13 partes em Java, e aqui está um monte usando o jruby. Existe uma boa ferramenta de animação esquelética que funciona com ela aqui , e também foi compatível com mapas TMX lado a lado. A estrutura da interface do usuário é incrível, e possui um gráfico de cenas e uma API no estilo de ator semelhante às cenas, sprites e ações do cocos2d. A comunidade é incrível, as atualizações são frequentes e a documentação é boa. Não deixe que a parte do java o assuste, é rápido e você pode usar o jruby ou o scala ou o que quiser. Eu o recomendo para trabalhos em 2D ou 3D, ele suporta ambos.

Kamek
fonte
5
Agora, o LibGDX também funciona com iOS. Mas custa ~ $ 400 para a licença Monotouch :)
JavaRunner
5
A partir da versão 0.9.9 ele usa RoboVM para iOS, que é gratuito
James McCracken
1
Eu trabalhei com o LibGDX e o cocos2dx extensivamente. E diria que o cocos2dx é muito melhor (desenvolvimento mais rápido + desempenho + ferramentas). Se você estiver usando apenas Android, não há problema em usar o LibGDX de outra forma! O suporte a várias plataformas do LibGDX é muito, muito ruim, o que depende do RoboVM ou do Xamarin. O Xamarin e o RoboVM tornam a compilação e a execução muito lentas no iOS. Eventualmente, torna-se muito difícil de manter.
User18853 07/07
13

Você menciona o Haxe / NME, mas parece não gostar dele instintivamente. No entanto, minha experiência com isso tem sido muito positiva. Claro, a API é uma reimplementação da API do Flash, mas você não se limita a segmentar o Flash. Também é possível compilar em HTML5 ou aplicativos nativos do Windows, Mac, iOS e Android. Haxe é uma linguagem moderna e agradável semelhante a Java ou C #.

Se você estiver interessado, escrevi um pouco sobre minha experiência usando o Haxe / NME: link

zwets
fonte
Obrigado, apenas no seu artigo: "se você tem um jogo HTML5 / Javascript (ou Flash / ActionScript) e gostaria de levá-lo ao Windows, iOS e além". Acho que esse mecanismo é exatamente para desenvolvedores da web que desejam mudar para plataformas móveis.
Iseeall 03/09/12
O Haxe / NME não é um Game Engine, é uma plataforma que faz parte da sua pilha de tecnologias. Não é para desenvolvedores da Web que desejam mudar para plataformas móveis. É para desenvolvedores de jogos que desejam levar seus jogos para o maior número possível de plataformas sem precisar lidar com idiomas inferiores como JavaScript. HAXE / NME é muito poderoso, mas pelo som das coisas, eu não acho que é o que você estava procurando.
Anber
12

O V-Play (v-play.net) é um mecanismo de jogo multiplataforma baseado no Qt / QML com muitos componentes úteis do jogo V-Play QML para lidar com várias resoluções de tela e proporções, animações, partículas, física, multitoque, gestos, localização de caminhos e muito mais. Referência da API O núcleo do mecanismo é escrito em C ++ nativo, combinado com o renderizador personalizado, os jogos alcançam um desempenho sólido de 60fps em todos os dispositivos.

O V-Play também vem com modelos de jogos prontos para uso para os gêneros de jogos mais bem-sucedidos, como defesa de torre, jogos de plataforma ou quebra-cabeças.

Se você está curioso sobre os jogos criados com o V-Play, veja uma seleção rápida deles:

(Aviso: eu sou um dos caras por trás do V-Play)

Alex Huber
fonte
7

Aqui está apenas uma resposta de Richard Pickup no LinkedIn para uma pergunta semelhante:

Eu usei marmelada e unidade cocos 2dx no iOS e no Android. Para jogos em 2d, o cocos2dx é o caminho a percorrer sempre. A união é um exagero demais para jogos em 2D e, como já foi dito, a marmelada é apenas uma fina camada de abstração, não é realmente um mecanismo de jogo. Você pode até rodar o cocos2d em cima de marmelada. Minha abordagem seria usar o cocos2dx no iOS e no Android e, em seguida, executar o código cocosd2dx na marmelada como uma maneira fácil de portar para o bb10 e ganhar o telefone 7

iseeall
fonte
7

Encontrei um mecanismo de jogo Wave agradável e arrumado alguns dias atrás. Ele usa C # e também possui conversores do Windows Phone e da Windows Store, o que o torna um ótimo substituto do XNA para mim

Deadcow
fonte
6

e o LibGDX da BadLogicGames?

Ewoks
fonte
1
Eu não sabia que o libGDX é executado no iOS. Ele requer uma licença MonoDroid, que agora é (provavelmente, não vejo o aplicativo abaixo de 32kb do MSIL) US $ 999 em vez de US $ 399 por ano.
ashes999
6

Confira o Loom ( http://theengine.co ) é um novo mecanismo de jogo 2D de plataforma cruzada que apresenta códigos e ativos de troca quente em dispositivos. Isso significa que você pode trabalhar no Photoshop em seus ativos, atualizar seu código, modificar a interface do usuário do seu aplicativo / jogo e ver as alterações no (s) seu (s) dispositivo (s) enquanto o aplicativo estiver em execução.

Pensando nos outros mecanismos de jogos de plataforma cruzada que ouvi falar ou até brinquei, o Loom Game Engine é de longe o melhor em minha opinião, com muitos recursos excelentes. A maioria dos outros mecanismos de jogos semelhantes (Corona SDK, MOAI SDK, Gideros Mobile) são baseados em Lua (com uma sintaxe estranha, pelo menos para mim). O Loom Game Engine usa LoomScripts, uma linguagem de script inspirada no ActionScript 3, com alguns recursos emprestados do C #. Se você já desenvolveu em ActionScript 3, C # ou Java, o LoomScript parecerá familiar para você (e estou mais à vontade com essa sintaxe do que com a sintaxe de Lua).

A licença de 1 ano para o Loom Game Engine custa US $ 500, e acho que é um preço acessível para qualquer desenvolvedor de jogos independente. Há algumas semanas, a empresa ofereceu uma licença de 1 ano gratuitamente também. Depois que a licença expirar, você ainda poderá usar o Loom para criar e implantar seus próprios jogos, mas não receberá mais atualizações. Os criadores do Loom estão muito confiantes e prometeram melhorar constantemente seu bebê, fazendo valer a pena comprar outra licença.

Sem mais delongas, aqui estão os excelentes recursos do Loom:

  1. Plataforma cruzada (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. O fluxo de trabalho inspirado no Rails permite que você gaste seu tempo trabalhando com seu jogo (um comando para criar um novo projeto e outro para executá-lo)

  3. Compilador rápido

  4. Edição de código e ativos ao vivo

  5. Possibilidade de integrar bibliotecas de terceiros

  6. Usa o Cocos2DX para renderização

  7. Suporte XML, JSON

  8. LML (linguagem de marcação) e CSS para estilizar elementos da interface do usuário

  9. Biblioteca da interface do usuário

  10. Injeção de dependência

  11. Estrutura de teste de unidade

  12. Física esquilo

  13. Ver suas alterações ao vivo facilita o desenvolvimento de vários dispositivos

  14. Tamanho pequeno de download

  15. Criado para equipes

Você pode encontrar mais vídeos sobre o Loom aqui: http://www.youtube.com/user/LoomEngine?feature=watch

Confira também este tutorial detalhado de 4 partes: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

balazs.bohonyi
fonte
5

Eu tentei AppGameKit, é tanto c ++ e básico. É muito fácil codificar jogos 2D na variante Basic, com física, colisão e muito mais. Também está em desenvolvimento ativo e muito barato (65 $). O principal problema é que é realmente difícil compilar para o Android (você precisa baixar montes de arquivos e seguir guias difíceis e coisas assim). Minha opinião é que ainda não é bom o suficiente para uso comercial, mas é bom para programadores independentes Tem uma comunidade de tamanho médio

Steven Kaydn
fonte
4

Atualmente, uso o Corona para aplicativos de negócios com grande sucesso. Quanto aos jogos, tenho a impressão de que ele não fornece o desempenho que alguns dos outros mecanismos de desenvolvimento de plataforma cruzada oferecem. Vale ressaltar que Carlos (fundador da Ansca Mobile / Corona SDK) iniciou outra empresa em um mecanismo concorrente; Motor Lanica Platino para Appcelerator Titanium. Embora eu não tenha trabalhado com isso pessoalmente, parece promissor. No entanto, lembre-se de que ele vem com um preço de US $ 999 / ano.

Tudo isso dito, tenho pesquisado Moai há um tempo (desde que eu já estou familiarizado com a sintaxe de Lua) e isso parece promissor. O fato de poder compilar para várias plataformas, não se limitando a ambientes móveis, é atraente.

O Multimedia Fusion 2 também vale a pena, considerando a complexidade dos jogos produzidos e o desempenho realizado a partir deles. Vincere Totus Astrum ( http://gamesare.com ) vem à mente.

Sean Perryman
fonte
3

Recentemente, usei um mecanismo AS3: PushButton (agora está morto, mas ainda está funcional e você pode usar outra coisa) para fazer este trabalho. Para que funcione com Android e iOS, o projeto foi compilado no AIR para ambas as plataformas e tudo funcionou sem danos ao desempenho. Como o Flash Builder é meio caro (US $ 249), você pode usar o FlashDevelop (existem alguns tutoriais para compilar no AIR com ele).

Flash pode ser uma opção, pois é muito fácil de aprender.

Kleber
fonte