Mostrando postagens com marcador TCC. Mostrar todas as postagens
Mostrando postagens com marcador TCC. Mostrar todas as postagens

quinta-feira, janeiro 01, 2009

Meu Trabalho de Conclusão de Curso

Enfim, depois de mais de um mês sem postar, estou de volta.

Não que eu esteja reclamando, mas estes últimos meses foram bem puxados. Encontrar tempo pra terminar o TCC enquanto trabalho, faço provas e trabalhos de outras matérias não é uma tarefa simples. Mas no fim deu tudo certo, meu trabalho foi bastante elogiado, aprovado com nota máxima e tal. E agora eu estou em um misto de alívio e felicidade por ter terminado a faculdade, e ainda uma pontinha de saudades que a turma vai deixar.

Para a apresentação do trabalho, eu ainda consegui (graças ao meu orientador, Júlio César da Silva) a participação do professor Esteban Walter Gonzalez Clua, do Instituto de Computação da UFF, na minha banca de avaliação. Pra quem não conhece, ele é membro da ABRAGAMES e um dos responsáveis pela criação do SBGames. A participação dele foi muito importante, pois não só meu trabalho foi avaliado e aprovado por alguém que manja muito do assunto jogos, mas também pode me ajudar com minhas pretensões futuras (mas eu volto a falar disso outra hora).

Além do Esteban, participaram da minha banca outros dois os professores: Eugênio da Silva, que foi meu professor em algumas disciplinas da faculdade (pegou pesado nesse último período, heim professor!) e Carlos Vitor de Alencar Carvalho, da Universidade Severino Sombra.

Apesar de poder ser meio bobo fazer isso aqui no blog, agradeço muito a estes quatro pela força com o TCC (e claro, pela minha nota 10 ;P).

Voltando ao trabalho e ao verdadeiro motivo deste post, estou disponibilizando um PDF pra quem tiver interesse em ler minha monografia. O texto completo tem 75 páginas e não é nenhum monstro em termos de tamanho (ainda mais se se levar em consideração que parte destas páginas são ocupadas por dois anexos).

A monografia, pra quem não sabe (que feio, não leu minhas postagens antigas) é sobre um sistema para criação de jogos visualmente, uma espécie de game maker. No texto eu faço um apanhado sobre a situação da indústria de jogos e os jogos no meio acadêmico, além de tratar de conceitos envolvidos na geração deste tipo de ferramentas e das tecnologias utilizadas no projeto. Por fim, é falado das partes que compõem o projeto em si: um wrapper para a biblioteca gráfica Allegro, um framework para criação de jogos, um ambiente visual e um gerador de código.

O software proposto no trabalho está em um estado funcional, já sendo possível criar jogos simples com ele. Toda a parte de carregar imagens e efeitos sonoros, criar entidades e atribuir eventos e ações já funciona, além disso o código-fonte já é gerado automaticamente e depois compilado, utilizando o MSBuild. Em breve eu posto aqui um link pra quem quiser testar.

Para baixar o arquivo da monografia, clique na imagem abaixo ou aqui. Boa leitura!


domingo, maio 04, 2008

Visual Game Framework - Pong


Fiz um pequeno Pong usando meu Visual Game Framework pra testar suas funcionalidades.

Estou liberando o jogo compilado (bem simples, com partidas sem fim) e o código-fonte (que serve para demonstrar como os jogos com o Framework são feitos). Acompanha o download todas as Dlls necessárias para rodar e compilar o projeto, ou seja, com o arquivo VisualGameFramework.dll já é possível desenvolver jogos, porém em breve eu devo fazer um lançamento oficial, com documentação e tal.

Quem olhar o código vai ver que nem tudo é feito de forma a se obter o melhor desempenho (por exemplo, testes que poderiam ser unidos em um só usando um operador binário aparecem como Ifs aninhados). Obviamente este código pode ser melhorado, mas ele foi escrito de uma forma que poderia ser gerado automaticamente por um programa (meu projeto de TCC deve gerar código de acordo com as escolhas do usuário). Claro que se alguém se interessar em desenvolver usando o Framework, será possível escrever código otimizado sem problemas.

É isso. Testem o Framework e deixem seus comentários. Certamente eles vão me ajudar.

Download: aqui.

PS.: Pong rubro-negro em homenagem ao Mengão!!!

domingo, abril 27, 2008

Estatísticas de código do Visual Game Framework

Bem, o Visual Game Framework finalmente chegou num estágio pronto para ser usado. Obviamente sempre há mais coisas a serem feitas e eu tenho muitas idéias pra adicionar ao Framework, mas eu decidi fechá-lo agora pra poder liberar a versão 1.0, senão o desenvolvimento não termina nunca.

No momento eu não pretendo mais mexer no código, então resolvi dar uma olhada nas estatísticas do projeto, ou seja, quantidade de linhas de código, comentários, etc.

Pra contar as linhas eu usei um plugin do Code::Blocks, que é ótimo mas pouco prático pra quem trabalha com C# (alguém conhece alguma forma melhor, especialmente pro .Net?). Abaixo, o resultado:

Como podem ver, são cerca de 6,5 mil linhas de código, sendo metade delas código propriamente dito, e quase 40% desse total é preenchido por comentários. Os comentários já são bastante completos, porém mais pra frente eu pretendo adicionar exemplos de utilização dos métodos também, o que irá aumentar ainda mais essa proporção.

