GameMaker: Uma Análise

Apesar de já estar utilizando o GameMaker há algum tempo (na verdade acho que devo tê-lo usado por pouco mais de 10h) só agora resolvi escrever as minhas primeiras impresões sobre a ferramenta, impressões estas que compartilho a seguir.

É Bom Mesmo?

Para prototipação rápida não tem nem como negar,  as ferramentas visuais são suficientemente intuitivas para qualquer um que já tenha programado em Delphi/VB sair fuçando e conseguir fazer as coisas simples. É basicamente adicionar ações relacionadas aos eventos disponíveis, inclusive integradas às funcionalidades específicas de jogos que já vem implementadas, tais como high-score, vidas e saúde (health-bar).

Essas funcionalidades são muito úteis, tendo em vista que em 99% dos jogos elas se comportam da mesma maneira, e tê-las integradas e acessíveis é uma grande ajuda.

Quando eu baixei o GM aproveitei e baixei todos os tutoriais básicos, e fiz o meu primeiro jogo — usando o primeiro tutorial, que ensina a criar um jogo “pegue o palhaço” — muito rápido. O tutorial é bem claro e simples de acompanhar. Quando parti para o segundo, que ensina a fazer um shooter vertical, já me perdi um pouco, que parece não ter algumas imagens em concordância com o texto, o que acabou me atrapalhando em algumas partes.

Ainda não havia terminado este tutorial — acho que cheguei na metade dele — e resolvi partir para uma coisa mais “prática”, mais original, que foi implementar um protótipo para o desafio PlayWithYourPeas do LostGarden.

Tudo começou muito bem, pois no começo os jogos acabam necessitando das mesmas tarefas, criar os sprites, os objetos, posicioná-los na tela inicial, etc. Só quando eu comecei a implementar a interface da barra de tarefas foi que tive que “apelar” para o GML, a linguagem de scripting do GameMaker.

Com uma sintaxe parecida com JavaScript eu me senti confortável em trabalhar com ela e depois de quebrar um pouco a cabeça consegui fazer a lógica que queria para a seleção de ferramentas e posicionamento dos blocos do jogo.

Para conseguir desenvolver esta parte eu usei muito a Ajuda da própria ferramenta — que é o mesmo conteúdo do PDF principal que pode ser baixado no site. Ao finalizar esta fase do desenvolvimento (o editor de fase) eu parti para a próxima, o sitema de física, confiante que poderia encontrar o meu caminho em meio aos documentos da ajuda assim como o fórum de desenvolvedores da comunidade GameMaker.

Não é uma Brastemp…

Foi nessa etapa que eu comecei a sofrer. Eu já havia percebido e estranhado um bocado a estrutura dos documentos da Ajuda do programa, que em nada eram similares à maioria da documentação de linguages de programação, especialmente Java.

Tendo eu mais de seis anos de relacionamento com a linguagem de programação da Sun posso dizer que estou bastante habituado a ler milhares de JavaDoc atrás de detalhes e informações sobre objetos e interfaces.

Justamente por conta desta minha experiência eu comecei a me desmotivar enquanto tentava evoluir o meu sistema de física. E eis aqui o porquê: eu fiquei completamente perdido.

Os tópicos da Ajuda não dizem tudo que podem sobre os objetos e funções aos quais fazem referência. Na verdade imagino que eles tenham, de fato, todas as informações, mas estas não estão, de maneira alguma, bem organizadas.

Eu comprovei esta minha impressão ao tentar implementar o comporamento de quicar de uma bola. Ao abrir o tópico referente a objetos eu não conseguia achar nenhum atributo que eu precisava — como acessar as propriedades do objeto com o qual estou colidindo? Como saber em que lado ocorreu a colisão? Eu revirei a Ajuda e nada. Nadica de nada. Os objetos nativos self  e other  retornavam sempre a mesma instância e eu não entendia — e ainda não entendo — o porquê. Fui bater no fórum do GameMaker a procura de uma luz, e admito tê-la encontrado logo. Em uma thread um usuário tinha a minha mesma necessidade, dectectar em que lado da instância houve colisão, e um outro usuário havia colado um script que resolvia este problema. Foi copiar, colar e pronto, estava funcionando. Mas enquanto eu fazia isso eu pude ver objetos e propriedades que eu não tinha visto até agora, e olha que eu tinha revirado aquela Ajuda de ponta-cabeça.

