quinta-feira, 25 de setembro de 2008

Trabalhando em equipe

Ao contrário do que possa parecer por outros textos relacionados a criação de jogos, minha função em grupos de trabalho ainda é a de programador.Este é um trabalho ingrato já que somente o programador sabe o que pode e o que não pode ser feito dentro de um jogo, mas tem muitas vezes que fazer o que não pode por causa de demanda do designer, sonoplastas, animadores e até da moça do café (não, esta bandeja retrátil no computador não é pra apoiar a xícara de café! É meu drive de DVD!). Programação é um trabalho mais braçal do que qualquer coisa. É um buscar de referências, adaptações de códigos pré-prontos e ocasionalmente a criação de uma função nova que aparentemente é banal e que daria mais trabalho procurar por algo já feito do que realmente fazer uma nova. Mas é apenas uma camada do trabalho todo, e uma parcela pequena até se pensar em todas as etapas do processo.
Quando a equipe é formada por apenas um membro, um campeão da justiça ou alguém com sonhos de grandeza que realmente acredita que pode fazer o novo FinalFantasy VII sozinho se esforçando o suficiente, a divisão de trabalho é simples já que qualquer número é divisível por 1 sem deixar resto, mera questão de matemática. Agora em equipes maiores o problema é mais complicado. Vamos pegar como exemplo a equipe gráfica de desenhistas, artistas digitais e/ou modeladores 3D. Não adianta nada cada um trabalhar no seu próprio ritmo pois todos estão trabalhando no mesmo projeto. Então a equipe de modeladores precisam de esquemas e rascunhos dos personagens para poder começar a desenvolvê-los, enquanto os artistas digitais desenvolvem novas texturas (ou juntam texturas prontas para serem reaproveitadas) enquanto os desenhistas relaxam já que terminaram todos os desenhos. Mas nem sempre as equipes são grandes o suficiente para possibilitar este tipo de divisão. O normal em produções de jogos amadores é uma mesma pessoa rabiscar os personagens, modelá-los e fazer as texturas ou fazer o spritesheet (imagem com todas as posições do personagem num fundo transparente ou de cor estranha que no programa será considerado transparente que será usado para animar o personagem no jogo) Em alguns casos piores, onde os membros de equipe são menos ainda, este mesmo cara será responsável pela programação envolvendo juntar a parte gráfica ao jogo, realmente um trabalho de cão.
Em muitos casos, vejo o grupo se reunir para definir funções como se estivessem na escola fazendo um projeto de ciências: "Fulana vai escrever na cartolina porque tem a letra mais bonita enquanto Ciclano e Beutrano fazem a pesquisa. E eu não faço nada porque comprei as cartolinas, o biscoito e o refrigerante." Não querendo estragar a graça mas este método não funciona. Ciclano e Beutrano vão ficar com o trabalho pesado de início, enquanto só Fulana vai cansar a mão de tanta cartolina que vai ter que escrever e desenhar (eu sei... já fui "Fulano" algumas vezes). O jeito mais certo de dividir tarefas não é em tipo de coisas. Numa equipe pequena, os membros tem que entender o trabalho como algo por demanda. Na hora em que se desocuparem com uma tarefa precisam ver o que está faltando no projeto e assumir este papel. O trabalho de programação de jogos é complexo porque muitas coisas no projeto só podem ser feitas se outras já forma feitas antes, então, não adianta um cara querer testar os movimentos do personagem que já foram programados se não existem ainda as imagens para serem animadas. Neste ponto, algum dos aptos a desenhar deveria assumir este trabalho como prioridade e concluí-lo.
Em equipes pequenas ainda, existe uma grande facilidade da maioria dos membros de jogarem responsabilidades de mais na mão do pai da idéia, e sempre que questionados quando não estão fazendo nada respondem com a cara lavada "Mas eu não sei o que tem pra fazer." Este tipo de resposta evasiva pode enganar os mais inocentes, mas é infame. Vamos supor um projeto minimamente bem feito, onde o jogo já está todo pensado (salvo certas correções no projeto). O membro da equipe tem obrigação de saber em que pé está o desenvolvimento e perceber os pedaços que faltam ser desenvolvidos. Claro que ter alguém para delegar tarefas seria algo muito conveniente, mas como líder de uma pequena equipe de desenvolvedores de jogos, sei que é difícil delegar tarefas aos outros e supervisioná-los e ainda conseguir fazer a própria parte.
Neste ponto, precisamos avaliar o coordenador do grupo, ou líder, ou Shamã, ou o que seja. Ele não pode ser autoritário de mais para não impedir que ninguém mije fora do pinico em nenhum momento, não deixar que cada membro inclua sua própria visão no jogo, mas também não pode deixar que o grupo se disperse de mais, senão acaba como um projeto que tive em mãos com parte dos desenhistas fazendo desenhos mangá e outros fazendo mais cartoon. O coordenador tem que coordenar, e não ficar por cima do ombro dos outros membros vendo se tudo está saindo do jeito dele. Claro que se o projeto estiver bem planejado, as chances de dispersão são menores.
Já me alonguei de mais neste assunto. Se for necessário volto a ele em outro momento.

Um comentário:

Tiarles Rodeghiero disse...

Que bacana, programadores de jogos no Brasil, tenho um amigo que é programador e quer TENTAR fazer um jogo numa hora dessas, deve ser muito difícil.
E como é que funciona, vocês tem capacidade de fazer algo melhor que aquele joguinho do ROKO LOKO neh!?
Teh!