Reuniões do Pirate Ship Battles [concluídas?]

Tópico destinado a tratar das reunões do Pirate Ship Battles. Mais informações neste tópico.

Participantes:

@gabesim
@Guilherme_Vieira
@mr.jahd
@JoaoG
@Makiyoshi
@Utaki

Reunião 1 - 16/03/2018

Linhas gerais do jogo:

  • Tema: Piratas dos séculos XVI a XVIII
  • Gráficos 2D
  • Massively Multiplayer Online (MMO)
  • Browser game
  • Bird’s eye view (vista de pássaro)

Aspectos desejáveis:

  • Foco em batalha naval
  • Leaderboard/rewards
  • Casual
  • Evolução do navio durante o gameplay
  • Power ups/skills/resources
    • Movimento da câmera
    • Ilhas (coleta de recursos)
    • Velocidade (jogar coisas fora para aumentar a velocidade)
  • Manter a tripulação satisfeita

Principais referências

Presentes:

@gabesim
@Guilherme_Vieira
@mr.jahd
@JoaoG
@Utaki

Reunião 2 - 23/03/2018

Programação:

  • O jogo será feito usando Phaser e Node.js
  • Podemos hostear o jogo no servidor da UGD

Gameplay:

  • O jogo será no estilo last man standing

Mapa:

  • Isométrico 2D, mas o cálculo de posições seria usando 3 dimensões
  • Fazer o mapa esférico (ou parecido com um toro) se der certo, se não, colocar tempestades para limitar o mapa
  • Rotas de vento pelo mapa, onde a velocidade do navio aumentaria se ele estiver seguindo a rota

UI:

  • Skill slots (cada um teria “n” slots que seriam preenchidos com habilidades obtidas ao longo do jogo)
  • Não mostrar a vida/recursos dos adversários
  • @gabesim fez alguns desenhos da UI

Possíveis habilidades:

  • Tiros de canhão (óbvio)
  • Barril de rum (seria jogado no outro navio, o que faria com que os controles ficassem invertidos)
  • Flechas de fogo

Recursos:

  • Dinheiro
  • Monstros
  • Pets (domar os monstros)
  • @Utaki fez alguns desenhos dos possíveis monstros

Referências adicionais:

  • Age of Empires II (navios e câmera)
  • World of Warships (vamos conversar um pouco mais na próxima reunião)

Presentes:

@gabesim
@JoaoG
@mr.jahd
@Utaki

1 Curtida

Está ficando interessante!

Algumas ideia que tive lendo sobre o que vocês postaram:

Sobre o mapa, talvez seria possível algum tipo de teleporte entre os cantos do mapa fosse ideal? ( não sei quão bom ou ruim isso ficaria no multiplayer ).

Quanto aos ataques, talvez alguma opção que a tripulação atira com armas de fogo contra a tripulação inimiga, matando ela no processo? Teria algum alcance bem baixo e poderia dificultar o controle do navio inimigo ( e abaixar o animo da tripulação restante ).

3 Curtidas

Outra ideia de ataque (e que eu curtia bastante na versão abandonada do projeto) é a possibilidade de fazer boarding: uma tripulação invadir outro navio para tentar subjulgá-lo. Fica de sugestão tb =D

4 Curtidas

MMO RPG na UGD, seria meu sonho?

2 Curtidas

Infelizmente não vai ser RPG, vai ser no estilo Last Man Standing hahahaha, tinha esquecido de colocar na ata

Reunião 3 - 06/04/2018

Programação:

  • Decidimos passar o tutorial que tinhamos de Phaser 2.8 para 3.3 (como a engine teve muita coisa refeita do zero da v2 para v3 e a v3 foi lançada em fevereiro, isso consumiu a reunião inteira, pois não foi tão fácil achar documentação ou exemplos de jogos feitos usando a versão 3.3 para nos basearmos)
  • Falamos um pouco sobre como será a implementação da isometria com cálculos em 3D

Arte:

  • Temos parte do modelo 3D do barco
  • Fizemos um esboço da title screen do jogo

Presentes:

@Guilherme_Vieira
@JoaoG
@mr.jahd
@Utaki

Reunião 4 - 13/04/2018

