Subscribe:

About

sexta-feira, 15 de fevereiro de 2013

Conclusões da reunião de 14/02

Como mencionado no post anterior, tomamos a iniciativa de realizar uma reunião inicial para termos uma ideia do que fazer, mesmo que as equipes ainda não estejam completas e um reordenamento das turmas possa alterar a situação. Seguem as sugestões e comentários feitos pelos membros.


Shadow Struggles - Novas features e upgrades


De modo geral, podemos considerar que o ano passado foi dedicado a desenvolver a mecânica do jogo, ou seja, o núcleo do sistema. Com ele basicamente terminado, propomos agora montar um produto final completo na forma de um RPG (role-playing game), além de completar os requisitos previamente determinados (loja de itens e edição de baralho, mais notadamente). Sobre isso, os seguintes pontos foram levantados:

  • A campanha agora se dá na modalidade de um RPG 2D, com o jogador se locomovendo por vários cenários, explorando locais e enfrentando inimigos pelo caminho;
    • Uma das ideias sugere que o jogador precise derrotar uma quantidade de inimigos para avançar em cada capítulo, enquanto outra propõe uma exploração em um mundo mais aberto, com o jogador livre para derrotar inimigos, fazer missões secundárias etc.;
    • Ao derrotar oponentes, o jogador adquire uma quantidade de experiência variável. Ao obter experiência o suficiente, ele sobe de nível;
    • Cada vez que o jogador subir de nível, ele tem a opção de distribuir pontos para melhorar um ou mais atributos, como limite de energia, recuperação de energia, vitalidade da base etc.;
    • Atribuir pontos a cada carta, de modo que o número máximo de cartas no baralho seja determinado pela quantidade total de pontos permitida. O número de pontos pode ser aumentado conforme o jogador avança de nível.
  • Devido ao crescente aumento de qualidade técnica em jogos indie (independentes), decidimos fazer uma reformulação gráfica na interface dos menus, através da biblioteca TWL, mapas e demais ilustrações;
  • Deixar as informações, como cartas, perfil do jogador, cenas e textos dos menus, em arquivos encriptados, ao menos nas versões distribuídas ao público.

Shadow Struggles - Código


Quanto ao código existente, decidimos:

  • Atualizar as bibliotecas do libgdx;
  • Organizar melhor o código, devido ao fato de ele ter se tornado difícil de manter;
  • Abranger a maior parte do código com testes unitários usando primariamente JUnit (e ocasionalmente Android JUnit, para questões específicas ao Android);
    • Adotar os princípios de TDD, test-driven development, a fim de auxiliar na refatoração do código e melhorar a qualidade do design de modo geral.
  • Como sistemas de logging, adotar o Java Logging para desktop e Logcat para Android, oferecendo um tratamento de erros adequado;
  • Utilizar o Eclipse Modeling Framework para deixar a documentação mais sincronizada com o código, uma vez que permite transformar diagramas em classes Java e classes em diagramas. Adicionalmente, facilita tomadas de decisões quanto à arquitetura do software;

Shadow Struggles - Processo de desenvolvimento


Os membros da equipe manifestaram não ter muito conhecimento sobre metodologias de desenvolvimento, então propus Scrum como um ponto de partida e recomendei a leitura de alguns materiais que estão no final deste post para que possam avaliar por conta própria.

Quanto às responsabilidades principais ao longo do projeto (que não são, a priori, de nenhum membro em particular, e é encorajado que os membros assumam a função que achar mais importante em cada sprint) são:

  • Design de interface;
  • Ilustrações (ícones, concepts, artes de divulgação etc.);
  • Mapas/cenários;
  • Sprites de personagens e cartas;
  • Programação (incluindo testes unitários);
    • Alto nível (jogabilidade, design);
    • Lógica;
    • Manipulação de dados/recursos (incluindo otimizações de performance).
  • Game design;
  • Documentação (incluindo manuais);
  • Roteiro;
  • Localização/tradução (português);
  • Testes de jogabilidade;
  • Música e efeitos sonoros.



Shadow Struggles Online - Features


