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.
Respostas:
Eu trabalhei
Marmalade
e 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 oCocos2D-x
Marmalade. Eu nunca usei o Cocos2D-x, mas há uma extensão no MarmaladeGithub
.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õesCocos-2Dx
eBox2D
estã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.
fonte
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.
fonte
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
fonte
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)
fonte
Aqui está apenas uma resposta de Richard Pickup no LinkedIn para uma pergunta semelhante:
fonte
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
fonte
e o LibGDX da BadLogicGames?
fonte
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:
Plataforma cruzada (iOS, Android, OS X, Windows, Linux / Ubuntu)
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)
Compilador rápido
Edição de código e ativos ao vivo
Possibilidade de integrar bibliotecas de terceiros
Usa o Cocos2DX para renderização
Suporte XML, JSON
LML (linguagem de marcação) e CSS para estilizar elementos da interface do usuário
Biblioteca da interface do usuário
Injeção de dependência
Estrutura de teste de unidade
Física esquilo
Ver suas alterações ao vivo facilita o desenvolvimento de vários dispositivos
Tamanho pequeno de download
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
fonte
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
fonte
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.
fonte
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.
fonte