quinta-feira, 12 de junho de 2008
Implementação correndo solta!!
Ufs! Passei vários dias sem escrever, por causa de uma tonelada de provas e trabalhos para entregar. Mas nosso grupo continua bem ativo! Após montar o servidor SVN no meu computador, fiz a arquitetura do projeto e já estamos implementando faz umas 2 semanas, infelizmente de maneira um pouco esparsa (por causa dos tais projetos de outras disciplinas que tínhamos de entregar). Mas agora vão vir pelo menos para mim alguns dias mais tranquilos, então espero adiantar bem. Até agora já colocamos alguns menus e o cursos do jogo se movimentando pelas opções, e conseguimos tocar um .mp3. Para tocar MIDI a Érika teve a idéia de usar uma biblioteca do Java, vamos ver se funciona! Porque o Android aparentemente não suporta MIDI mesmo...tentei, tentei, e não consegui.
quarta-feira, 21 de maio de 2008
SVN do projeto
Montei um servidor SVN em casa, usando o servidor VisualSVN e o servidor de DNS dinâmico No-IP. Também fiz a arquitetura de classes do jogo, e pesquisei como fazer algumas coisas, por exemplo, por sons.
O pessoal vai revisar a arquitetura e postarei no blog do grupo assim que a arquitetura revisada estiver disponível.
Depois disso, começaremos a implementar.
O pessoal vai revisar a arquitetura e postarei no blog do grupo assim que a arquitetura revisada estiver disponível.
Depois disso, começaremos a implementar.
quinta-feira, 8 de maio de 2008
Band Hero Classics
Hoje na aula, conversando sobre as restrições do projeto no que se refere à quantidade limitada de instrumentos que o jogador poderá escolher, decidimos que focaremos nosso projeto em música clássica, com instrumentos como piano, violino, violoncelo, trompete e algum tipo de instrumento de sopro. Assim fechamos um pouco mais o escopo. Estou pensando em como faremos esse leitor de MIDIs...
sábado, 12 de abril de 2008
Estudo sobre Dance Dance Revolution
Como combinado, pesquisei sobre o gameplay e interface do jogo Dance Dance Revolution, bem como os motivos pelos quais ele é tão atraente para jogadores do munto inteiro. Encontrei um verdadeiro estudo sobre o assunto no site da ACM, em: http://portal.acm.org/citation.cfm?doid=1129006.1129019
Para quem não estiver no IC, basta acessar por SSH e usar wget para baixar o .pdf
São 30 páginas, mas vou colocar um exemplo da descrição da interface do jogo:
2. DANCE DANCE REVOLUTION: INTERFACE AND INTERACTION
The idea behind Dance Dance Revolution is fairly simple: it combines upbeat music,
stepping in rhythm, and physical exercise. The DDR set-up consists of a game pad or
platform with four arrows (up, right, down, and left), a screen, and loudspeakers as
shown in Figure 1 (left). The arcade machines have two pads side by side to allow twoplayer
gaming as well as a single player using two pads – a mode called double. A home
set-up, on the other hand, usually makes use of one or two pads attached to a gaming
console. The arcade machines also have a bar behind the player that can be used to ease
game-play.
There are four stationary arrows at the top of the screen, as well as arrows that scroll
upwards from the bottom of the screen and pass over the stationary arrows (Figure 1,
right). The aim of the game is to step on the corresponding arrow on the dance pad when
a scrolling arrow overlaps the stationary arrow. The more precise the timing, the better
the rating for that step. The ratings from best to worst are: perfect, great, good, boo, and
miss. However, the scale differs slightly among the different versions of the game. At the
end of the song, the player is given a final score based on the number of correct steps and
the timing accuracy of the steps. A performance of over 90% perfects will give a score of
“AA”. If every single step has the perfect rating, the final score is “AAA,” which is the
ultimate goal for most players.
Each DDR version contains a selection of songs that often feature a heavy beat. The
tempo of the songs ranges from slow to fast, and a song may even include changes in
tempo. Arrows fall on the beat of the song (1/4 notes) or exactly in between (1/8, 1/16,
and 1/32 notes). As the game is based on the precise timing of steps, it requires a good
sense of rhythm, as well as the ability to coordinate the movements of one’s body in
anticipation of rhythmic repetition and alteration.
Each game is based on a predetermined set of steps (Figure 1, right), i.e., the arrows
scroll at a set rate depending on the beat of the song and the level of difficulty determined
by the step pattern of a song, with a rating ranging from 1 to 10 feet. The lowest, 1-3 foot
patterns are meant for beginners, whereas the 9-10 footers require excellent physical
endurance, coordination of movement, and sense of rhythm as the step patterns become
more elaborate and faster.
The game set-up also consists of different modifiers that affect either the visibility of
the arrows (e.g., all arrows appear in the same color regardless of the beat); the direction
of the arrows’ movement (e.g., arrows scroll from top to bottom); or the orientation of the
arrows (e.g., arrows are rotated 180 degrees). Speed modifiers can be used to make sightreading
easier by speeding up or slowing down the arrows to n-times their normal speed.
Beginners usually stand in the middle of the pad and only use one foot at a time to
press the arrows, or return their feet to the middle of the pad after each step. However,
there is no penalty for pressing an arrow unnecessarily, which enables fluent movement
across the pad. Skillful players employ special techniques such as (to name a few):
crossovers (to hit the left-down-right arrow combination, the player does the steps left
right-left while simultaneously turning to the right); hand plants (player uses his hand to
hit a panel); and jumps (player jumps and presses two arrows simultaneously).
There are two main forms of playing DDR: (1) attacking, which aims for a perfect
timing of steps, i.e., highest scores or number of Perfects; and (2) freestyling/improvising,
where the aim of the player is to dance as expressively as possible, i.e., perform using a
personal style. Freestyling is based on a routine to perform during a song, while
improvising is based on making up a routine on the spot without prior practice.
Tournaments are held world-wide, and usually include a competition series for “Perfect
Attackers” (PA). Freestyling tournaments are less common. In addition to playing with
feet, many DDR players do so by tapping keyboard keys with their fingers.
Outras parte legal do artigo para ser lida é a que fala sobre os motivos iniciais e depois do primeiro contato com o jogo, que os jogadores têm para jogar.

