Jogos com AJAX

Ajax é uma tecnologia em JavaScript que permite que dados sejam carregados numa página sem que ela seja recarregada. Simples, não? Sim! E com essa simplicidade, imagina quantas coisas não é possível fazer?

Um exemplo bem simples, são aqueles jogos de Orkut, que eu já até citei aqui. A integração com a rede social é feita através da API OpenSocial, porém a jogabilidade, muitos multiplayer e não só dentro da rede social, podendo jogar com guests, é feita, na maioria das vezes com AJAX. Claro, nem sempre, tem muitos jogos lá desenvolvidos com flash.

Flash, seria talvez uma alternativa ao AJAX. Ambos se comunicam com o servidor de formas muito parecidas, via arquivos XML.

Servidor? Sim, tem que ter um servidor rodando, um servidor web. Esse servidor vai receber as informações dos jogos e então repassar aos clientes. O servidor pode ser feito em qualquer linguagem de programação, claro que eu recomendo PHP.

Tudo que ele faz é receber requests processar os dados e elaborar um XML de resposta, que será enviado ao cliente. Então o cliente trata este XML, e exibe as alterações na tela pelo JavaScript.

Claro que para tudo isso, o mais necessário é o domínio no JavaScript, pois ele além de mexer com toda a parte visual (na minha opnião, o mais complicado), ele vai enviar os requests, e quando receber a resposta, vai tratar o XML e exibir ao usuário. Sem contar que tem que tratar muitos erros, e exceções que acontecerão com o ajax, por causa das incompatibilidades.

Para isso existem alguns Frameworks para ajudar no trabalho, dentre elas a MooTools, Prototype e a jQuery. Nunca use a MooTools. A Prototype é legalzinha, mas a que mais gostei mesmo foi a jQuery. Ela é bem completa, e além de tudo isso, aceita plugins, que você pode achar muitos por aí, que façam qualquer coisa.

Com um framework tudo pode ficar mais fácil. Aí então o próximo passo é a segurança. Por ser uma tecnologia Client-Side e em modo texto, todos podem ver os fontes do seus códigos JS, fica muito mais fácil de seu jogo ser hackeado. Então a segurança é um ponto crucial aqui.

Bom, tendo uma boa noção de JS e/ou de algum framework, segurança, só falta uma boa idéia de jogo e um bom design, e então é mão na massa.

Vale a pena investir em jogos via browser sim, principalmente se eles tiverem integrações com redes sociais via OpenSocial, pois é um passatempo que muita gente, hoje, usa.

(Muito obrigado ao Rodrigo pela idéia do post, sei que isso não te ajuda em nada, mas talvez possa ajudar outra pessoa por aí… hehehe)

A Volta…

Eu sei, fiquei muito tempo sem postar, por isso venho me justificar! =P

Foi o seguinte, eu fiquei sem internet, agora estou, e com novidade, banda larga! Aleluia, né não? ^^

Breve eu volto para postar minha saga na tentativa (fracassada) de assinar o Speedy da Telefônica.

Falou galera.

Novo Game

Vou aproveitar o começo das férias para ver se consigo fazer algum joguinho. Claro, com os fontes livres.

Agora que comecei a fazer uma classe simples de animação em Allegro, me deu vontade de usá-la, para ir aperfeiçoando enquanto uso.

Mas pensando bem, o que eu quero mesmo é fazer algum joguinho multiplayer online, como estou querendo aprender a ASIO, seria ótimo. Ou então testar a RakNet, que estava querendo aprender também. Mas como estou baixando a Boost ainda (44 MBs e estou com conexão discada), é capaz que fique com a raknet mesmo nesse projeto.

Tinha pensado em fazer um jogo da Forca online, onde cara player escolhia uma palavra para o outro, e então ganharia quem fizesse mais pontos (os pontos seriam alguma relação entre o tempo e o número de letras de uma palavra).

Também tinha como opção um jogo de pontinhos, aquele que você vai ligando os pontos e ganha quem tiver mais quadradinhos com seu nome, sabe? Mas acho que vou deixar esse mais para frente. Talvez entre com ele no Contest da UniDev mais para o fim do ano.

Vou dar mais umas estudadas em networking e então vou iniciar o jogo da forca online mesmo. Esse com certeza vai me ajudar bastante em networking, pois o único jogo que desenvolvi em rede foi o VéiaOnline, e além de eu ter utilizado sockets puro, foi muito simples, não tinha nem um sistema de chats…