BoomScience Project/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.