São 30 arquivos .cs, divididos em 25 classes e 5 tipos enumerados.

Correção: dos trinta arquivos, são 22 classes, 7 enumerados e 1 arquivo gerado automaticamente pelo Visual C# para tratar as strings do arquivo de recursos. Destes, o maior arquivo é Jogo.cs, que controla a lógica central do jogo e conta com pouco mais de 1300 linhas (cerca de 20% do projeto).

Agora chega de informação inútil. Em breve, mais novidades.

Até a próxima.

sexta-feira, dezembro 28, 2007

Um pouco sobre meu TCC

Bem, eu estou de férias na faculdade e a maioria das pessoas que estão na mesma situação não querem saber de estudos até o ano que vem. Mas eu não sou assim. Depois de começar meu Trabalho de Conclusão de Curso com um grande atraso nesse semestre, eu estou aproveitando as férias pra dar uma boa adiantada nele e ficar tranquilo quando as aulas voltarem no próximo ano (e com elas o caminhão de trabalhos que os professores costumam passar).

Já faz um tempo que eu venho querendo comentar sobre meu TCC aqui, mas sempre batia uma preguiça na hora de escrever um post grande. Agora, eu respeito aos meus três ou quatro visitantes diários, resolvi que já era hora de falar sobre ele.

Alguns já sabem, mas não custa repetir, meu trabalho é um Ambiente Visual para a Criação de Jogos. Trata-se de um game maker, com características próprias, como o acesso ao código-fonte do jogo criado (o que permite usar meu projeto para criar o esqueleto do jogo e depois editar o código-fonte para fazer ajustes, se necesário).

O trabalho se divide em duas partes principais: o Ambiente Visual e um Framework.

O Ambiente Visual será a Interface Gráfica em si, onde o usuário irá desenvolver o jogo. Este ambiente irá oferecer maneiras de se carregar e configurar recursos utilizados no jogo (imagens, sons, fontes...) e definir os eventos e ações que cada Entidade irá desempenhar no jogo (como mover-se, checar mouse e teclado, instanciar e destruir outras entidades...). Depois de tudo editado usando a interface, o código-fonte do jogo será gerado automaticamente e compilado.

O Framework deverá conter diversas funções para criação e controle de jogos (como funções de desenho, acesso a dispositivos de entrada, armazenamento...), funções de controle das Entidades (mover, atualizar, desenhar...), e estruturas de dados (listas de imagens, sons, fontes, entidades e outros que são gerenciados internamente pelo framework). A idéia do framework é abstrair a biblioteca sobre a qual o jogo rodará (mais sobre isso abaixo), e facilitar e diminuir o código gerado pela interface gráfica. O framework pode (e deve) ser utilizado independente da interface, sendo uma opção rápida para o desenvolvimento de jogos.

Atualmente eu tenho trabalhado no desenvolvimento do framework, que tem o nome provisório de VisualGame Framework (se alguém tiver uma idéia de nome melhor, me avise :)). Eu havia iniciado o desenvolvimento usando o Managed DirectX, mas tive alguns problemas e resolvi mudar. Testei várias opções (XNA, SDL.NET, GDI+ e Irrlicht) e por hora me decidi pelo IrrlichtCP, mas isso ainda pode mudar.

Como vocês devem ter reparado, os testes foram todos feitos com bibliotecas gerenciadas pelo .Net. Isso foi uma decisão minha porque eu pretendo usar o compilador do .Net na hora de gerar o executável do jogo (testes foram feitos com sucesso com o CSC e o MSBuild). Como a interface será feita no Visual C# Express, o desenvolvedor já terá que ter o .Net Framework instalado para usá-la e este será o único requisito. Caso eu escolhesse uma biblioteca Win32, o desenvolvedor teria que instalar também um compilador (como o gcc), o que não me agrada muito no ponte de vista de usuário (diz aí, você gosta quando tem que instalar um monte de coisa pra usar um programa?).

No entanto, essa também não é uma decisão final. A versão final desse trabalho só será apresentada no final de 2008 e até lá algumas coisas podem mudar. De acordo como está estruturado o framework hoje, não é muito complicado trocar de biblioteca (cada conversão entre as bibliotecas que eu citei acima demorou um ou dois dias apenas), mas trocar de linguagem certamente daria um trabalho um pouco maior. Eu citei 'trocar de linguagem' porque ainda existe a possibilidade de o programa ser voltado para criar jogos em Java para celular (o que justificaria bastante o produto, como uma ferramenta para gerar jogos casuais e advergames de forma rápida e descomplicada).

Muito bem, chegamos ao fim deste post que eu espero que seja o primeiro de muitos sobre o assunto. Futuramente eu quero falar um pouco mais sobre sobre os testes com as bibliotecas e quais os problemas com os quais eu me deparei, além de apresentar melhor o framework, mostrá-lo em funcionamento (estou desenvolvendo um joguinho como teste) e disponibilizá-lo caso alguém se interesse em testá-lo. Se alguém tiver alguma sugestão ou crítica, solte a língua nos comentários.

E é isso aí. Feliz ano novo e sucesso nos seus projetos. Até a próxima.