BoomScience Project/DevLog

From USPGameDev Wiki
Jump to navigation Jump to search

Aqui fica o histórico de atas e decisões tomadas sobre o projeto BoomScience.

22/6/2017

Puzzle das alavancas

4 alavancas: A, B, C, D

5 portas

alavanca A = flipa o estado das portas 1, 2, 4, 5

alavanca B = flipa o estado das portas 1, 5

alavanca C = flipa o estado das portas 2, 3, 4

alavanca D = flipa o estado das portas 1, 3

Estado inicial das portas: A A A A F

A - aberta, F - fechada

Solução do puzzle: alavancas A, C e D, em qualquer ordem

22/5/2017

Level Design do Esgoto

      A
      ⇅
1  →  2  ⇆ 2.5 → 3  →  4  →  5
⇅           ↓
dica   ⇆    B

22/5/2017

Level Design do Esgoto

Tempo total: 10 ~ 15 min

80% puzzle, 20% boss

  1. Queda no esgoto (entrance)
  2. Puzzle: nível de água -> branch A (2.5 -> branch B) (water-puzzle)
  3. Puzzle: alavancas que abrem/fecham determinadas portas (lever-puzzle)
  4. Puzzle: água + alavancas (final-puzzle)
  5. Boss
  6. Saída
  • branch A: dorgas que aumentam a vida máxima
  • branch B: boost de dano/alcance da bomba básica
  • Sistema de galerias com conexões intercaladas (os puzzles ficam nas conexões, os inimigos ficam nas galerias)
  • A saída do esgoto vai ser uma galeria com água que dá acesso a uma doca do laboratório. Vai ter uma válvula que escoa a água e revela uma grade de metal. O protagonista explode a grade usando a bomba básica, e sobe por uma escada até a doca.

8/5/2017

Gráfico Valor x Risco

  1. Stair jump
  2. Level design do esgoto
  3. Player detection
  4. Smoke bomb
  5. Game state switching
  6. Main menu
  7. Save files
  8. Save points
  9. Flags

30/3/2017

Árvore da cena durante o gameplay

  • Root
    1. global
    2. Main
      1. GUI/HUD
      2. Stage (Floor)
        1. Player*
        2. StreamPlayer
        3. Enemies
        4. Interactive Objects (key, door)
        5. Layers (stairs, breakables)

Observações:

  1. SamplePlayer será filho de quem emite o som.
  2. Player* é inserido quando o stage é carregado.
  3. Menu/Game Over entra no lugar da Main.

27/3/2017

Gráfico Valor x Risco

  1. Inimigo
  2. Estrutura da árvore da cena
  3. NPCs
  4. HUD (HP)
  5. Readme
  6. HUD (mini-inventário)
  7. Gamestate (Menu, Win/Lose)
  8. Bomba de Fumaça

29/8/2016

Trilha Sonora

  • Música
    • Fase do esgoto
    • Fase aquática
    • Menu
    • Game Over
  • Efeitos Sonoros
    • Arremesso da bomba
    • Button Toggle
    • Dano no personagem
    • Dano nos inimigos

Outros

Script interessante para simular física na classe Body.

17/8/2016

Readme

  • Descrição do projeto
  • Dependências
  • Install/Run

Cenas

  • Estrutura
  • Trocar níveis
  • Trocar entre gamestates
  • HUD
  • Player
    • Walk
    • Run
    • Shoot + Bomb
    • Jump
  • NPCs

Resources

  • Mapa
  • Tileset

Concept Art

  • Cenário
  • Protagonista
  • Mood Board + palavras-chave (OST)

Gráfico Valor x Risco

  1. Mapa, Player
  2. HUD
  3. Readme, Trocar entre gamestates

15/8/2016

  1. Escrever o readme
  2. Criar cenas básicas, tendo em mente um simples demo
    1. Cena Main (nó gerenciador de cenas)
    2. Dois levels conectados
      1. Sistema de "Salas"
      2. Esgoto + Bioma marítmo
      3. Tilesets
        1. Pixações
        2. Canos, goteiras, lixo, signs, objetos brilhantes
    3. Protag
      1. Bombas
    4. Animal-people (enemies and not enemies, NPCs in general)
      1. Rats
      2. Something else that is not a rat

10/8/2016

  • Convenção
  • Física
    • NÃO USE RigidBody2D
    • Caso precisemos de propriedades do RigidBody2D, implementar por código usando KinematicBody2D
  • Tamanho de Tela
    • 4:3
      • Em monitores 16:9, adicionar pixels nas laterais
    • Resolução
      • 480p, 720p, 1080p

