On Jack Tall Game

Desenvolvimento de Jogos - "Talk Nerdy to Me!"

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.

Compartilhar

Anexos

Responder esta

Respostas a este tópico

Esse é o problema de não seguir um padrão

navegadores nasceram pra dar dor de cabeça mesmo, é incrivel pois se existe algo que nunca algum dia será compativel são navegadores >_<<br />
mas ficou excelente o resultado até o momento e ja tem uma GRANDE parte encaminhada =)

Responder esta

Bom depois de muito tempo e uma série de coisas rolando, eu trabalhei um pouco mais em cima do projeto em javascript, eu pude implementar alguns lances legais tipo um mapa mais bem desenhado, a mudança de mapas, e também fiz um esquema bem rústico de conversa. Todas estas alterações estão disponíveis na versão do final do post (tilebased 28.12.2007.rar).

Eu não avancei muito desde Dezembro do ano passado porque o Márcio, conversou comigo sobre o TCC dele, baseado em interatividade através da WEB. Nós começamos então, a desenvolver alguma coisa em cima de um projeto tactics via interface web, bom, eu pensei, porque não adaptar o esquema do tilebased original para torná-lo um tactics? afinal a diferença não é tão gritante assim.

E este foi o nosso ponto de partida. No final do post tem um protótipo (tilebased tactics 24.02.2008.rar) bem tosco ainda de como a coisa pode funcionar, o único detalhe é que como ainda ta beeeem no começo então eu não me preocupei muito no quesito compatibilidade, por isso ele só funciona no Firefox, que é o meu browser padrão para desenvolvimento.

Uma das coisas que me anima é que a Micro$oft vai adaptar seu IE8 para os padrões WEB e pretende que ele passe pelo ACID2, algo louvável por sinal. O único detalhe é que para manter a compatibilidade dele com as versões antigas das páginas, elas deverão carregar um header ou algo do tipo que informe que as regras de renderização serão as das versões antigas.
Anexos

Responder esta

Olha só, não é que os gringos levaram a idéia do Javascript a sério?

Utilizando canvas, javascript e uns toques de ajax é possível jogar Wolfenstein 3D clicando no link abaixo:

Wolf 3D

Só lembrando que o canvas não roda no IE.

Responder esta

RSS

Badge

Carregando...

© 2009   Criado por Chrysthian Akihiro no Ning.   Crie Sua Rede Social

Badges  |  Relatar um incidente  |  Privacidade  |  Termos de serviço