BoomScience Devlog
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
- Queda no esgoto (entrance)
 - Puzzle: nível de água -> branch A (2.5 -> branch B) (water-puzzle)
 - Puzzle: alavancas que abrem/fecham determinadas portas (lever-puzzle)
 - Puzzle: água + alavancas (final-puzzle)
 - Boss
 - 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
- Stair jump
 - Level design do esgoto
 - Player detection
 - Smoke bomb
 - Game state switching
 - Main menu
 - Save files
 - Save points
 - Flags
 
30/3/2017
Árvore da cena durante o gameplay
- Root
- global
 - Main
- GUI/HUD
 - Stage (Floor)
- Player*
 - StreamPlayer
 - Enemies
 - Interactive Objects (key, door)
 - Layers (stairs, breakables)
 
 
 
 
Observações:
- SamplePlayer será filho de quem emite o som.
 - Player* é inserido quando o stage é carregado.
 - Menu/Game Over entra no lugar da Main.
 
27/3/2017
Gráfico Valor x Risco
- Inimigo
 - Estrutura da árvore da cena
 - NPCs
 - HUD (HP)
 - Readme
 - HUD (mini-inventário)
 - Gamestate (Menu, Win/Lose)
 - 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
- Mapa, Player
 - HUD
 - Readme, Trocar entre gamestates
 
15/8/2016
- Escrever o readme
 - Criar cenas básicas, tendo em mente um simples demo
- Cena Main (nó gerenciador de cenas)
 - Dois levels conectados
- Sistema de "Salas"
 - Esgoto + Bioma marítmo
 - Tilesets
- Pixações
 - Canos, goteiras, lixo, signs, objetos brilhantes
 
 
 - Protag
- Bombas
 
 - Animal-people (enemies and not enemies, NPCs in general)
- Rats
 - Something else that is not a rat
 
 
 
10/8/2016
- Convenção
- Godot Engine 2.1
 - Padrões de Nomenclatura
 
 - 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
 
 
 - 4:3
 
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
- Main
- Sample Player
 - GUI
 - Level
- Player
 - Enemies
 - Platforms
 - Floor
 - Interactive Objects
 
 
 
 - Main
 - 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
 
 
 - Aprender a usar 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
 
 
 - Chefe Kentucky Fire Chicken ( Flamenco )
 
- 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
 
 
 - Chefe Slayer Fishman: Todos os ataques são GOLPES DE BALÉ.
 
- 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)
 
- 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.