Ponto V!

Home
Bruno Crivelari Sanches
Meus JogosImprimir
Escrito por Bruno Crivelari Sanches

Neste artigo vou apresentar alguns dos meus jogos e outros programas quase jogos que fiz ao longo dos anos. Nem todos foram feitos integralmente por mim (se esqueci de alguém nos créditos, favor dar um puxão de orelha) e nem tudo posso disponibilizar, mas acredito que sejam uma boa referência para aprendizado (de como fazer e de como não fazer).

Tetris

tetris_001 Este foi o mais antigo que consegui encontrar, este Tetris foi desenvolvido como trabalhado da disciplina de Programação Imperativa do primeiro ano de faculdade (1999). O que tem de especial nele é que foi o primeiro jogo que fiz quando estava começando a aprender programação de gráficos no Dos (e arranhando no C), também não fazia muito tempo que eu havia descoberto o Modo 13h e estava me sentindo nas nuvens podendo realmente manipular pixels com mais de 16 cores.

O jogo podia ser jogado por um ou dois jogadores, apesar que o modo dois jogadores é meio mala no teclado mas serviu apenas de experiência, ele nunca chegou a ser concluído 100%, faltou implementar o sistema de highscores.tetris_002

Para rodar ele hoje acredito que apenas usando o DosBox, testei com a versão 0.74 e funcionou sem problemas. Para compilar apenas usando o TurboC ou o BorlandC++ 3.0 (não lembro qual dos dois usava na época, acredito que o Borland), ambos compiladores 16 bits.

Este é um exemplo simples para quem quer ver como se fazia um jogo antigamente e a acessava o Hardware para tal.

O código fonte pode ser baixado clicando se aqui. Os binários podem ser encontrados aqui.

Craft 3D

pdjO Craft3d foi um motor 3d que comecei a desenvolver durante a graduação em parceria com o Danny Angelo, o Craft era feito em C++ e a principio era um motor construído para jogos de primeira pessoa e o enfoque principal eram ambientes internos (numa época onde ambiente externo e interno eram coisas bem distintas e raramente um motor 3d tinha os dois de forma bem feita).

O Craft era um render baseado em Árvores BSP e os cenários eram construídos utilizando-se editores para alguma versão do motor do Quake, sendo o nosso preferido o QuArK. Construído o mapa no editor o artista devia então compila-lo utilizando um compilador que construímos, este gerava árvore BSP e convertia o resultado final para um formato binário próprio.

Inicialmente o motor trabalhava apenas com modelos md2, mas depois consegui desenvolver um sistema de animação por ossos, este era baseado no formato texto smd do Half Life, que foi escolhido devido a facilidade em se encontrar exportadores.portal

Nos últimos meses de desenvolvimento o Craft recebeu um sistema de som (usando OpenAL) e o motor estava sendo modificado para fazer o culling utilizando um sistema de portais, que pode ser visto em testes na imagem ao lado.

O auge do Craft foi sua utilização no Jogo Jessy: Ein Zirkuspferd in Not que foi publicado na Europa.

Disponibilizei a ultima versão binária que consegui encontrar aqui. Quase toda a arte foi criado por Flavio Tales, artista de mão cheia e grande parceiro nas empreitadas para criação de jogos 3d. Além dessa versão coloquei uma com outros cenários que consegui encontrar no que acredito que seja o ultimo backup que fiz antes da Jessy, esta versão pode ser baixada clicando-se aqui. Esta ultima versão possui alguns cenários que utilizam texturas do Quake II (acredito que da versão demo apenas).

Stock Car

stockcar Este jogo 2d foi desenvolvido em 2003 como trabalho para uma das disciplinas da Especialização em Desenvolvimento de Jogos Digitais da Universidade Positivo.

Foi desenvolvido em C++ e usou “pedaços” do Craft3d, os gráficos foram extraídos de um jogo de corridas (que não me lembro qual) e o jogo tinha uma física bem simples, mas me lembro que a diversão mesmo foi a criação do sistema de Inteligência artificial e fazer com que os oponentes andassem pela pista de forma correta.

Nessa época já havíamos criados uma biblioteca chamada de BCL (BitCrafters Common Library) que servia de camada básica para criação de jogos, possuindo sistema de arquivos, vídeo, abstração de API 3d e outras funcionalidades.

No final foi criado um “caminho” pela pista onde colocamos pontos pela pista marcando o caminho que o IA deveria seguir, os carrinhos então tentavam se manter nessa trajetória e acidentalmente ultrapassavam o jogador quando esse fizesse alguma barberagem.