É claro que depois de saber da existência deles foi fácil encontrá-los em seus respectivos tópicos. E foi justamente isso que me frustrou mais ainda, afinal eu posso não ser um gênio mas tenho alguma experiência em desenvolvimento e em busca de informações. E esta falta de organização, aliada ao pouco tempo que tenho para me dedicar ao estudo da ferramenta acabaram por me desmotivar por completo. Só de pensar que eu teria que ficar fuçando sempre no fórum atrás de informações que estão a apenas um palmo à frente, mas extremamente camufladas, me fez desistir de prosseguir com os estudos de GameMaker.

Mas não tenho dúvida que esta é uma ferramenta muito mais poderosa do que parece, haja vista a quantidade de jogos bem feitos que pode-se encontrar no site da YoYoGames — The Lost Snowmen, estou olhando para você.

Para Onde Eu Vou Agora

Flash, com certeza. Depois de ler inúmeras recomendações do pessoal da lista do IGDA Recife eu decidi ir atrás da tecnologia da Adobe. Eu havia considerado XNA/C# antes, mas dada a penetração do Flash/Flex na comunidade de desenvolvedores de jogos por aqui eu resolvi deixar o framework da Microsft em espera por enquanto.

A única coisa que me deixou um pouco relutante em partir para o Flash logo de cara foi o fato dele ser pago. Eu não queria ter que crackeá-lo, afinal existem hoje em dia muitas ferramentas gratuitas para desenvolvimento de jogos e eu não queria mesmo ter que apelar.

Por sorte eu lancei esta questão para o pessoal da lista e ela foi resolvida rapidamente. Fui aconselhado a utilizar o Flash por 30 dias em versão trial e depois partir para a dupla FlashDevelop + FlexSDK, opção 100% gratuita. Na verdade eu pretendia cair logo de cara nesses últimos, mas me informaram que começar com o Flash seria mais indicado principalmente para me familizar com o ambiente de desenvolvimento, afinal além de dar suprote a ActionScript eu teria à disposição ferramentas visuais que assim como o GameMaker agilizam a prototipação de jogos.

E Para Onde Você Deve Ir?

Depende do seu gosto e tempo disponível. Se você quer evitar programação, ou então se dispõe de tempo e disposição para procurar informações um pouco obscuras, o GameMaker seria uma boa pedida. Teoricamente você pode fazer qualquer tipo de jogo com ele e se estiver diposto a pagar os $20 da versão Pro vai ter ainda mais uma penca de funcionalidades liberadas.

Mas se você é, assim como eu, um desenvolvedor habituado a escrever seu próprio código-fonte, mas tendo uma ajuda para tarefas chatas de vez em quando, o Flash é uma ótima pedida. Não esquecendo também que é possível encontrar muitas ofertas de trabalhos freelancer em Flash pela internet e que a documentação da Adobe é bem melhor que a da YoYoGames.

Então é isso, espero que tenha ajudado lhe ajudado. E se você discordar de algo que disse aqui, ou tiver outro ponto de vista, por favor, sinta-se livre para usar os comentários. 🙂

Referências

GameMaker: http://www.yoyogames.com/make
GameMaker Community: http://gmc.yoyogames.com
The Lost Snowmen: http://www.yoyogames.com/games/show/50105
Adobe Flash: http://www.adobe.com/br/products/flash/
FlashDevelop:  http://www.flashdevelop.org
Flex SDK: http://www.adobe.com/products/flex/ 
ActionScript 3 Reference: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/index.html
LostGarden – Play With Your Peas: http://lostgarden.com/2008/02/play-with-your-peas-game-prototyping.html
 IGDA Recife (GoogleGroups): http://groups.google.com/group/igda_recife

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: