Diabos, conversando com o povo da OJTG decidimos entrar no contest de Pac-Man, mas fazer Pac-Man em que!?
Ainda não decidimos ao certo, mas eu andei pirando bastante com javascript (é... isso mesmo... JAVASCRIPT).
Bom primeiramente esta era uma iniciativa que eu iria tomar hora ou outra, eu tenho um projeto grande em mente (acho que todo o desenvolvedor de jogos tem ou teve um) e esse projeto se baseia em ambiente web, utilizando conceitos de Web 2.0 para focar num mercado pouco/mal explorado que é a web (vide o tópico do On Jack Tall Game Conference 2007 sobre mercados mal explorados).
É eu sei que a internet não foi feita originalmente pra isso, mas as vantagens dela são as mesmas sobre os aplicativos stand-alone.
A idéia inicial é deixar a maior parde do trabalho no navegador, uma vez que eu quero usar Java e segundo um artigo da IBM ( em anexo ) aplicativos web 2.0 são complicados para se manter na plataforma Java se não forem construídos de uma forma coerente, uma vez que no ambiente 2.0 o número de requisições é muito maior, e o que consome (e consequentemente gargala) a maior parte da requisição/resposta são a criação de uma conexão com o banco de dados e o tráfego da própria requisição/resposta.
Assim a minha solução se baseia em enviar para cache do usuário o máximo de coisas que eu puder e trafegar somente o necessário. Se ainda assim ficar lento vou ter que aplicar algumas das técnicas para evitar requisições excessivas por AJAX.
Em aplicativos Web 2.0 a interface com o usuário é extremamente mais elaborada e, portanto eu tenho um nível de complexidade bem maior neste ambiente.
Enfim, depois de apanhar que nem um condenado para fazer o script de colisão funcionar corretamente ( sério... foi um bagulho extremamente escabroso pra dar certo ), eu terminei um teste de um tilemap com um personagem na tela, com movimento, animação e (graças a deus) colisão.
Sinceramente não sei se isso vai dar certo até o final, mas até agora estou gostando dos resultados, até agora ele está extremamente crú e eu estarei editando este tópico toda vez que eu fizer alguma coisa a mais, meu objetivo agora é dar uma recalchutada no código pra ele ficar mais legível e abrangente.
O que eu aprendí com tudo isso até agora?
A boa notícia é que eu não preciso me preocupar com Double Buffering da maneira que eu estou fazendo, as imagens dentro das Divs não "flickam", se eu simplismente mudar a posição delas (sem redesenhar tudo numa imagem e depois jogar o resultado na tela), não sei se é o mais certo, mas funcionou até agora.
A má notícia é o mal de todo desenvolvedor Web, o maldito cross-browsing. Eu uso o firefox pra construir tudo, e lá ele vai redondin, no Opera também (e putz... ô browser massa), mas tudo vai por água abaixo quando eu tento rodar no IE =p. Eu preciso ficar usando um monte de "IE hacks" no meu CSS pra renderizar direito, um monte de blocos de script específicos para ele... por aí vai. Como sempre os browsers decentes vão na direção do padrão da W3C, e o IE vai pra onde ele bem entende, maaas como a grande maioria dos usuários da internet usam ele, tem que funcionar, nem que seja na marra.
Até agora meus experimentos com javascript para jogos rendeu bastante, e meus resultados até agora estão em anexo. Só é como eu falei, devido ao cross-browsing e ao fato de que eu ainda estou engatinhando nesse lance todo, não funciona na porcaria do IE!!! =p. No Firefox e no Opera vai numa boa.
Tags:
Compartilhar
- Anexos
-
-
▶ Responder esta