Questões Gerais

  • @Makiyoshi se juntou ao projeto.
  • Discutimos a conexão dos sockets entre cliente e servidor utilizando diagramas. Pode ser visualizado aqui.
  • Organizaremos as demandas do projeto utilizando as issues do Github.
  • Boa parte da base do jogo já está utilizando a versão 3 do Phaser.

Mínimo Produto Viável

Discutimos todas as ideias de gameplay sugeridas até então, e definimos quais são as mecânicas principais (mínimas) para que o jogo cumpra a proposta que idealizamos durante sua concepção.

  • Círculo da morte que se fecha: O jogo será no estilo “last man standing”. Para forçar os jogadores a se encontrarem e batalharem, haverá que um circulo que se fechará gradualmente culminando em um ponto do mapa. Inicialmente representará uma tempestade, no futuro pode ser uma barreira de monstros marinhos terríveis.

  • Mapa: O jogador poderá visualizar um mapa com sua posição, a posição do círculo da morte e as posições das ilhas.

  • Movimentação do navio: A qualidade da jogabilidade com o navio será fundamental para o sucesso do jogo. Queremos colher feedback o mais rápido possível quanto a isso.

  • Batalha com os canhões: A principal arma do jogo. Nesta versão será o único modo de aplicar dano nos navios inimigos. Os jogadores vão iniciar com um número limitado de balas, isso implica que será necessário procurar por munição.

  • “Vida” do navio: Essencial para a condição de vitória (ou derrota). Decidimos que o barco pode ser reparado enquanto não afundar.

  • Ilhas: Decidimos que nessa primeira versão haverão dois tipos de ilha:

    1. Reparação: Nesta ilha o jogador poderá parar e reparar o seu barco. O tempo de reparo deverá crescer conforme o estado geral do barco melhora. O jogador se colocar numa posição vulnerável para poder realizar o reparó. Ex: se o barco possui três “corações” para representar a vida, o primeiro deve encher mais rápido que o segundo, que por sua vez, encherá mais rápido que o terceiro.

    2. Munição: Caixas de munição estarão disponíveis para serem carregadas nos navios. O número de caixas numa ilha deverá ser aleatório e finito. Ex: se um outro jogador já esteve na ilha e pegou todas as caixas, você não terá mais caixas nessa ilha e terá que procurar em outro lugar.

Ideias para as próximas versões

Estas ideias/features acrescentam um nível a mais de complexidade para o jogo.

  • Tripulação: O jogador de alguma forma terá mais controle na formação de sua tripulação. Isto é, haverão especialistas dos seguintes tipos:

    1. Marinheiros: são os tripulantes que operam as velas do barco. A ideia é que quanto mais (e melhores), mais rápido o barco se torna e mais fluída se torna a sua jogabilidade.
    2. Construtores: estes são responsáveis por consertar o barco dos danos causados pelos inimigos. Quanto mais (e melhores) construtores, melhor a restauração do barco.
    3. Artilheiros: operam os canhões do barco. Primeiro, o jogador precisa encher cada slot (canhão) com um artilheiro. Segundo, mais artilheiros seriam interessantes pois esses poderiam auxiliar no carregamento dos conhões, resultando em um rating (taxa) de tiro mais alta. Os artilheiros também podem influenciar na distância e na precisão de seus disparos alcançam.
    4. Guerreiros: são os caras que vão segurar espadas e invadir o outro navio com objetivo de conquistá-lo, ou defender o seu navio de um ataque com espadas. O ato de invadir um navio, estamos chamando de boarding.

Uma das ideias é que cada pirata seja capaz de executar cada uma dessas 4 funções e que possamos alocar recursos onde seja necessitado. Porém, os piratas poderam ser bons em uma ou duas funções, médio em todos, ou muito bom em algo e péssimo nas outras coisas.

Os piratas que formaram sua tripulação podem ser encontrados como itens nas ilhas.
Ainda não pensamos em limites, mas uma ideia é que sejam tesouros (recursos) para pagar os piratas. Outra ideia é que quanto mais tripulantes (e/ou número de canhões) você tem, mais lento o barco fica.

Os jogadores precisaram de uma pitada de “sorte” ao fazer o loot das ilhas e escolher sabiamente a sua tripulação para definir uma estratégia de jogo.

