quarta-feira, 16 de novembro de 2011

Mais progressos...


Depois de mais um tempão sem postarmos nada, fiquei encarregado de listar os avanços de cada integrante do nosso grupo. Sem mais delongas, cá estão:

Arthur

Desde o início do desenvolvimento propriamente dito, minha parte ficou bem definida em uma palavra: Canhão.
Ou seja, apesar de opinar em alguns detalhes, como na interface gráfica do editor de mapas por exemplo, minha tarefa se resumiu a desenvolver o canhão e tudo que lhe diz respeito.
Seguem os passos mais importantes realizados (talvez não estejam na ordem exata):
- Fazer o canhão aparecer na tela
Pode parecer bobagem, mas isso só aconteceu após algumas correções que o Gabriel N. fez no meu código inicial.
- Fazer o canhão mirar na direção do cursor
- Possibilitar movimento por teclado
Essa parte foi tranquila, porém faltava permitir movimento diagonal.


- Fazer outra imagem para o canhão
A primeira era deplorável.
- "Traduzir" para GWT tudo que havia sido feito
Até o passo anterior tudo estava sendo feito em Java simples, desktop, num projeto separado.
Após esforços meus e do Gabriel N. , o canhão foi copiado com sucesso para o projeto principal (GWT).
- (Gabriel N.) Possibilitar movimento diagonal
Como no GWT não é possível usar Threads, eu não soube como fazer isso. No entanto o Gabriel (Santo Gabriel) conseguiu fazê-lo por meio de Timers.
- Fazer Atirar
Um canhão que não atira é deplorável.
Num momento de inspiração, desenvolvi em algumas horas tanto a parte da mira quanto o ato de atirar, porém não estava conseguindo testar, devido à leveza inigualável da execução do GWT.
No início do dia seguinte, quando nosso grupo passou o dia inteiro reunído, desenvolvendo, fomos testar o que eu tinha feito:
A mira ( reta similar às de jogos de sinuca online, que indica a direção e força do tiro ) demonstrou mais sinais de funcionamento do que deveria, ( várias linhas eram impressas na tela, em vez de apenas uma ). Foi realmente intrigante o constraste de excitação/preocupação nos olhos do Gabriel. No entanto, quando ele soltou o botão do mouse ( invocando o método de lançamento de planetas ) para alegria geral, um planeta foi, de fato, lançado!
Após algumas correções do Gabriel ( sim, de novo... ) a reta da mira passou a funcionar corretamente, apesar de apresentar problemas bastante visíveis quanto à angulação.
- Resolver o problema da angulação
Infelizmente agora a reta estava alinhada mas fora do lugar, desviada para a direita relativa ao canhão.
- Corrigir o problema do alinhamento
Graças ao olhar infalível do professor Ivan, que passou provavelmente mais de uma hora olhando nosso código, foi resolvido o problema do alinhamento da reta. ( eu, sinceramente, não entendi até agora o que exatamente ele corrigiu )
- Implementar a lógica que para calcular as velocidades vertical e horizontal dos planetas a serem lançados, em função da angulação do canhão e do tamanho da reta de mira
Infelizmente a API permite uma variação irrisória de velocidade, no entanto, consegui atingir planetas com outros planetas ao variar drasticamente o tamanho das retas de mira.


Gabriel Negrelli

1) Implementei a lógica de lançamento de asteróides;

2) Ajudei a Heloísa com a movimentação do mapa;
3) Fiz o minimapa;

4) Fiz parte da movimentação do mapa no editor de mapas;
5) Comecei a reestruturação do projeto;

6) Fiz um widget para os botões da Heloísa;
7) Implementei o zoom da tela do forplay, porém este foi retirado da versão final;



Gabriel Rodrigues

1) Desenvolvimento da API de autenticação pelo Twitter;


2) Consertei alguns erros na API de autenticação do Twitter;
3) Implementei-a no nosso projeto do jogo planetário;
4) Criei um banco de dados para armazenamento de dados de um autenticação do prórpio jogo;
5) Criei as GUI, via DialogBox do GWT, para o usuário realizar sua autenticação;





Heloisa

1) Movimentação da área visível do mapa;


2) Reestruturar o código do Editor de Mapas;
3) Design da página inicial do jogo;
4) Os flashs que o projeto contém (tutorial por exemplo);





Ricardo

1) Implementei um editor de mapas que gera arquivos XML contendo todas as informações sobre cada fase projetada.



2) Comecei, junto com a Heloisa, a criar a página de seleção de fases do jogo;

3) Criei a classe que lerá os arquivos em XML;

segunda-feira, 11 de julho de 2011

Progressos

Olá, pessoal.

