Jogo para celular: A Day Like a Nightmare – Java ME
Desenvolvi este projeto como trabalho para a matéria Sistemas Embarcados, focada no desenvolvimento de aplicativos para quaisquer tipos de dispositivos móveis em circulação no mercado. Vale lembrar que a programação é voltada para Java 2 Micro Edition, e não Android ou iOS (iPhone/Pod/Pad).
Como o tema do trabalho foi livre, optei por desenvolver um jogo utilizando a API de alto nível da JME. Este requisito foi imposto pelo professor por termos que fazer um outro projeto com a API de baixo nível, sendo este um segundo trabalho e que também irei disponibilizar e postar aqui. Sem mais delongas, o jogo foi baseado no gênero “Escape the Room” onde o objetivo do jogador é tentar escapar de uma sala utilizando os itens e elementos encontrados na mesma, geralmente tem-se que abrir uma porta utilizando uma chave ou algum tipo de código que irá destravá-la. O desafio foi portar este tipo de jogo para celulares sem tela sensível e com capacidade limitada de gráficos e som. Consegui fazer essa adaptação, porém a intuitividade provida por estes jogos quando jogados em browser (navegadores) ficou bastante comprometida, sendo que o jogador deve entrar em contato com os cenários através de botões do menu, diferente de quando jogado em um browser onde a liberdade do ponteiro do mouse facilita a jogabilidade, tornando o jogo mais dinâmico.
De qualquer forma, de um modo geral, o jogo ficou aceitável e jogável, e implementei alguns componentes para incrementar a jogabilidade como: combinação de itens, inventário, utilização dos itens coletados para interagir com o cenário, música de fundo (background music), alguns efeitos sonoros que tocam em paralelo com a música de fundo e um sistema de falas como visto em RPG’s 8-bits. Aos desenvolvedores que tiverem interesse em dar uma olhada no código, este projeto foi criado utilizando a IDE Java ME Plataform 3.0 SDK e eu sempre esqueço de comentar o código e se surgir alguma dúvida quanto a lógica, podem entrar em contato comigo através do e-mail na sessão “Contatos”.
Algumas imagens:
Abaixo o link para download do projeto, source e resources (efeitos sonoros, background music e imagens), e o link para o executável que deverá ser instalado no seu celular, vale lembrar que necessita de uma tela mínima de 176×220:
Mais novidades no próximo post com o novo projeto.
Att.
GENIUS – Devidamente confeccionado
Não tão devido como eu esperava, mas também fora feito à culhão e as pressas, e pensar que eu já estava conformado com o circuito dando pau, que é o que ocorre normalmente quando se faz coisas desse tipo de última hora, porém, deu tudo certo no final!
Comecei o dia indo na papelaria para comprar transfer e pedir para imprimir o meu circuito nele, já que facilita e muito a confecção com a utilização de uma transparência. Infelizmente, não achei em lugar nenhum o transfer e tive que utilizar dos velhos métodos e comprei um glossy paper (papel para fotografia), imprimi o circuito em uma boa qualidade e voltei pra casa para confeccioná-lo.
Depois de limpar a placa com bombril e um pouco de álcool e ter recortado o circuito, utilizei do ferro de passar roupas para poder fixá-lo na placa, e por ter utilizado glossy paper, sempre uma parte do circuito acaba se desfazendo e daí temos que utilizar a velha canetinha de marcar CD/DVD/Blu-ray/(n-mídias) para completar as trilhas defeituosas, o que tomou boa parte do meu tempo, e por fim corroer a placa em uma solução de percloreto de ferro.
Como soquei de percloreto, a solução ficou bastante concentrada (sim, eu exagero sempre) e não levou mais que 10 minutos pra corroer tudo. Enxuguei a placa, e removi a parte preta marcada de caneta com a ajuda de um bombril, ficando somente as trilhas ao final.
Saí de casa feito um louco, depois de ter engolido a comida e ter chegado no trabalho atrasado, porque ainda tive que fazer as furações para o encaixe dos componentes e isso é o que leva mais tempo, pois tem que ter todo cuidado. Chegando na faculdade, umas 17:30h e pra minha não-surpresa o laboratório de eletrônica estava fechado, am i fucked up? Not this time… como todo bom engenheiro eletricista, estava com minha caixa de ferramentas e equipamentos elétricos, e só pedi pro manolo da recepção abrir a sala em que o professor ia dar aula e comecei a soldar os componentes, sem a ajuda do suporte de solda.
E foi na hora que pluguei a bateria que veio o pânico, será que vai funcionar? Sempre que fiz essas placas a maioria sempre bugou, porém, não desta vez! Apertei os botões e voilà, tudo funcionando perfeitamente! Terminei soldando fios soltos ao espaço que estava destinado as trilhas, que seriam encaixadas no arduino, porque a furação que fiz ficou torta e a trilha não encaixou… enfim, conectei tudo ao arduino e funcionou, melhor ainda foi não bugar na hora de apresentar!
Por fim, um vídeo de demonstração do produto final:
Com as férias voltando, darei continuidade a outros projetos e isso aqui voltará mais à ativa!
Att.
GENIUS – Projeto concluído
O projeto foi concluído com sucesso! Consegui corrigir todos os bugs, e o jogo está funcionando 100%! Abaixo seguem algumas fotos e o vídeo final. O código fonte será disponibilizado, assim como o arquivo do programa Fritzing com o esquema eletrônico do PCB.
E uma demonstração do jogo em funcionamento:
Foi uma pena não ter encontrado aqui em Salvador um piezo elétrico para a reprodução dos sons, comprarei um e implementarei novamente, porém com som! Fico devendo essa.
E aqui os links:
GENIUS – Primeiros testes
Montado o circuito e já tendo iniciado a programação, comecei a fazer alguns testes com os LEDs tendo como base a lógica do jogo GENIUS, que é piscar os LEDs em uma sequência, repetidas vezes, para que o jogador possa acompanhá-la apertando os botões referentes as luzes que piscam completando a sequência até um total de 31 combinações. Até o momento, nenhum bug encontrado e estou implementando a interação do jogador com o jogo, que é a leitura dos botões quando pressionados e compará-los a sequência criada. Abaixo algumas fotos e um pequeno vídeo:
E o pequeno vídeo que preparei com a demonstração dos LEDs:
E daqui a pouco postarei o jogo completo, com o código fonte, vídeos e fotos e o esquema do circuito.
Finalmente chegou!
Bom, já tinha chegado a 1 semana, mas com a correria das provas esqueci de postar. Neste final de semana darei início ao trabalho de criação do Gênius, fotos e vídeos dos testes estarão online em breve!
Att.
Arduino a caminho!
Já foi confirmado o envio do meu Arduino pelo vendedor do Mercado Livre! Como falei no post anterior, é o modelo UNO o mais novo segundo o site oficial e assim que chegar farei alguns testes para me familiarizar com a plataforma. Por fim, darei início ao desenvolvimento do projeto Genius (Simon Says), inaugurando assim a sessão GrindTronix e me fazendo ganhar alguns pontos na matéria “Sistemas Digitais II”.
Em breve, novidades!
Att.
Novo vídeo do projeto UNO!
Apenas postando um pequeno vídeo das funcionalidades atuais do projeto UNO, agora com NPCs funcionais, as cartas especiais todas funcionando corretamente, além da correção do bug do sentido da mesa que sempre fazia o jogo travar ao chegar no último jogador, agora só preciso adicionar o botão “UNO”, um outro botão para contestar quem não falar “UNO” e uma animação bem simples mostrando o nome “UNO”, fora uma trilha sonora de elevador pra dar um clima de jogo de cartas. De resto é puro layout para os menus e botões, e descobrir uma biblioteca melhor para utilização de GUI’s ou eu tomar vergonha na cara e criar a minha própria.
Enfim o vídeo:
Em breve, mais novidades!
Recriando o GENIUS!
Devido a um projeto para a matéria “Sistemas Digitais II” escolhi entre tantos outros brinquedos refazer o finado “Genius”, para quem não conhece, é um jogo eletrônico lançado aqui no Brasil pela Estrela e criado pelo mito Ralph H. Baer, o pai dos video games. No jogo, você deve seguir uma sequência de cores que piscam em 4 tons: vermelho, verde, amarelo e azul; e a partir daí, ir apertando os botões correspondentes. Essa combinação tende a crescer de 1 a 1, chegando a um máximo de 31 repetições, além dos modos de jogo onde você deve criar suas combinações e repetir a sequência a partir de uma cor. Caso erre a sequência, o jogo é resetado e todos os botões emitem sons diferentes para facilitar no reconhecimento. E como trabalho de final de curso, irei recriá-lo utilizando a plataforma Arduino para a programação da lógica eletrônica e montarei um “shield” (como são chamados os add-ons do Arduino) para o reconhecimento ao apertar os botões com as cores e para a emissão dos sons a partir de um buzzer.
Para conhecimento:
Iniciando desenvolvimento de aplicativos para Facebook
Depois de um tempo parado, devido as férias e o saco cheio de tudo, voltei a ativa no final do mês passado, bastante interessado em desenvolver pequenos projetos para o Facebook. Peguei um livro um tanto velho, porém que dá para tirar algumas informações básicas, sobre como programar aplicativos para o Facebook, chamado: “Building Facebook Applications” da série “For Dummies” famosa por ser direta em suas explicações e ter bastante exemplos práticos, e passo-à-passo. Comecei a ler o livro em paralelo com a documentação da SDK do Facebook, pois o livro é de 2008 e bastante coisa mudou na SDK, logo torna-se necessário esse paralelismo. Vi o quão fácil é fazer um aplicativo para a rede social e decidi começar a fazer vários deles, sendo úteis ou simplesmente para divertir os usuários e também aprender mais sobre este novo ramo que ascende a cada ano.
Já tenho um primeiro projeto em desenvolvimento e assim que estiver com, pelo menos, 50% concluído posto mais informações sobre. Apenas postando para dizer que não abandonei a GrindLabs e nem os meus projetos pessoais, só estou tentando me organizar, agora que estou estagiando, para dar tempo de continuar meus projetos, estudar para as provas da faculdade, me dedicar ao estágio e jogar WoW e meu querido PS3!
Em breve, mais novidades!
Mudando a engine para desenvolver jogos
Estava aqui resgatando meus antigos projetos, e ei de me deparar com um bem antigo chamado Board Games Online. O intuito do jogo era ser online (não-massivo) onde os jogadores teriam uma cidade, como lobby, repleta de jogos casuais como buraco, dominó, poker, dardos etc. E iriam ganhando e perdendo seus GrindCoins (GC$) nas apostas. Lembro que na época estava com preguiça de começar tudo do zero, tendo que pegar uma dessas APIs feitas em C como Allegro, criar um wrapper para utilizar apenas as funções de meu interesse, organizá-las em classes já que iria utilizar em C++ e blábláblá… que acabei indo procurar uma dessas engines/makers prontos para criar o cliente pelo menos, o servidor eu já estava convicto que iria escrever em C#. Encontrei VÁRIAS opções, mas todas muito caras e eu não estava querendo programar na clandestinidade. Foi quando me deparei com a Game Maker, simples, robusta, com uma linguagem de script que pode ser usada tanto em sintaxe C como em PASCAL, sendo essa linguagem denominada GML, com bastante funções e o que não fosse encontrado em sua documentação, poderia ser implementado através da utilização de DLL’s escritas em quaisquer linguagens de programação e importado para o projeto do jogo. Enfim, decidi por comprar o Game Maker, na época a versão 7, e foi quando saiu o primeiro esboço do cliente que foi desenvolvido até a inclusão de NPC’s e arquivamos porque as pessoas sempre perguntavam “onde estão os monstros para matar?” e coisas assim. E assim veio a idéia do Travelers Online.
Bom, toda essa história é simplesmente para dizer que estou adotando definitivamente o Game Maker como plataforma principal para o desenvolvimento de jogos. Não quero mais ficar me estressando em criar wraps, linhas de código, e corrigindo linhas de código com a utilização de APIs como Allegro e SDL, sei das limitações do Game Maker e também sei do que ele é capaz. Tem uma ótima comunidade que sempre está ajudando, ativa, e ainda posso divulgar meu trabalho final no site oficial da Yoyo Games, detentora dos direitos do Game Maker. Meu último trabalho está sendo com o jogo UNO, que irei concluir por onde comecei, utilizando a lib Slick2D e J2SE. A exceção será apenas se eu ver futuro em um port para celular ou outro dispositivo móvel.
E também eu comprei a engine, né? E só usei em dois projetos, arquivados.
Os próximos títulos da divisão de jogos, GrindGames, serão feitos em Game Maker utilizando a GML (Game Maker Language).


















