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 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 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). . 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.