Para deixar o jogo mais divertido a gente acabou colocando alguns npcs passeando pelo cenário que eventualmente acabavam sendo atropelados.

O código fonte pode ser baixado aqui, os binários podem ser baixados aqui. Na minha maquina atual o som não funciona, não sei como vai se comportar em outras maquinas.

Erinia

426668[1] O Erinia foi um MMORPG criado pela Ignis Games com o objetivo de fornecer ao mercado nacional um MMO mais com cara de Brasil, o jogo tinha como objetivo ser simples e acessível a jogadores casuais, além de ter uma temática baseado no folclore nacional e elementos da nossa história (nada como detonar alguns sacis). O Erinia foi feito em C++ (cliente e ferramentas) e tinha o servidor desenvolvido em Java. Trabalhei em diversas áreas, sendo as mais freqüentes ferramentas e no motor 3d (totalmente criado pela Ignis Games).

O que dificultou muito nosso trabalho na época foi fato de estarmos trabalhando num MMO, isso nos trazia grandes dificuldades técnicas e para deixar nosso dia a dia mais interessante o foco do jogo eram jogadores casuais e maquinas mais modestas, para uma época onde computadores baratos como temos hoje era algo inexistente isso significava suporte a hardware bem modesto e muita otimização e para completar o jogo tinha que funcionar com conexões discadas (banda larga era luxo bem caro) e isso significava que o download tinha que ser mínimo. Dessa forma a equipe de arte ralou para fazer bons gráficos com poucos recursos e a equipe de programação ralou um bocado para compactar ao máximo os arquivos e gastamos muitas horas aprendendo a programar compactadores.

O Erinia infelizmente não acabou sendo o sucesso comercial que todos nós esperávamos que fosse e infelizmente o projeto teve que ser cancelado, mas recentemente uma versão foi colocada no ar e pode ser acessada clicando-se aqui.

Não posso disponibilizar o código (que nem tenho acesso) ou o download do jogo, mas quem quiser experimentar no site oficial pelo o que entendi basta se cadastrar.

Jessy: Ein Zirkuspferd in Not

545375[1] Este jogo (chamado por nós apenas de Jessy) foi desenvolvido pela empresa que fundei juntamente com Danny Angelo e dois amigos ex funcionários da Ignis Games, sendo o Eros Carvalho (programador) e o Mauricio Valle (artista), a empresa que criamos chamada de BitCrafters Inc. desenvolveu a Jessy que foi publicado na Alemanha pela DTP-AG e Caipirinha Games. Após a Jessy foram criados outros protótipos que infelizmente não renderam frutos.

O jogo é baseado na Jessy, uma personagem de quadrinhos que segundo nos foi dito é muito famosa na Alemanha. O jogo foi feito utilizando-se o Craft3d e em Março de 2005 chegou a ficar em sétimo lugar nas vendas de jogos educativos / infantis na Alemanha.

O Craft3d recebeu vários melhoramentos para a criação da Jessy, dos principais que me lembro foi um sistema de Gui criado pelo Eros que me surpreendeu por ter sido feito sem precisar de grandes modificações no motor e tirando proveito do quase sistema de script que o motor tinha para fazer o console. Além deste construímos um motor de gameplay para jogos estilo aventura, onde utilizando o editor de maps era possível criar missões, conversas, animações onde npcs realizavam ações e outros eventos típicos desses jogos.

Infelizmente este não posso disponibilizar o download, mas estamos vendo se legalmente podemos disponibilizar o código.

O demo do jogo pode ser baixado clicando-se aqui. Agradeço ao Danny por ter vasculhado seus backups e enviado o demo.

Torquere

torquere_dom_0Este jogo foi criado em 48 horas para o Global Game Jam 2011 por uma equipe de 5 pessoas, sendo que participei do projeto como programador de jogo e implementei varios itens do gameplay. O desenvolvimento foi feito em C (com uma leve e quase inperceptível pitada de C++) utilizando a Chien 2d, biblioteca C para jogos 2d criado pelo Paulo V. W. Radtke, também autor do PontoV.

Fou uma experiência bem divertida e foi muito legal voltar ao tempos da programação C pura e experiementar a Chien 2d, que acabou me impressionando devido a facilidade de uso, pois após uns 15 minutos de explicação do Paulo sobre o sistema de atores e integração com o editor de níveis, já sai programando os primeiros inimigos que começaram a ter vida própria rapidamente!