Para quem não estiver no IC, basta acessar por SSH e usar wget para baixar o .pdf
São 30 páginas, mas vou colocar um exemplo da descrição da interface do jogo:
2. DANCE DANCE REVOLUTION: INTERFACE AND INTERACTION
The idea behind Dance Dance Revolution is fairly simple: it combines upbeat music,
stepping in rhythm, and physical exercise. The DDR set-up consists of a game pad or
platform with four arrows (up, right, down, and left), a screen, and loudspeakers as
shown in Figure 1 (left). The arcade machines have two pads side by side to allow twoplayer
gaming as well as a single player using two pads – a mode called double. A home
set-up, on the other hand, usually makes use of one or two pads attached to a gaming
console. The arcade machines also have a bar behind the player that can be used to ease
game-play.
There are four stationary arrows at the top of the screen, as well as arrows that scroll
upwards from the bottom of the screen and pass over the stationary arrows (Figure 1,
right). The aim of the game is to step on the corresponding arrow on the dance pad when
a scrolling arrow overlaps the stationary arrow. The more precise the timing, the better
the rating for that step. The ratings from best to worst are: perfect, great, good, boo, and
miss. However, the scale differs slightly among the different versions of the game. At the
end of the song, the player is given a final score based on the number of correct steps and
the timing accuracy of the steps. A performance of over 90% perfects will give a score of
“AA”. If every single step has the perfect rating, the final score is “AAA,” which is the
ultimate goal for most players.
Each DDR version contains a selection of songs that often feature a heavy beat. The
tempo of the songs ranges from slow to fast, and a song may even include changes in
tempo. Arrows fall on the beat of the song (1/4 notes) or exactly in between (1/8, 1/16,
and 1/32 notes). As the game is based on the precise timing of steps, it requires a good
sense of rhythm, as well as the ability to coordinate the movements of one’s body in
anticipation of rhythmic repetition and alteration.
Each game is based on a predetermined set of steps (Figure 1, right), i.e., the arrows
scroll at a set rate depending on the beat of the song and the level of difficulty determined
by the step pattern of a song, with a rating ranging from 1 to 10 feet. The lowest, 1-3 foot
patterns are meant for beginners, whereas the 9-10 footers require excellent physical
endurance, coordination of movement, and sense of rhythm as the step patterns become
more elaborate and faster.
The game set-up also consists of different modifiers that affect either the visibility of
the arrows (e.g., all arrows appear in the same color regardless of the beat); the direction
of the arrows’ movement (e.g., arrows scroll from top to bottom); or the orientation of the
arrows (e.g., arrows are rotated 180 degrees). Speed modifiers can be used to make sightreading
easier by speeding up or slowing down the arrows to n-times their normal speed.
Beginners usually stand in the middle of the pad and only use one foot at a time to
press the arrows, or return their feet to the middle of the pad after each step. However,
there is no penalty for pressing an arrow unnecessarily, which enables fluent movement
across the pad. Skillful players employ special techniques such as (to name a few):
crossovers (to hit the left-down-right arrow combination, the player does the steps left
right-left while simultaneously turning to the right); hand plants (player uses his hand to
hit a panel); and jumps (player jumps and presses two arrows simultaneously).
There are two main forms of playing DDR: (1) attacking, which aims for a perfect
timing of steps, i.e., highest scores or number of Perfects; and (2) freestyling/improvising,
where the aim of the player is to dance as expressively as possible, i.e., perform using a
personal style. Freestyling is based on a routine to perform during a song, while
improvising is based on making up a routine on the spot without prior practice.
Tournaments are held world-wide, and usually include a competition series for “Perfect
Attackers” (PA). Freestyling tournaments are less common. In addition to playing with
feet, many DDR players do so by tapping keyboard keys with their fingers.
Outras parte legal do artigo para ser lida é a que fala sobre os motivos iniciais e depois do primeiro contato com o jogo, que os jogadores têm para jogar.

