Desenvolvimento de jogos para celular em HTML5 x aplicativos de jogos nativos [fechado]


12

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.


2
A unidade ainda requer o web player. Eles estão trabalhando na implantação do Flash 11, mas isso não sairá por um tempo. Não joguei um jogo HTML5 em um navegador móvel que se sentiu bem. E o áudio HTML5 ainda é um monte de imprudência.
michael.bartnett

1
Se você quer "sensação nativa", precisa de um aplicativo nativo ... caso contrário, você sempre estará limitado ao denominador comum das plataformas que deseja suportar.
bummzack

Ah, claro, sem nenhum trabalho extra eu estaria. Mas um acordo pode ser alcançado, desde que eu não precise reescrever todas as bases de um jogo, adicionar código mais especializado para interfaces de toque seria completamente aceitável.
Vic Goldfeld

1
Baseado na minha experiência, jogos nativos têm muito mais desempenho do que os HTML5 em telefones de gama baixa
Nick Shvelidze

Respostas:


7

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.


6

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:

insira a descrição da imagem aqui

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.


Ame o gráfico. Alguma chance de uma atualização de 2016?
Dan Dascalescu 6/09/16

4

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ática createElementé 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.


Solicitando uma atualização em meados de 2012 - o desenvolvimento de jogos em HTML5 melhorou? Ainda há problemas de desempenho e de áudio?
Flash

3

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 ...


3

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.


Oh meu Deus, eu pensei que o NaCl era apenas para código C ++ nativo, mas roda o Mono também ?!
David Gouveia


1

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.


0

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-

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.