Depois de um tempão tempo sem postarmos algo por aqui, venho reportar o que nosso grupo anda fazendo do projeto de Java e TDS.

Como, pelo menos inicialmente, cada integrante do grupo ficou encarregado de uma parte do projeto, decidimos que cada um deveria escrever um mini-relatório do que já conseguiu fazer.

Abaixo estão os progressos de cada um dos integrantes:

Arthur Vezneyan Zotareli Rosa Nº04 Prontuário 0951366

O que fez nessa semana?


  • Dei idéias de como trabalhar com a mira do jogo e participei das discussões do grupo.

Gabriel Negrelli Garcia Nº 22 Prontuário 0951234

O que fez nessa semana?


  • Realizei testes com a API de Física que será utilizada no jogo;
  • Implementei a atração gravitacional entre os corpos;
  • Criei as classes que servirão de base para o jogo;
  • Subi o projeto no Subversion;
  • Comecei a dar uma olhada na API gwt-graphics, para que possamos desenhar as fases;
  • Criei um programa para teste da API de Física + Implementação de gravidade;

Gabriel Rodrigues Guaiato Nº24 Prontuário 0951412

O que fez nessa semana?


  • Auxiliei no desenvolvimento da API de física.
  • Pesquisei sobre API disponibilizadas para a conexão e login com Facebook, Twitter e contas Google.
  • Organizei uma reunião para os interessados no desenvolvimento da ferramenta de login discutirem.

Heloisa R. B. Carbone N° 26 Prontuário 0951773

O que fez nessa semana?


  • Formulei a mesa do jogo (onde o usuário selecionará com quem deseja jogar, ou se quer criar uma mesa nova). Desenhei-a no netbeans.
  • Estudando como utilizar o gwt design para a montagem da mesma mesa, para que seja possível a utilização das tecnologias que escolhemos.
  • Estou tendo certa dificuldade com alguns desenhos do gwt, como a tabela, porém ainda não arrumei uma forma de configurá-la.

Ricardo Yukio Sakurai Nº34 Prontuário 0951927

O que fez nessa semana?


  • Estudei sobre o formato de arquivo xml e construí um arquivo padrão para o armazenamento de dados dos mapas do jogo.
  • Construí uma classe que lê os arquivos em xml e utiliza seus dados para a construção dos mapas.
  • Utilizei a API JDOM para a execução dos comandos na classe citada anteriormente.


Como dito acima, o projeto do grupo já está no repositório Subversion da escola.


Para os interessados, lá é possível encontrar um programa de testes, que permite criar estrelas e planetas e que demonstra o funcionamento da API de física que estamos utilizando.

Embora seja um programa bem simples, dá para brincar um pouco.

O link da nossa pasta no repositório é este aqui:

Pasta do grupo

E o projeto está na pasta:

ProjetoJogoPlanetario_PontoJar

Embora ele tenha sido criado com o Netbeans, testamos a importação no Eclipse e ela funciona.

Abaixo está uma imagem do programa de testes:




Bom, por enquanto é isso.

Esperamos que aqueles que testarem o exemplo, gostem =)

Até a próxima,

Grupo Ponto Jar.

sexta-feira, 6 de maio de 2011

Atualizações sobre o Projeto

Nesta semana, nosso grupo se reuniu algumas vezes para decidir detalhes iniciais nos quais a aplicação final deverá se basear.

Decidiu-se a estrutura de janelas que contará com um menu inicial composto por uma imagem de fundo e opções como SinglePlayer, Multiplayes e Opções, onde poderá ser escolhida uma qualidade que o jogo rodará.

O jogo não será totalmente dependente de login para que o usuário possa usá-lo. Somente o será requisitado se este desejar postar seus dados de Ranking no final de alguma carreira no modo SinglePlayer, ou para jogar no modo Multiplayer em si.

A parte de Multiplayer contará com chat, tanto em geral quanto para as salas de jogo, onde existirão no máximo 4 jogadores.

Já em se tratando sobre o desenvolvimento em si do projeto, a parte de GWT já está sendo estudada pelos membros do grupo e deverá logo começar a ser utilizada.

Atenciosamente,

Grupo Ponto Jar.

quinta-feira, 14 de abril de 2011

Nosso Projeto de Java e TDS

Olá pessoal.

Como vocês já sabem, nossa ideia principal para o projeto de Java e TDS é a de um jogo. Abaixo, descreveremos como ele funcionará inicialmente.

Ele terá dois modos de jogo, a saber:

  • Singleplayer – Para um jogador, com sistema de fases e objetivos;
  • Multiplayer – Para até quatro jogadores (por questões de jogabilidade), com sistema de turnos;


Estrutura Básica do Jogo


