Qual é o estado atual dos mecanismos, estruturas, bibliotecas e conversões de jogos relacionados ao conjunto de tecnologias HTML5 (incluindo bibliotecas CSS3 e JavaScript, como RaphaelJS, Impact, gameQuery); e como o melhor disso se compara ao desenvolvimento de um aplicativo nativo (especialmente para iOS e Android)?
Especialmente em termos de desempenho, visual e de obter essa "sensação nativa".
Considerações sobre soluções como Appcelerator e Corona SDK também são apreciadas. No que diz respeito ao Unity3D, é possível desenvolvê-lo e ainda assim o jogo pode ser jogado em um navegador (como versões atuais do Chrome ou Firefox, pelo menos) sem dependências ou com a instalação do usuário (sem o web player da unidade) .
O que estou procurando é como desenvolver padrões da Web para atingir o número máximo de plataformas (incluindo dispositivos móveis externos), mantendo uma experiência nativa para dispositivos móveis sem precisar implementar o jogo novamente para iOS e Android.
fonte
Respostas:
As bibliotecas HTML5 são surpreendentemente boas, especialmente considerando sua tenra idade. Existem sólidos mecanismos 2D / 3D que suportam efeitos de partículas, física e similares. No entanto, não há nada comparável a mecanismos de jogos estabelecidos e maduros, como Unity ou Unreal Engine.
Também as bibliotecas HTML5 na minha experiência gostam de ser orientadas a eventos. Por exemplo, sprites terão um evento onclick e não haverá realmente um loop de jogo tradicional.
Para desempenho, os aplicativos nativos são muito, muito mais rápidos do que qualquer coisa relacionada à tela do HTML 5. Essa é a extensão da minha experiência, porém, não tenho idéia sobre o Appcelerator ou o Corona SDK.
No entanto, se seu objetivo é mais o "número máximo de plataformas" do que a parte "padrões da web", sugiro uma solução como o Unity, que funciona em quase tudo e, graças ao seu editor embutido, é um mecanismo muito produtivo.
fonte
Tom aqui da Scirra, fazemos do Construct 2 o criador de jogos HTML5 .
Recentemente, escrevemos um blog sobre isso, comparando o desempenho do HTML5 Canvas / WebGl / C ++ DX. Você pode ler sobre isso aqui:
http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis
E aqui está o gráfico:
Sei que não é um desempenho em comparação com os formatos móveis nativos, mas é uma comparação com aplicativos nativos para desktop que devem dar alguma indicação da diferença de desempenho.
fonte
Em primeiro lugar, é agradável trabalhar com o Corona SDK. Lua é uma ótima linguagem, Corona é uma estrutura muito completa e a documentação tem sido ótima até agora.
Na minha opinião, o desenvolvimento de jogos em HTML5 ainda não vale a pena. Tanto nos navegadores de desktop quanto nos móveis. Se seu objetivo é criar um jogo incrível para rodar em computadores e dispositivos móveis, não se preocupe. Se seu objetivo é criar um jogo em HTML5, faça-o e use uma das estruturas que as pessoas mencionaram (consulte Crafty ou Gee para obter mais informações sobre uma interface do tipo desenho).
O principal motivo é que, quando faço um jogo, quero fazer um jogo completo e polido. Parte de fazer um jogo completo e polido é um bom áudio. Embora a
<audio>
tag seja suportada nos principais navegadores (supondo que você forneça formatos diferentes o suficiente), gerenciar sua trilha sonora de forma programáticacreateElement
é meio difícil. O SoundManager 2 é um band-aid, não uma solução. Em muitos casos, ele volta a usar um objeto Flash para desktops. Nesse momento, pergunto: por que não fazer a coisa maldita no Flash?No iOS, a menos que você use um hack como na biblioteca Jukebox da Zynga , na verdade você está limitado a apenas tocar sons em resposta à entrada do usuário. É ridículo.
Além disso, a menos que você esteja empacotando seu jogo HTML5 como um aplicativo, as pessoas precisam de uma conexão para jogar. O tempo que passo mais jogando em dispositivos móveis é no metrô - sem sinal. E se você empacotar seu jogo, não será estranho não ter som? Se estou baixando um jogo, espero um certo nível de responsividade e polimento. Leia: um aplicativo nativo.
Até que os navegadores móveis e avançados do HTML5 sejam mais rápidos e o áudio do HTML5 pare de ser sugado, eu me divertirei jogando com Javascript
<canvas>
e tudo mais, mas não irei tão longe a ponto de produzir um jogo polido. Tudo se resume a quais são seus objetivos. Muito poucos que conheço que jogam e não são desenvolvedores ainda têm jogos HTML5 móveis em seu radar. Novamente, se você quiser criar incríveis jogos em HTML5, faça jogos em HTML5. Se você deseja criar e vender jogos incríveis, priorize a qualidade da experiência de seus jogadores.fonte
Verifique http://cocos2d-javascript.org/
Ainda não está completamente implementado. Mas uma vez feito, pode ser o melhor :)
Existem algumas demos nesse site, elas são muito boas ...
Edit: Apenas marcado, as demos não são compatíveis com dispositivos móveis ...
fonte
Como outras respostas mostraram, a diferença de desempenho é bastante grande. No entanto, há novas maneiras de obter desempenho nativo da Web na Web (usando o Chrome).
O MonoGame é uma implementação de código- fonte aberto da estrutura XNA, projetada para funcionar com o maior número possível de plataformas. Quando isso é combinado com o Google Chromes NaCl (cliente nativo), os resultados são surpreendentes (requer cromo).
Meu conselho seria criar um aplicativo nativo no XNA ou MonoGame e considerar NaCl e / ou ExEn para colocar seu jogo em outras plataformas. A grande maioria da sua base de código será a mesma para todas as plataformas, mas o tamanho reduzido do seu jogo não terá a simplicidade de um jogo HTML5.
O HTML5, na minha opinião, ainda não existe no que diz respeito ao desempenho utilizável, mas existem outras opções que quase rivalizam com a acessibilidade do HTML5, embora adicionando um pouco mais de complexidade (e custo em alguma situação) ao lançamento do seu jogo.
fonte
Eu sugiro o libgdx, um framework baseado em java feito principalmente para implantar no android e desktop, mas recentemente adicionou o html5 ao seu arsenal, eu o recomendaria fortemente. http://code.google.com/p/libgdx/
Alguns jogos portados para html5:
Pax Britannia
Matemática
Vector Pinball (um jogo de exemplo)
fonte
Você pode tentar o PlayN . Não está muito maduro ou está bem documentado no momento, e é preciso algum esforço para fazê-lo funcionar, mas permite programar em Java e exportar seu jogo para várias plataformas diferentes (no momento, Java, HTML5, Flash, Android e iOS e, no futuro, Windows Phone 7).
A vantagem que ele tem sobre Corona, Phonegap etc. é que ele compila seu jogo para cada uma das plataformas, em vez de apenas executá-lo usando uma máquina virtual; isso garante que você obtenha desempenho quase nativo em todas as plataformas.
fonte
Resposta e links impressionantes - obrigado!
Estou fazendo alguns testes comparativos (HTML5 / JS e PhoneGap) e encontrando a mesma resposta. HTML5 ainda não está lá. Não brinquei com nenhuma das respostas mais "exóticas", como app * mobi, que afirma ter um navegador simplificado para jogos, mas o plano geral "Escreva seu jogo em HTML5 e jogue em um telefone" é inviável neste momento. Pode chegar lá, mas não tenho certeza. O navegador simplesmente não pretende ser um mecanismo de renderização, e estamos pulando muitos obstáculos para chegar lá. Em vez disso, acho que veremos alguém com uma alternativa que ganha massa crítica e que decola. O tempo vai dizer.
Eu adoraria qualquer feedback e crítica construtiva do meu trabalho, que está no GitHub e é gratuito para todos.
https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-
fonte