Iniciei um novo hobby neste final de semana: criação de jogos. De todas as atividades, a que mais me diverte sem sombra de dúvidas consiste em programar (há momentos nos quais tenho de me beliscar para acreditar que me pagam para isto!).
Após ter desenvolvido zilhões de aplicações empresariais/corporativas, acabo por ter a impressão/certeza de que sempre estou executando as mesmas tarefas: CRUD, validação de dados, formulários, bancos de dados, etc. Que tédio!
A solução para acabar com o problema consiste em buscar algo completamente diferente do feijão com arroz. O que poderia ser mais distinto que o desenvolvimento de um jogo?
- A interface com o usuário não é a partir de formulários
- Não preciso lidar com banco de dados algum (ainda irei escrever um dia sobre a minha teoria de que bancos de dados emburrecem programadores)!
- É significativamente mais complexo, pois preciso gerenciar detalhes de gerenciamento de recursos com muito maior detalhamento.
- Não estou preso a nenhuma restrição comercial!
Objetivos pessoais
Meus objetivos pessoais neste projeto consistem em me aprofundar no aprendizado do C++ e OpenGL a partir de uma aplicação real. Já faz no mínimo uns 6 anos que sei C++, porém nunca tive uma oportunidade de usá-la em um projeto real. Visto que a oportunidade não veio, porque não criá-la?
Além disto, ano passado fiz a matéria “Computação Gráfica” na faculdade, aonde aprendi OpenGL, que abriu meus olhos para o fato de que desenvolver aplicações gráficas não é algo tão complexo como até então imaginava. Na realidade, como exporei nesta série de posts, é quase fácil.
Enredo e Objetivo
O personagem principal da história é Nanna (minha esposa (aliás, uma bela maneira de homenagear quem amamos, não é mesmo?)), que após entrar para o grupo dos Vigilantes do Peso precisa vencer as tentações da vida dietética. A jogabilidade será basicamente a mesma presente no jogo Metal Gear original para MSX.
(a propósito, enquanto escrevia este post, descobri que existe uma versão do jogo para PC que pode ser baixada aqui)
Nanna deverá chegar à sede dos vigilantes do peso saindo de sua casa. Mas o caminho não é tão tranquilo quanto aparenta, pois Nanna precisa evitar os malditos “Traficantes de Delícias” que, caso a vejam, acabarão por convencê-la a comer alguma coisa.
Cada um destes traficantes possui um raio de visão que Nanna deverá evitar. Caso a vejam, automáticamente nossa heroina perderá pontos. O jogo termina se uma das condições abaixo for satisfeita:
- Nanna está com pontos menores ou iguais a zero.
- Nanna chegou à sede dos vigilantes do peso em todas as fases.
Ainda não pensei se será possível restaurar pontos perdidos, porém nada impede que, além dos malditos traficantes, também existam “academias” espalhadas pelos diversos níveis do jogo aonde Nanna poderá voltar à boa forma.
Plataforma adotada
Como mencionei acima, um dos objetivos deste projeto consiste em me aprofundar em C++ e OpenGL. Dentre as diversas IDEs existentes atualmente, acabei por adotar o Dev-C++ pelas razões abaixo:
- Possui pouquíssimos recursos, o que faz com que eu me sinta o mais próximo possível do compilador.
- Possui integração com as bibliotecas do OpenGL que precisarei.
- Caso no futuro eu desista desta IDE, ela não impõe nenhuma estrutura de diretórios ou restrição que me impeça de no futuro utilizar o editor/IDE que eu queira.
Será utilizada a biblioteca GLUT do OpenGL para o desenvolvimento deste jogo. GLUT significa Open GL Utility Toolkit, que consiste em uma biblioteca de funcionalidades da Open GL cujo principal objetivo consiste em abstrair o sistema operacional da aplicação, tornando-a assim multiplataforma. Dentre estes detalhes, encontra-se a criação de janelas e componentes de interface. A biblioteca GLUT foi implementada para basicamente todos os principais sistemas operacionais em uso atualmente. Sendo assim, você poderá pegar o código fonte qeu disponibilizarei e compilá-lo no sistema operacional de sua preferência.
Configurando o ambiente de desenvolvimento
Instalado o Dev-C++ em seu site oficial (http://www.bloodshed.net/devcpp.html), tudo o que você precisará fazer consiste em instalar a biblioteca GLUT no mesmo.
Abrindo o Dev-C++, clique no item de menu “Check for Updates/Packages…”. Surgirá uma janela tal como na imagem abaixo:
Localize o pacote GLUT na listagem presente e em seguida clique no botão “Download selected”. Pronto: o GLUT será baixado e em seguida instalado para uso pelo Dev-C++.
O que está por vir
Não tenho experiência ALGUMA no desenvolvimento de jogos, sendo assim, estou adotando um raciocínio out of the box neste processo, ou seja, o motor responsável pelo funcionamento de Metal Gear Nanna será inteiramente baseado na minha experiência como jogador de Metal Gear 1 e 2 para MSX.
Como consequência, irei reinventar inúmeras vezes a roda neste processo, o que é exatamente a intenção aqui. Pretendo com isto saber a fundo como funcionam todos os aspectos no desenvolvimento de jogos no nível mais baixo possível.
No próximo post irei disponibilizar o código fonte já criado e expor o modelo por trás do funcionamento de Metal Gear Nanna (e, espero, irei também expor gráficos bem melhores do que os obtidos por mim até a escrita deste post).
Até lá!
Deixe uma resposta