Na
criação de jogos multiplayers é comum iniciar
o trabalho "copiando" uma idéia de algum jogo
conhecido. Não é que copiar seja ruim na sua essência,
afinal ao copiar alguma coisa nós aprendemos também.
Mas é preciso compreender o que se copia, para que a experiência
seja válida e instrutiva. No lado oposto temos a geração
expontânea de uma idéia; algo que simplesmente surge
do nada: "ah, tive uma idéia...".
No
mundo profissional e principalmente no mundo onde pretendemos
ter algum resultado concreto, principalmente no campo da originalidade,
a coisa não funciona muito bem assim. Não se deixa
nada ao acaso. Pelo contrário: no mundo profissional usa-se
o planejamento, traduzido na forma de projeto. Não se cria
um jogo; projeta-se um jogo.
Para
projetar um jogo é preciso compreender inicialmente (partindo
dos propósitos do mesmo) a mecânica que será
aplicada. Vamos trilhar o raciocínio inverso, para entender
o conceito: no jogo Counter Strike o que está em
evidência é a exploração daquele nosso
instinto guerreiro, de matar o inimigo e proteger nossos aliados.
Não estou discutindo aqui se isso é bom, ruim, certo,
errado ou violento, mas apenas constatando o fato: a estrutura
funcional do jogo foi moldada para expor essa nossa característica
e pelo sucesso que o mesmo atingiu podemos concluir que acertaram
na medida.
A
questão é: como chegamos a isso, partindo do zero
(e portanto dentro de um planejamento de produção
de um jogo)? Primeiro precisamos decidir que elementos ou características
vamos explorar: amizade, convivência, sociabilidade, cooperativismo,
agressividade, rebeldia, etc. A partir daí montamos um
modelo ou protótipo para entender os mecanismos e explorá-los
na forma de um desafio.
Para
ilustrar vou usar o cooperativismo (já que agressividade
e rebeldia foram amplamente explorados comercialmente). Precisamos
criar um jogo que reflita essa característica: pessoas
cooperando para um resultado comum.
O
melhor grupo de avaliação para isso pode ser montado
numa rede local ou até mesmo em uma lan house, para que
a dinâmica do experimento seja potencializada ao máximo.
Agora só falta criar o modelo e o objetivo precisa ser
simples e claro, para que dele possamos extrair lições.
Daí nasceu a idéia do gado, solto em um pasto, tendo
que ser reunido pelos peões. O propósito do modelo
é descobrir quais os elementos que podem resultar em um
jogo divertido, instigante e principalmente que agrade às
pessoas.
Bem,
o jogo eu ainda não fiz, mas o modelo experimental está
aqui, operacional, e pode ser usado por qualquer um. Pode ser
inclusive adaptado para refletir outras realidades ou testar outras
características. Vamos a ele?
Usaremos
apenas dois Forms, um TImage e um TBitmap,
um TTimer e dois TNMUDP. O resto é firula.
Com isso montamos a estrutura do modelo funcional de avaliação.
O TImage (Tabul) e o TBitmap (Buf) serão
usados para montar o tabuleiro do jogo, ou seja, o pasto. Nele,
o gado, representado por um quadrado estará "pastando"
livremente. Os vaqueiros, ou peões, são círculos
que também estarão em movimento, embora numa velocidade
maior que a do gado. O controle do jogador (teclas de setas) atua
apenas na mudança de direção. As cores são
usadas para identificar os vaqueiros e o gado que ele está
(tentando) reunir.
Um
controle adicional foi colocado na barra de espaço, o qual
provoca o aparecimento de uma cerca na posição atual
do vaqueiro e que serve como obstáculo para a livre movimentação
do gado. O objetivo portanto é reunir a boiada, quer seja
marcando-a toda com uma única cor, quer seja confinando-a
em áreas cercadas. Mas isso (repito) não é
o jogo e sim o experimento.
O
que vamos estudar aqui é como as pessoas, ou um grupo de
pessoas, reage a este desafio. Será que elas se unirão
para facilitar o trabalho de reunir o gado? Ou será que
acabarão competindo entre sí para ver quem "pega"
mais bois? Qual das duas opções é a mais
divertida? Você sabe?
Se
sabe, parabéns: é um iluminado. Se não sabe,
não perca tempo tentando adivinhar. Reúna os amigos,
rode o modelo e estude as reações deles. Discuta,
debata, troque "achismos", experimente criar limitações
e extraia daí conceitos que possam ser aplicados em um
jogo multiplayer que você pretende fazer em breve. Quem
sabe não será exatamente este o diferencial que
fará seu jogo se tornar um sucesso de público.
::
Como funciona o modelo
Clique
aqui, baixe o zip com o executável
e coloque uma cópia em cada máquina da rede. Um
dos participantes será o servidor. Basta clicar no tabuleiro
que o Form de comunicação será mostrado.
Ligue o servidor e nas demais máquinas basta apenas entrar
no pasto. Clique no tabuleiro para esconder a janela de comunicação
e devolver o foco para o controle do peão.

O
modelo usa as portas 17361 e 17362, para a troca
de pacotes. Se a rede tiver proteção ou firewall,
você precisará desbloqueá-las para que o modelo
funcione ou então alterar o fonte e recomplilá-lo
para usar uma porta livre (aberta).
::
A parte técnica
O
sistema de controle fica concentrado no servidor, que faz os respectivos
procedimentos e verificações e envia comandos aos
clientes para que reproduzam a mesma cena em todas as máquinas.
Um dos componentes UDP funciona como cliente e outro como
servidor. Toda a comunicação e forma de interpretar
os comandos já foi amplamente apresentada de debatida no
club TILT, portando não há nada a acrescentar.
Clique
aqui e baixe o zip com os fontes para Delphi.
As partes mais importantes estão comentadas, para que você
possa fazer alterações com segurança. No
caso de dúvidas, não se acanhe em perguntar afinal,
estamos aqui para isso mesmo. |