Este artigo trata-se sobre a teoria de jogos Tick Based. A popularização desses jogos se tornou um novo fenômeno de passa-tempo na internet. Passa-tempo para alguns, vícios para outros. Jogos como Travian, Primórdio, The Crims, recebem centenas de visitas ao dia. De certa forma empresas acharam maneiras de lucrar com esses games on-line, claro, eu não vejo por que não lucrar com um trabalho, mas neste caso existem outras recompensas. Esse artigo trata o principio da criação de um destes games com o PHP, tais como suas técnicas e também como desenvolver uma amigável interface.
Voltado para pessoas com alguma experiência em PHP, já que o artigo não trata explicações referentes a linguagem PHP.
Iniciando
A primeira parte do desenvolvimento de um jogo é sem sombra de duvidas o seu projeto, não que me entendam mal, quando digo projeto me refiro não a maneira como ele será desenvolvido nem tão pouco qual banco de dados usarem ou qual linguagem mas sim a historia do jogo, qual a estratégia dele, o enredo. Para um jogo bem sucedido, devem ter uma jogabilidade, regras e historias interessantes. Como não é o objetivo deste artigo ensinar a escrever jogos, só posso dizer, boa imaginação.
Escolhendo as ferramentas
Banco de dados
Por experiência própria eu aconselho como banco de dados Mysql, por 3 motivos:
1° - gratuito.
2° - É o banco de dados mais rápido para se usar na internet, perdendo apenas para o Oracle
3° - A produtividade com o PHP é extremamente eficiente e eficaz.
IDE PHP
Eu particularmente gosto do Eclipse, mais nesta parte deixo por conta de vocês
Framework
Eu acho que seja até obrigação o uso do Ajax nestes tipos de jogos, então aconselho o framework XJAX.
Mão na massa
Então já temos as ferramentas, a historia de nosso game, hora da mão na massa. A função mais usada será:
mysql_query(“comando mysql”);
Sem sombra de duvidas. Mais por quê? Um jogo tick based na verdade é busca e inserção no banco de dados, é algo simples assim. Exemplo prático, um jogo de guerra quando um reino ataca o outro, na verdade você busca no banco de dados os dados do Reino A, os dados do Reino B e através das regras de seu jogo você faz as baixas de ambos e inseri no banco de dados às alterações.
Vamos fazer um exemplo pratico?
<?
$dados_reino_a =
mysql_query(“SELECT * FROM tblexercitos
(numexercito
) where idexercito =
$sessao_user_id”
);
$dados_reino_b =
mysql_query(“SELECT * FROM tblexercitos
(numexercito
) where idexercito =
$sessao_reino_atacado”
);
$baixas_exercito_a = $dados_reino_a[0] - $dados_reino_b[0];
$baixas_exercito_b = $dados_reino_a[0] - $dados_reino_b[0];
if($baixas_exercito_a < 0)
$baixas_exercito_a = 0;
if($baixas_exercito_b < 0)
$baixas_exercito_b = 0;
mysql_query(“INSERT INTO tblexercitos
(numexercito
) values
($baixas_exercito_a) where idexercito =
$sessao_user_id”
);
mysql_query(“INSERT INTO tblexercitos
(numexercito
) values
($baixas_exercito_b) where idexercito =
$sessao_reino_atacado”
);
?>
Explicando melhor, as regras deste exemplo são bem simples, os exércitos possuem um numero de soldados, quando um exercito ataca outro o que acontece segundos as regras é a subtração, ou seja, ganha quem tem maior quantidade de exercito.
A variável $dados_reino_a armazena o numero de exércitos que o jogador possui. Eu identifico o exercito do jogador no banco de dados pela variável $sessao_user_id, é uma variável que armazena por “session” o ID do usuário quando ele loga no jogo.
O mesmo acontece com o $dados_reino_b que armazena a quantidade de exercito do reino que o jogador esta atacando. Este eu identifico por uma variável chamada “$sessao_reino_atacado”, que também guardo por “session”, que armazena o ID do reino atacado, vamos supor que o usuário escolheu qual atacar por algum checkbox em uma tabela.
Faço as baixas, e se o numero de qualquer um dos exércitos for menor que “0” (ficou negativo) eu insiro “0” e logo em seguida armazeno no banco de dados.
Conceitos avançados
Você deve ter começado a entender como são feitos esses jogos, o que mostrei acima foi a teoria geral, no fundo, este é o “núcleo” destes jogos. Você já deve ter começa a pensar em muitos jogos, sua cabeça deve estar a mil, e tem que estar sim, lembre-se, grandes homens se dão bem na vida por idéias de impulso, e é pra te dar um empurrão que também trarei de assuntos mais avançados, que são:
• Regras de jogo
• Interface
• Segurança
• Financeiro
• Alem do jogo (interatividade)
Regras de jogo
Na verdade a historia é imprescindível em um jogo deste tipo, porem, mais importante que a historia é as regras, são as regras que definem todas as ações do jogo, e claro, as regras que dizem se seu jogo será ou não popular. Faça regras que possibilite o jogar a fazer uma infinidade de estratégias e ações, e apresente as regras de forma clara e simples.
Interface
Um site bonito, agradável e de excelente navegação é mais pontos para o jogo, lembre-se no Brasil o numero de pessoas com banda largas é grande, mas o numero de pessoas com internet discada ainda é grande também, faça algo que seja rápido para carregar, navegação simples.
Segurança
Eu particularmente utilizo “session”, mas existem diversas formas e jeitos, e cada um tem o seu, por isso deve-se estudar a segurança, para evitar dores de cabeça, estudo como funciona XSS, cuidado com seus códigos, um jogo seguro é um jogo bem feito.
Financeiro
Posso já adiar algum gasto seu. Supondo que você montará seu layout do site, seu sistema php, você só terá gasto anual com o domínio, se for .com.br o preço é de R$ 30.00 (preço cobrado pelo http://registro.br/) e um pouco menos para .com. Você terá um gasto mensal de hospedagem, que sai por volta de R$ 15.00 mensais.
Alem do jogo (interatividade)
Pense em algo que não se vê em outros jogos. Deixe a interatividade de seu jogo se elevar, pense em varias possibilidades, jogos diferentes são tratados diferentes, jogos comuns, são jogos “passa tempo”.
Espero que tenha gostado desta introdução, duvidas estou a disposição, será um excelente prazer, meu e-mail é thiagosistemas3@gmail.com