Assim como a continuação do projeto Shadow Struggles, Shadow Struggles Online tem a proposta de conceber um produto final com base na mecânica e recursos desenvolvidos anteriorment. Trata-se de um jogo online, preferivelmente utilizando a plataforma do Facebook. As especificações sugeridas até o momento, mas que podem ser alteradas no futuro devido ao fato de que a equipe teoricamente não está completa, são:

  • Importará dados do jogador do Shadow Struggles, permitindo que ele retenha seu nível, cartas etc.;
  • O principal atrativo será a modalidade competitiva multiplayer, na qual um jogador poderá enfrentar outro em uma batalha aos moldes de Shadow Struggles;
  • Terá um sistema de conquistas/achievements para ações específicas do jogador, como derrotar um determinado número de outros jogadores;
  • Terá um sistema de trocas de presentes, possibilitando a colaboração mútua entre dois jogadores;
  • As partidas serão decididas por um algoritmo de matchmaking, que tentará equilibrar as batalhas colocando lutadores de níveis semelhantes em confronto. Isso evita problemas de jogadores novatos serem constantemente derrotados por jogadores experientes;
  • Uma possibilidade é fornecer a cada jogador uma base, que poderá ser decorada com itens como livros, robôs e enfeites diversos. Esses itens serão adquiridos através de pontos, que deverão ser conquistados em missões espalhadas por um mapa. Por sua vez, as missões serão liberadas somente quando a base atender certas especificações (um tamanho mínimo, número mínimo de itens, itens específicos etc.). Essa ideia ainda será analisada em detalhes;
  • Terá um sistema de jogo colaborativo através de clãs.
    • Clãs serão associações que reunirão vários jogadores;
    • Indivíduos conquistarão pontos para o seu clã através de batalhas e, pela acumulação de pontos, todos os membros do clã serão recompensados com dinheiro e itens;
    • Haverá eventos de guerras entre clãs, nas quais cada clã selecionará membros para lutarem entre si (partidas decididas via sorteio), com grandes recompensas aos vencedores.
      • Para favorecer a mobilidade, haverá uma restrição em relação à frequência com que cada membro poderá participar das guerras.

Shadow Struggles Online - Considerações técnicas


Durante minhas tentativas de implementar um app no Facebook do modo que desejamos fazer, enfrentei algumas dificuldades que podem inviabilizar o projeto. Por enquanto, a equipe vai tentar continuar de onde parei, até chegar ao ponto em que seja possível construir uma aplicação com libgdx, convertê-la a uma aplicação GWT, utilizar a arquitetura do Node.js (via gwt-node) e incorporá-la ao Facebook via Heroku. Caso isso não dê certo, temos algumas alternativas:

  • Converter a aplicação libgdx para GWT e, ao invés de tentar utilizar Node.js para lançá-la no Facebook, hospedá-la através da Google App Engine e construir uma infraestrutura própria para interações entre jogadores ao invés de utilizar os serviços do Facebook.
  • Criar um jogo para Facebook do zero, reaproveitando somente os recursos e dados do Shadow Struggles.

Shadow Struggles Online - Organização


A equipe ainda não optou por uma metodologia de desenvolvimento. As principais funcionalidades dentro do projeto são:

  • Design de interface;
  • Programação (incluindo testes unitários);
    • Alto nível (jogabilidade, design);
    • Lógica das mecânicas de multiplayer (por exemplo, o algoritmo de matchmaking);
    • Infraestrutura (lógica do servidor, transmissão de pacotes via rede e banco de dados);
    • Comunicação com a API do Facebook (se aplicável).
  • Game design;
  • Documentação (incluindo manuais);
  • Testes de jogabilidade.



Colaboração entre as equipes


Além da mecânica do jogo, que será a mesma, ambas as equipes poderão reaproveitar os recursos desenvolvidos para o Shadow Struggles no ano passado, bem como quaisquer novos recursos desenvolvidos neste ano (embora alguns se tornem exclusivos para cada jogo). São eles:

  • Cartas (gráficos e lógica de ação);
  • Mapas/cenários;
  • Ilustrações.



Links de referência


Essential Skills for Agile Development
Scrum Reference Card
Test-driven Game Development (Part 1)
Test-driven Game Development (Part 2)
Test-driven Game Development (Part 3)
The Scrum Primer

0 comentários:

Postar um comentário