8/8/2016

  • Cuidados com tela cheia
    • Janela maximizada ou fullscreen?
  • Estrutura de Cenas
    • Entender a estrutura atual
    • Definir uma estrutura ótima
  • Talvez implementar nossa própria física
    • Não usar RigidBody2D
  • Conteúdo Procedural?
  • UML ftw
    1. Main
      1. Sample Player
      2. GUI
      3. Level
        1. Player
        2. Enemies
        3. Platforms
        4. Floor
        5. Interactive Objects
  • Convenção para nomes
  • Convenção para a versão da Godot

30/6/2016

Ata da Reunião de Retrospectiva do 1º semestre

  • Presentes: Victor, Wil, Akira, Kei, Lívia, André, Cabeça, Eduardo
  • Início: 14h30
  • Término: 16h10

As ações que decidimos tomar com base na retrospectiva do projeto foram as seguintes.

Wiki do GitHub

  • Separar log
  • Separar tópicos
  • Sugestão: usar issues

Reforçar que é bom avisar sobre faltas

  • Perguntar quem virá
  • Fazer canal no Discord
    • + discussão

Prioridade para reuniões fixas

  • Conversar com maratona
  • Considerar reservas

Atividades Remotas

Código

  • Usar pull request
    • Aprender a usar pull request
      • Documentar boas práticas de pull request
  • Definir estruturas do projeto

Git

  • Modularizar mais as cenas
  • Usar pull request
  • Usar issues e delegação de tarefas

Ir geral para oficinas Godot

Controle das bombas

  • Copiar Terraria
  • Mostrar trajetória

Aprender a fazer releases com a Godot

Listagem e decisão da OST

  • Palavras-chave
  • Progressão do plot

23/6/2016

  • Monstros do esgoto: "Blob Fish" e "Polvo Dumbo".
  • O jogador poderia passar por "Basking sharks" em partes submarinas.
  • Os suricatos são a gangue do café ("Don't tread on me"). Eles protegem a Regina.
  • As moedas serão pedrinhas de âmbar com insetos dentro.

16/6/2016

  • Calabar: O nome do "amigo" cientista do jogador.
  • Regina monta a "jet-pack" a partir de peças encontradas nas sedes.
  • Sede X (vulcão): Tem muito fogo e calor. Devido ao ambiente, os inimigos locais são autômatos criados com a tecnologia roubada (ou golens supimpas). O jogador encontra sua pesquisa, mas descobre que ela já foi estudada pela empresa. Sabendo que serão necessárias gemas para replicá-la, o jogador se direciona agora ao centro de mineração local.
    • Chefe Kentucky Fire Chicken ( Flamenco )
      • Bomba Chicken Cocktail -> Chickentail
  • Centro de Mineração: Os inimigos já utilizam gemas e há uma esteira despejando gemas de dentro pra fora da mina (indicando que É TARDE DE MAIS). O jogador adentra a mina a fim de causar o apagão, e assim frustar a operação de mineração da empresa. A esteira faz "BIEEUUMM" e desliga.
  • A luta com o chefe seria no escuro?
    • Chefe Toupeira com furadeiras nas mãos (Metaleira, faz símbolo de mão chifrada, furando o teto e fazendo rochas caírem)
    • Bomba Eletrica que faz "BUZZZ" (stuna os inimigos)


14/6/2016