Apesar de alguns pequenos problemas o jogo ao meu ver se tornou um jogo completo, com direito a introdução, gameplay completo e dois finais! Ficou faltando apenas a tela de ajuda e configurar melhor os controles.

A história do jogo é baseado em um morador que fica preso do lado de fora da sua vila durante a noite, onde sua única defesa contra os seres da noite é a sua tocha, que deve ser mantida acesa durante toda a noite evitando assim ser morto pelas criaturas da noite.

O post-mortem do jogo pode ser lido aqui: Torquere – Post Mortem

O instalador do jogo (Windows e Linux) pode ser baixado aqui, o código fonte pode ser encontrado aqui.

Fuzzy Invaders

Fuzzy InvadersCriei este jogo para um trabalho da disciplina de Inteligência Artificial do Mestrado em Ciência e Tecnologia da Computação que tenho cursado na Universidade Federal de Itajubá. O jogo é um clone simplificado do classico Space Invaders, os inimigos são bem mais simples que os do original, pois apenas descem pela tela e não atacam. O jogador possui a sua disposição três tipos de armas e conforme vai derrotando os inimigos vai ganhando munição. Para a disciplina foi aplicado lógica Fuzzy para movimentar a nave do jogador, além disso a lógica fuzzy foi aplicada para controlar a seleção de armas, escolhendo armas conforme a munição disponível e a distãncia dos inimigos.

O desenvolvimento do jogo foi um mini Global Game Jam, pois foi desenvolvido durante dois dias trabalhando algumas horas durante o período da noite, os gráficos foram coletados na internet (se alguém souber os créditos, favor avisar para eu colocar, pois na correria não anotei). O jogo foi todo implementado em C++ utilizando SDL e o sistema de input do motor 3d que venho trabalhando bem de vez em quando o Phobos.

A versão executável do jogo pode ser baixada aqui. O código fonte do jogo pode ser baixado aqui. Artigo descrevendo o uso de lógica fuzzy pode ser baixado aqui.

Reapers Collector

screen03Este jogo foi criado durante minha segunda participação no Global Game Jam, em 2013 por uma equipe de quatro pessoas, participei do projeto como programador, implementando parte do gameplay, além de funcionalidades de gerenciamento do gameplay e integração de motor de física box2d com o jogo. Para este projeto foi utilizado a linguagem C++ e o Seed Framework.

Novamente foi uma ótima experiência poder participar do Global Game Jam em Curitiba e rever os amigos, no lado técnico foi uma ótima experiência poder conhecer mais a fundo a Seed Framework, que possui ótima qualidade e é muito simples de utilizar, bastou seguir alguns exemplos fornecidos pelo framework e mais algumas dicas do criador e rapidamente o projeto começou a progredir.

O jogo mesmo com o prazo completo do meu ponto de vista foi um sucesso, pois afinal concluímos todo o jogo antes do prazo, com direito a menu, introdução, final e diversos níveis, além de rodar em Windows, Linux e MacOS.

A história do jogo é baseado em um sujeito que é escolhido pela morte para coletar almas, no jogo representado por corações, ele devem então percorrer os níveis coletando corações das vitimas e entregando a morte, caso não o faça, a morte “recolhe” o coração do jogador.

Para saber mais sobre a criação desse jogo, recomendo a leitura do post-mortem: Reapers Collector – Postmortem.

A versão executável do jogo pode ser baixada aqui. O código fonte pode ser baixado aqui.

Outros Projetos

Após a Jessy ainda me envolvi em dois outros projetos que nunca chegaram a ser comercializados, sendo ambos para Playstation 2 e Xbox. Foi uma fase bem interessante onde aprendi a trabalhar com tecnologias bem diferentes e a entender código C com comentários em Japonês. Ambos projetos foram feitos em C e ambos chegaram a estágio funcionais e eram realmente jogáveis, mas infelizmente devido a problemas com investidores foram cancelados.

Além destes projetos tenho mantido outros dois projetos open source:

  • Phobos: um motor 3d desenvolvido em C++ utilizando Ogre.
  • Wadlib: uma biblioteca para manipulação de arquivos de dados do jogo Doom, maiores detalhes aqui.

Caso esteja procurando mais jogos com código, de uma conferida na pagina do Vinícius clicando aqui.

LAST_UPDATED2  

Busca

Linguagens

Twitter