Exemplos de estratégias:

  1. Barcos focados em “boarding”: uma tripulação com mais guerreiros e marinheiros.
  2. Barcos focados em batalhas a longa distância: uma tripulação com mais artilheiros e construtores.
  • Itens para os navios: Alguns itens distribuídos nas ilhas podem auxiliar a tripulação, além da munição.

    1. Canhões mais poderosos
    2. Escudos melhores
    3. Velas melhores
    4. Tesouros (para pagar os piratas)
    5. Recursos (para manter a tripulação viva), como comida e água. Uma das ideias são caixas de laranja, para manter a doença escorbuto longe de sua tripulação.

Presentes

@gabesim
@Guilherme_Vieira
@mr.jahd
@JoaoG
@Utaki

1 Curtida

Reunião 5 - 20/04/2018

Programação:

  • Fizemos a câmera seguir o jogador
  • Adicionamos colisões
  • Adicionamos aceleração, velocidade e resistência da água aos jogadores
  • Passamos toda a parte de cálculo das posições dos jogadores para o servidor
  • Fizemos um sistema de previsão de posição no cliente, para que os movimentos pareçam mais suaves

Arte:

  • Temos o modelo 3D da bala de canhão e do barril de rum
  • Temos um modelo 3D para os corações que irão indicar a vida do jogador

Presentes:

1 Curtida

Reunião 6 - 26/04/2018

Programação:

  • Gostaríamos de usar protocolo UDP ao invés do TCP para melhorar a latência. Porém não existe uma biblioteca pronta confiável em JavaScript para utilizar o protocolo UDP no jogo, portanto vamos utilizar TCP por enquanto. Se o jogo ficar ruim, vamos tentar mudar de protocolo.
  • Descobrimos o bug da colisão fantástica e concluímos que uma possível maneira para resolver isso é mudando a forma na qual calculamos as colisões.

Arte:

  • Modelos 3D para o barco e as ilhas estão sendo desenvolvidos em Blender

Presentes:

@gabesim
@Guilherme_Vieira
@mr.jahd
@JoaoG
@Makiyoshi
@Utaki

Reunião 7 - 11/04/2018

Programação:

  • Achamos uma biblioteca para fazer a colisão no servidor chamada SAT.js.

Arte:

  • Fizemos um modelo de barco bem legal.
  • Fizemos uma ilha bem legal

Presentes:

@Guilherme_Vieira
@mr.jahd
@JoaoG
@Makiyoshi
@Utaki

Reunião 8 - 18/05/2018

Programação:

  • Passamos as colisões para o servidor usando o SAT.js
  • Adicionamos balas de canhão

Arte:

  • Melhoramos o modelo do barco e adicionamos canhões
  • Melhoramos a ilha

Presentes:

Reunião 9 - 25/05/2018

Gameplay:

  • As balas destroem outros barcos e têm um tempo de vida
  • Os navios têm limite de tiros
  • Os nomes dos jogadores inimigos aparecem em cima deles

Programação:

  • Separamos os sinais da tela de login e do jogo em “rooms” do socket io, para que jogadores de uma sala não recebam sinais da outra
  • Modularizamos o código do servidor, depois de descobrirmos que podemos usar a função require do javascript para isso

Efeitos sonoros:

  • Fizemos 3 sons para tiro de canhão
  • Fizemos um som de bala caindo na água
  • Fizemos um som de martelo, para quando o barco está sendo reparado

Presentes:

Reunião 10 - 08/06/2018

  • Utilizamos a reunião para discutir algumas datas importantes e alguns aspectos do jogo

Presentes

Reunião 11 - 15/06/2018

Gameplay

  • Navios têm 3 vidas
  • Navios podem disparar múltiplos tiros de uma vez
  • A vida e a quantidade de balas são mostradas na tela em uma HUD básica

Arte

  • Tiramos prints dos modelos 3D, agora temos sprites para o barco, para o tiro e para os caixotes
  • Temos uma animação para o oceano

Presentes

Eu criei um Doodle para decidir os horários das reuniões do projeto nesse segundo semestre de 2018. Vou fechar a enquete no próximo sábado e já na semana do dia 12 podemos ter a primeira reunião! :smiley:

Todo mundo está convidado a participar! Caso não conheça o jogo, pode clicar aqui para jogar.

1 Curtida