Discussão sobre progressão do enredo e dos levels:

  • Prólogo/tutorial: no laboratório na casa dele. Ele está pesquisando e faz alguma descoberta nova, fica feliz e vai compartilhar a notícia com o(a) migo(a) em um lugar alternativo (que envolve café - spoiler alert). No caminho da cafeteria/na própria cafeteria a empresa deve ser contextualizada no universo do jogo. Ao voltar pro laboratório ele vê um automóvel parado na frente da sua casa com o logo de uma empresa. Ele entra na casa e volta pro laboratório e ele ouve o carro indo embora e percebe que sua pesquisa não está mais no lugar. Ele então volta pra rua e percebe que uma das coisas roubadas foi deixada para trás (no caso, a bomba inicial). <PRECISAMOS PENSAR EM UM TUTORIAL>.
  • Cidade: caminho para a empresa. Fase de introdução às plataformas e sem combate. Maior contextualização da história.
  • Sede oficial da empresa high-tech (fachada): interação com um atendente/recepcionista que não deixa o personagem passar. Usando combate ou stealth, ele passa por esse hall e vai percorrendo o interior da empresa. Em certo ponto, ele fisicamente não consegue avançar mais (alguma habilidade avançada é necessária), mas ele descobriu algo de novo que avançará a história (existência de outra sede onde se encontra parte de sua pesquisa roubada), levando ele para outro local. Ele cai por um alçapão e vai pra fase do esgoto (mais inimigos começam a surgir ao longo do jogo).
  • Esgoto: fase com mais gameplay do que avanço narrativo. A fase deságua em outro ambiente (bioma marítimo).
  • Bioma marítimo: deságua diretamente no ambiente do laboratório embaixo d'água. Avanço narrativo pois o cientista acha documentos da empresa em um lugar completamente nada a ver e isso o deixa mais intrigado em relação ao mistério do jogo inteiro. A informação que ele vai achar nessa fase (os documentos da empresa) estará criptografada e ele terá que levar essa mensagem para algum outro lugar para decodificá-la.
    • Chefe Slayer Fishman: Todos os ataques são GOLPES DE BALÉ.
      • Bomba de Água (ou criogênica?): Solidifica lava e destrói equipamentos/inimigos eletrônicos
  • O personagem vai voltar pra casa pois está cansado/frustrado/com frio/com fome/molhado e quer descansar no conforto do seu lar. Ele chega e ve que a casa foi destruída e encontra sua amiga barista (Regina, a feneco) está lá pra entregar o pedido personalizado de café e encontra com o cientista. Ele entrega o documento criptografado para a Regina que reconhece a língua e traduz os documentos para o personagem.
    • Regina: amiga de faculdade do personagem principal, lida com café desde sempre e por isso vira barista na sua vida adulta.
    • A partir deste momento, o jogador já é considerado um infrator pela empresa.
  • O documento descreve algo como "Recebemos as novas tecnologias na sede x". Regina CONVENIENTEMENTE sabe a localização de tal local, ao qual o camaleão de gênero ambíguo se direciona, após consumir muito café ""especial"".

Discussão sobre as bombas:

  • Recursos de energia vão ser dropados enquanto as fases progridem. Craft instantâneo de bombas usando as energias.

31/5/2016

Bugs reportados:

  • Detecção no modo stealth
  • Plataforma móvel
  • Plataformas instáveis caem quando o player colide por baixo
  • Detecção nas bombas de fumaça
  • Jogador trava em certos pontos do tileset em modo stealth
  • Plataformas instáveis às vezes não somem quando o jogador permanece em cima delas
  • Bombas não colidem com plataformas instáveis

5/5/2016

  • O dia em que tudo mudou
  • Movimento da bomba melhorado:
    • Bombas iniciam a trajetória em linha reta em direção ao mouse, mas são afetadas normalmente pela gravidade. Colocamos um limite inferior e superior para as forças de arremesso.
  • Colocamos invencibilidade no jogador ao ser atingido por um inimigo.

7/4/2016 e 14/4/2016

Feita a maioria da mecânica básica do jogo, consideramos importante estabelecer objetivos concretos relacionados a jogabilidade para o projeto de agora em diante. As decisões escritas aqui são diretrizes para o resto do jogo, portanto não são limitantes ou imutáveis.

  • Inimigos com durabilidade e movimentação diferente:
    • Inimigo básico: movimenta-se no horizontalmente no chão. Quando detecta o personagem com uma certa proximidade (personagem entra em uma área de gatilho), ele vai em sua direção (inicia combate).
    • Inimigo aéreo: movimenta-se horizontalmente a uma certa altura do chão. Quando o personagem entra em uma certa área de gatilho o inimigo faz um movimento rasante na sua direção (inicia combate).
    • Inimigo "aranha": fica no teto e tem um movimento vertical intervalar. Além disso, também detecta o personagem quando está próximo (área de gatilho) e desce verticalmente (não necessariamente vai no sentido do personagem) para causar dano no mesmo.
    • Inimigo "morcego": fica no teto e movimenta-se simultaneamente vertical e horizontalmente (movimento rasante). Também detecta a proximidade do personagem através de uma área de gatilho e faz o mesmo movimento (inicia combate).
    • Inimigo estático: não se movimenta (talvez se camufle com a cena).
    • Ideias adicionais: camuflagem, escudo, atirar de volta.
  • Tipos diferentes de bombas:
    • Bomba básica: o tipo de bomba com qual o jogador inicia a sua jornada;
    • Bomba de fumaça: usada em stealth mode. Impede que o inimigo veja o jogador;
    • Bomba de gás tranquilizante: usada em stealth mode. Usada para atordoar os inimigos sem entrar em combate direto;
    • Bomba flask fire: bomba de tiro rápido;
    • Bombas elementais: bombas de gelo, fogo, água, etc.
  • Finais que variam baseados nas ações do jogador:
    • Final energético: o cientista recupera sua pesquisa e a utiliza para desenvolver tecnologias sustentáveis;
    • Final bélico: o cientista acaba tomando o controle da empresa de bombas e desiste dos fins energéticos de sua pesquisa;
    • Final neutro: o cientista desiste de sua pesquisa e passa o resto dos seus dias se dedicando à profissão de barista.
  • Levels:
    • Casa do cientista/laboratório: cena inicial, onde o jogador passa por um tutorial;
    • Fase da cidade: onde o jogador deve interagir com o meio para descobrir a história/contexto;
    • Fase da fábrica: indústria da empresa;
    • Fase admnistrativa/"high-tech": escritório da empresa;
    • Fase final: base escondida/secreta da empresa.