quinta-feira, 3 de abril de 2008
A busca pela essência (uhu! título filosófico esse)
O professor, no comentário que ele fez no meu post anterior, disse que analisar a concorrência é uma boa estratégia. A intenção do projeto, no caso, é analisar justamente porque esses jogos como Guitar Hero e DDR são tão imersivos, e se, e porque, as pessoas realmente aprendem rápido a jogá-los. Um aspecto óbvio é o uso da guitarra ou do corpo para jogar (no caso do DDR) e as músicas boas. Mas o que será, dessa experiência imersiva toda, que poderemos transportar para uma telinha de celular? Espero que consigamos perceber qual é a essência que esses jogos oferecem e que agrada tanto aos jogadores, e, se for algo muito difícil de ser colocado num dispositivo móvel com nossos recursos atuais, teremos de pensar em como adaptar essa essência para ao menos parte dela ser transferida para nosso jogo.
Bom, semana que vem volto com resultados...
Bom, semana que vem volto com resultados...
Novas tarefas - para terça que vem [8/4]
Pessoal! Seguem as novas tarefas.
OBSERVAÇÃO: Se alguém não entender algo, não estiver de acordo com os prazos, tiver idéia de outras coisas que poderiam ser feitas para tocar o projeto para frente, ou está sobrecarregado (se bem que isso todos estamos) e não puder fazer algo, favor avisar por Gtalk ou e-mail!!!
[Panda] - Pesquisar do jogos o seguinte:
* Fluxo de ações que o usuário faz durante o jogo, em relação à interface.
* Pontos da interface que os usuários consideram intuitivas, ou não-intuitivas, e porquê.
* Figuras demonstrativas das interfaces do jogo, explicando o que é o quê.
[Carol] - Fazer o mesmo que o Panda, mas para o jogo Dance Dance Revolution (assim teremos 2 exemplos de como pensar na interface do nosso jogo).
[Erika] - Pesquisar algum jogo para celular/iPhone/outro dispositivo móvel que lembre o Guitar Hero/DDR, ou que seja considerado muito simples de jogar mesmo sendo graficamente elaborado, e fazer a mesma coisa que a Carol e o Panda.
[Danilo] - Fazer o teste sobre os botões do Android, em código.
Com essas tarefas feitas, creio que teremos mais condições de terminar a parte mais específica às características/requisitos do jogo no documento de visão.
OBSERVAÇÃO: Se alguém não entender algo, não estiver de acordo com os prazos, tiver idéia de outras coisas que poderiam ser feitas para tocar o projeto para frente, ou está sobrecarregado (se bem que isso todos estamos) e não puder fazer algo, favor avisar por Gtalk ou e-mail!!!
[Panda] - Pesquisar do jogos o seguinte:
* Fluxo de ações que o usuário faz durante o jogo, em relação à interface.
* Pontos da interface que os usuários consideram intuitivas, ou não-intuitivas, e porquê.
* Figuras demonstrativas das interfaces do jogo, explicando o que é o quê.
[Carol] - Fazer o mesmo que o Panda, mas para o jogo Dance Dance Revolution (assim teremos 2 exemplos de como pensar na interface do nosso jogo).
[Erika] - Pesquisar algum jogo para celular/iPhone/outro dispositivo móvel que lembre o Guitar Hero/DDR, ou que seja considerado muito simples de jogar mesmo sendo graficamente elaborado, e fazer a mesma coisa que a Carol e o Panda.
[Danilo] - Fazer o teste sobre os botões do Android, em código.
Com essas tarefas feitas, creio que teremos mais condições de terminar a parte mais específica às características/requisitos do jogo no documento de visão.
terça-feira, 1 de abril de 2008
Documento de visão quase completo
Segundo a maneira como dividi os trabalhos, eu e a Erika ficamos responsáveis pelo documento de visão. O Danilo ficou de verificar se os botões do Android podem ser pressionados simultaneamente, ou se há um modo de simular isso, e o Panda ficou de pesquisar sobre os formatos MP3 e MIDI, afinal temos de escolher a maneira mais fácil de fazer a parte musical do jogo.
O documento de visão agora já está quase completo, faltando apenas 3 tópicos, que são bastante específicos a como faremos o projeto, e por isso creio que exigem maior discussão do grupo. De resto, acho que ficou legal. Usei alguns conhecimentos que tenho adquirido trabalhando na empresa Tec Toy Digital, que justamente faz muitos jogos para celular, além de uma análise de mercado sobre consoles em geral que fiz numa disciplina de empreendedorismo, no semestre passado.
O Danilo ainda não fez a verificação dos botões do Android exatamente da maneira que eu havia pedido, ou seja, codificando um exemplo teste, mas já leu a documentação correspondente.
Do Panda ainda não sei, mas hoje devemos resolver essas pendências.
O documento de visão agora já está quase completo, faltando apenas 3 tópicos, que são bastante específicos a como faremos o projeto, e por isso creio que exigem maior discussão do grupo. De resto, acho que ficou legal. Usei alguns conhecimentos que tenho adquirido trabalhando na empresa Tec Toy Digital, que justamente faz muitos jogos para celular, além de uma análise de mercado sobre consoles em geral que fiz numa disciplina de empreendedorismo, no semestre passado.
O Danilo ainda não fez a verificação dos botões do Android exatamente da maneira que eu havia pedido, ou seja, codificando um exemplo teste, mas já leu a documentação correspondente.
Do Panda ainda não sei, mas hoje devemos resolver essas pendências.
sexta-feira, 28 de março de 2008
Início do projeto!
Após uma infinidade de discussões, eu, Erika, Danilo e Panda decidimos por fazer um jogo a la Guitar Hero ou Dance Dance Revolution, ou seja, um jogo em que pressionando uma sequência de botões no celular no ritmo (ou fora do ritmo) de uma certa música, o jogador ganha/perde pontos. A idéia ainda está bem crua, pois obviamente não contamos co os recursos visuais e muito menos com os acessórios fundamentais para o gameplay envolvente de um jogo como Guitar Hero (a guitarra por exemplo). No entanto, caso o Android não seja limitador demais, a idéia parece bem factível de ser realizada.
Como a Erika já teve, no semestre passado em Engenharia de Software, a experiência de ser gerente do nosso grupo (que na época contava também com o Lucas e com o Sto. André), eu que serei dessa vez. Ou seja, ficarei responsável de organizar o pessoal para que o projeto efetivamente saia do papel.
A partir de hoje postarei no blog do projeto as coisas relevantes sobre ele (por exemplo, o documento de visão, que se tudo der certo faremos esse final de semana), e aqui as minhas percepções pessoais sobre o projeto em si.
Como a Erika já teve, no semestre passado em Engenharia de Software, a experiência de ser gerente do nosso grupo (que na época contava também com o Lucas e com o Sto. André), eu que serei dessa vez. Ou seja, ficarei responsável de organizar o pessoal para que o projeto efetivamente saia do papel.
A partir de hoje postarei no blog do projeto as coisas relevantes sobre ele (por exemplo, o documento de visão, que se tudo der certo faremos esse final de semana), e aqui as minhas percepções pessoais sobre o projeto em si.
sábado, 15 de março de 2008
Android testado
Testei o HelloAndroid e funcionou. Agora, tem uma coisa de que não gostei: fazer uma interface usando XML é o tipo de coisa que ninguém merece. XML, creio, é muito bom como um recurso intermediário: ou seja, um aplicativo oferece os modelos como botões, caixas de texto etc para o designer modelar a interface, transforma em XML e aí sim a API usada pelo programador deve ler esse XML para criar a interface automaticamente. Essa sim é uma boa alternativa a fazer interfaces programaticamente. Mas nossa, do jeito que o Android supõe que a coisa vai ser feita fica bem ruim. Escrever XML na mão é bem chato. Próximo passo: testar algum editor visual de interface para o Android!!!
Aprendendo a mexer no Android
Há 2 semanas atrás, assim que as aulas começaram, eu instalei o Android no Eclipse e tentei compilar um dos samples, chamado HelloActivity. Como não estou muito habituada ao Eclipse (na verdade prefiro o Visual Studio e C#, o que frequentemente gera brincadeiras entre eu e a Erika, porque ela adora Java), devo ter feito besteira, porque dava um erro bem esquisito. O pessoal recomendou que eu fizesse o tutorial do Hello World do próprio site do Android, ao invés de ficar mexendo nos samples...então é o que farei. Amanhã escrevo no que deu.
Fora isso...li a parte sobre reengenharia de práticas de trabalho no site, e também aquele texto de 28 páginas sobre arquitetura de informação. Classificação e disposição de informações é realmente uma coisa complicada quando se está pensando apenas como desenvolvedor; por outro lado, um tanto de bom senso e preocupação com o público alvo parece resolver a maior parte dos problemas. É preciso se colocar no lugar do usuário, ou de preferência usar, como o texto aconselha, potenciais usuários para testar o produto. O bom senso, de qualquer jeito, deve entrar na equação: afinal não é preciso pensar muito para perceber que um site com visual limpo, contendo apenas as informações realmente essenciais, é melhor do que colocar um monte de coisas na tela.
Mudando de assunto: atualmente estou fazendo um jogo chamado Gariman, com o qual eu e uma equipe estamos participando de uma competição mundial, a Imagine Cup. É engraçado perceber como os 3 programadores do jogo, incluindo eu, pensam na interface de uma maneira muito mais estrutural, do tipo: isso vai aqui, essa outra coisa vai ali. Mas o único artista do grupo, um cara do IA, é quem realmente dá a cara para a interface, e a torna algo agradável. Essa parte do visual, definitivamente, não deve ser subestimada.
Fora isso...li a parte sobre reengenharia de práticas de trabalho no site, e também aquele texto de 28 páginas sobre arquitetura de informação. Classificação e disposição de informações é realmente uma coisa complicada quando se está pensando apenas como desenvolvedor; por outro lado, um tanto de bom senso e preocupação com o público alvo parece resolver a maior parte dos problemas. É preciso se colocar no lugar do usuário, ou de preferência usar, como o texto aconselha, potenciais usuários para testar o produto. O bom senso, de qualquer jeito, deve entrar na equação: afinal não é preciso pensar muito para perceber que um site com visual limpo, contendo apenas as informações realmente essenciais, é melhor do que colocar um monte de coisas na tela.
Mudando de assunto: atualmente estou fazendo um jogo chamado Gariman, com o qual eu e uma equipe estamos participando de uma competição mundial, a Imagine Cup. É engraçado perceber como os 3 programadores do jogo, incluindo eu, pensam na interface de uma maneira muito mais estrutural, do tipo: isso vai aqui, essa outra coisa vai ali. Mas o único artista do grupo, um cara do IA, é quem realmente dá a cara para a interface, e a torna algo agradável. Essa parte do visual, definitivamente, não deve ser subestimada.
quarta-feira, 12 de março de 2008
Início das postagens!
Finalmente criei meu blog. Aqui vou postar comentários sobre o que aprendi na disciplina, bem como tudo sobre o andamento do projeto de construção de um aplicativo de interface amigável usando o Android, nova API da Google para dispositivos móveis. Meug grupo é a Erika, o Danilo e o Panda (menos conhecido como Rodrigo). Queremos fazer um jogo que seja muito fácil de aprender. Inicialmente minha idéia foi um pouco "avançada" demais, pois queria fazer um jogo que gerasse um labirinto aleatório pelo qual uma bolinha teria de passar. Mas a grande diversão seria se o dispositivo móvel possuísse um acelerômetro, de forma que ao incliná-lo para um lado ou para o outro, o labirinto "pendesse" para os lados e a bolinha pudesse andar. O problema seria testar o funcionamento de um jogo desses. Agora o pessoal do grupo está com uma idéia de fazer um jogo parecido com o Worms, mas sinceramente não gostei muito, e a idéia da bolinha ainda me parece melhor, pela sua simplicidade de idéia mas não de programação. E seria um ótimo desafio fazer um gerador de labirintos!
Assinar:
Comentários (Atom)