domingo, 23 de maio de 2010

Aprenda a programar jogos em C++/Allegro no protótipo do jogo: Glitch's Labyrinth

Este programa trata-se de um pequeno protótipo de um jogo que foi feito para ilustrar algumas funcoes bem básicas da biblioteca Allegro para ajudar aqueles que estao comecando a se familiarizar com ela. O programa faz uso de funções para desenhar gráficos primitivos (pixels), funções para compôr "cores" e manipular a entrada através do teclado. O código está bem "comentado", diga-se de passagem.



Clique neste link a seguir para fazer o download do projeto do Dev-C++:

http://www.4shared.com/file/H-JxgVAT/glitchlab0-1__src_.html


Basicamente, nesse protótipo você vai aprender a desenhar uns quadrados coloridos gigantes e um bonequinho quadriculado sorridente que se mexe pela tela, tipo alguns jogos pré-históricos :P

Lembre-se que você precisa ter a biblioteca Allegro instalada e configurada, senão o projeto não compila. Lembre-se também de que para rodar qualquer programa escrito usando Allegro, o usuário precisa do dll allegxx.dll, onde xx é o numero que representa a versão da biblioteca (ex: alleg42.dll). Esse dll deve estar de preferência no mesmo diretório do programa, ou (não recomendo) estar na pasta do sistema (tipo, C:\WINDOWS\System).

O projeto é da IDE Dev-C++.

Repare que esse programa utiliza (e depende) de uma pequena engine um tanto primitiva que eu criei para desenhar blocos na tela (já viram como eu sou viciado nesses blocos graficos?). Muito provavelmente você vai querer trabalhar usando bitmaps já prontos, o que é bem mais simples. Então não se preocupe com a engine :P

Além da engine, esse programa também usa um pequeno algoritmo para desenhar "cavernas" aleatoriamente. Dá pra perceber que o algoritmo é um pouco falho, pois na maioria das vezes, existem diversos pontos inacessíveis e passagens bloqueadas, o que não deveria acontecer. Mas isso não é problema para um programa que serve apenas como exemplo.

Coisas que você pode fazer para melhorar ou acabar com o protótipo:

- Melhorar o algoritmo que gera as cavernas;
- Mudar as cores da paleta para as que você preferir;
- Implementar som;
- Aumentar a resolução dos blocos gráficos pra parecer algo mais natural (e não tão quadriculado como eu fiz de propósito :P);
- Eliminar a engine dos blocos gráficos (e acabar definitivamente com o protótipo) e aprender a carregar bitmaps porque é muito mais eficiente do que criá-los "on the fly";
- Criar novos elementos no labirinto para o jogador interagir;
- Criar um sistema de pontuação ou algo do tipo;
- Ou até mesmo acabar de vez com o algoritmo gerador aleatório de cavernas e criar um pequeno sistema que carrega os dados do labirinto a partir de um arquivo, assim você tem maior controle dos elementos e o jogo fica mais previsível (assim evitando que o bonequinho dê de cara com as paredes :P).

Enfim, espero que vocês entendam o programa e consigam aprender o básico do básico sobre a Allegro e sobre a criação de jogos com essa biblioteca que é a melhor que existe na face da terra.

Dúvidas? Respostas? Sugestões? Xingamentos? Deixe comentário.