Nos dois modos de jogo, cada jogador será capaz de lançar planetas, de massas e tamanhos variados.

Espalhadas pelo mapa estarão estrelas, também de tamanhos e massas diferentes.

O objetivo do jogador será atirar seu planeta e fazer com que ele orbite uma das estrelas, sem colidir com ela. Quanto mais próximo o planeta estiver de sua estrela, maior será a pontuação dada ao jogador. Caso o planeta colida com a estrela, o jogador perderá pontos. Será estabelecido também um tempo de “resfriamento” do sistema de lançamento de planetas, tempo este que o jogador deverá esperar antes de poder lançar outro planeta.

O jogo contará com fases de tutorial, para que o jogador se acostume com a jogabilidade. Além disso, contará com níveis de dificuldade crescentes. Conforme a dificuldade aumentar, poderemos fazer com que outros corpos como asteróides passem a cruzar o mapa, aleatoriamente, para que caso ocorra colisão com um planeta, este tenha a sua órbita alterada.

Observação: Alguns aspectos físicos talvez tenham de ser alterados, ou seja, seus efeitos poderão ser minimizados, para que a jogabilidade não fique muito complexa.


Modo Singleplayer


O modo singleplayer será composto por diferentes fases, cada uma delas com seus objetivos e níveis de dificuldade distintos. Caso os objetivos sejam cumpridos, o jogador ganhará pontos.

Para facilitar a jogabilidade, ao redor da estrela serão desenhadas áreas coloridas que demarcarão faixas de pontuação, que serão calculadas de acordo com a distância em relação à estrela. Ao colocar um planeta dentro de determinada faixa, será calculada a distância do local até a estrela e atribuída uma pontuação pela jogada.

Vale notar que caso um planeta atinja outro que já esteja orbitando uma estrela, a pontuação poderá ser diminuída ou aumentada, dependendo de onde os planetas forem parar após a colisão.

No modo singleplayer será estabelecido também um tempo de “resfriamento” do sistema de lançamento de planetas, tempo este que o jogador deverá esperar antes de poder lançar outro planeta. Além disso, a fase terá um timer que determinará quanto tempo o jogador permanecerá nela.


Modo Multiplayer


Cada jogador ficará posicionado em uma extremidade da tela e as partidas serão divididas em turnos, de modo que cada jogador só poderá jogar na sua vez. Além de atirar planetas, poderemos disponibilizar outros recursos, na forma de armas, que servirão para atrapalhar os outros jogadores.

Algumas armas que consideramos são:

  • Lança-asteróides;
  • Explosão de supernova (dificultaria a vez dos outros jogadores por causa da claridade);
  • Criador de poeira cósmica (também dificultaria a vez dos outros jogadores, dessa vez por encobrir a visão com uma camada de poeira).

Além disso, um jogador poderá atirar um planeta seu para tirar planetas de outros jogadores de órbita, recebendo pontuações extras por isso.

O jogador que conseguir o maior número de pontos ao final de uma partida será o vencedor.

Observação: Estamos considerando disponibilizar também um sistema de ranking para os jogadores. Entretanto, ele só será disponibilizado caso consigamos cumprir com os outros objetivos no tempo previsto.


Tecnologias


Inicialmente, pensamos em utilizar as seguintes tecnologias para desenvolver nosso jogo:

  • GWT, pois desejamos que o jogo funcione na Internet (vamos checar a possibilidade de usar JSP);
  • App Engine, pois permite que rodemos gratuitamente (pelo menos inicialmente) nossa aplicação na infraestrutura do Google;
  • JBox2D para as simulações de física(link para download dos códigos fontes e visualização de uma demo: http://www.jbox2d.org/ );
  • Channel para realizarmos as transações de rede.

Gostaríamos de ressaltar que pode ser que mudemos de ideia com relação a essas tecnologias, pois a partir de agora teremos de avaliar a viabilidade do uso mais a fundo.

Bom, that's all folks.

Se tiverem sugestões, podem postá-las nos comentários que elas são bem-vindas.

Até a próxima postagem =)

sexta-feira, 18 de março de 2011

Bem-Vindo!

Olá pessoas!
Este blog foi feito com a intenção de postar notícias sobre as atividades desenvolvidas pelo grupo dos alunos:
Arthur Vezneyan Zotareli Rosa,
Gabriel Negrelli Garcia,
Gabriel Rodrigues Guaiato,
Heloisa Rosaria Bruno Carbone e
Ricardo Yukio Sakurai.


Aproveitem dos recursos e sintam-se à vontade para comentar os futuros posts.

Atenciosamente,
Arthur, Gabriel Negrelli, Gabriel Rodrigues, Heloisa e Ricardo. =)