Esses objetivos estão sujeitos a alterações!

15/3/2016

  • Conserto do pulo do personagem;
  • Tentativa de conserto da direção da bomba (agora em relação à câmera);
  • Tentativa de passar a colisão para as partículas.

10/3/2016

  • Adição de câmera;
  • Correção da direção de lançamento bomba;
  • Criação de um inimigo;
  • Criação de um gerador de inimigos;
  • Adição de partículas na explosão do inimigo.

A versão atual está rompida/danificada devido ao git merge.

8/3/2016

  • Correção do lançamento da bomba para ambos os lados;
  • Direção do lançamento da bomba determinada pelo mouse.
  • Velocidade limite de lançamento da bomba.

4/3/2016

  • Implementação do pulo permitido apenas em contato com o chão;
  • Criação da bomba e implementação de arremesso;
  • Colisão da bomba com partículas.

1/3/2016

  • Criação do repositório do GitHub;
  • Início de simulação da mecânica básica do jogo na Godot.

Ata da reunião do dia 26/2/2016

  • Objetivo: definir conceito básico do novo projeto
  • Presentes: Akira, André, Isabela, Omar, Pão, Victor e Wil

1. Ação principal: o que o jogador faz?

  • Combate: arremesso de explosivos (granadas, bombas, gemas, poções, etc.)
  • Equilíbrio entre "guns blazing" e "stealth" (possivelmente usar backstabbing contra inimigos desproporcionalmente fortes vide Attack on Titan)

2. Navegação

  • I. Visão: lateral
  • II. Movimento: platformer
  • III. Espaço: Talas com scroll + exploração metroidvania

3. Objetivo

  • I. Character customization: different animal races
  • II. Main character: SCIENTIST
  • III. Fins energéticos vs. Fins bélicos
  • IV. Conflito moral: usar bombas vs. stealth
  • V. Vilão: empresa que roubou sua pesquisa
  • VI. Itens de cura: café
  • VII. Endings: bélico ou energia ou nihilism (shutdown research -> barista)
  • VIII. Amigo pesquisador trai

Parte da ata da reunião do dia 24/2/2016

Por facilidade, copiamos aqui a parte da ata desse dia que envolveu o brainstorm inicial de restrições/premissas do projeto.

Novo projeto

Para o novo projeto, foi combinado fazer um jogo com todos os participantes da reunião. Para montar a proposta de jogo, foi feito um brainstorm direcionado. Cada um anonimamente propôs uma feature que queria ter no jogo (ou no processo de fazer o jogo) que seria imutável. O que saiu foi o seguinte:

  • 1. Explosões
  • 2. Conteúdo processual
  • 3. Inteligência Artificial
  • 4. Enredo forte
  • 5. Save files
  • 6. Código organizado (wtf)

Como as imposições ficaram muito genéricas, foi feito uma segunda rodada, dessa vez aberta:

  • 7. Combate
  • 8. Plot twists
  • 9. Multiple endings
  • 10. Steam Punk
  • 11. Stealth
  • 12. Upgrades

Esses doze pontos são os fundamentos do jogo, por mais que eles tenham ficado bastante genéricos... Cada um ficou responsável por dizer se o projeto está ou não satisfazendo as features que propês. Por exemplo, o Wil é responsável por dizer se o jogo satisfaz "Conteúdo processual" e "Steampunk". TEndo determinado essas features, discutimos e fechamos os seguintes aspectos fundamentais:

  • a. Plataforma: desktop
  • b. Play time: 8h
  • c. Idioma: Inglês
  • d. Real-time ou Turn-based: Real-time
  • e. Jogador: personagem "folha em branco" com aparência minimamente customizável
  • f. Ação principal: ainda não decidido

Além disso, outras premissas do projeto é que ele será feito na Godot e será 2D.

A próxima reunião será sexta-feira 26/2/2016, às 14h, na sala de reuniões. Ela já contará como uma reunião exclusiva do projeto novo.