Ficha 01 · Design, mecânicas, loop
- Definir jogo
- MDA
- Verbo + mecânicas
- Loop + dt
Parte I · O que é um jogo
Exercício 1 · 4 ingredientes (10 pts)
Quais são os 4 ingredientes que tornam algo um jogo (segundo a definição prática da sebenta)? Para cada um dá um exemplo de o que falta se esse ingrediente não estiver.
- Decisões — sem decisões, é animação interactiva.
- Regras — sem regras, é playground caótico (sandbox sem objectivo).
- Objectivo — sem objectivo, é brinquedo.
- Feedback — sem feedback, é folha de Excel / sistema burocrático.
Exercício 2 · MDA (15 pts)
Para o Pong, indica:
a) 2 mecânicas (regras concretas):
b) 1 dinâmica (comportamento emergente):
c) 1 estética (emoção principal):
a) Mecânicas: - O paddle move-se para cima/baixo conforme o input. - A bola muda de direcção ao bater no paddle ou no topo/fundo do ecrã. - (Também:) Ponto marcado quando a bola passa do paddle adversário.
b) Dinâmica: - Jogadores começam a antecipar a trajectória da bola, gerando um pequeno duelo de previsão. Ou: ao acelerar a bola, surge pressão crescente.
c) Estética principal: - Challenge (desafio) — combinada com sensation (reflexos rápidos) e fellowship se for 2 jogadores.
Exercício 3 · Verbo (10 pts)
Indica o verbo principal de cada jogo e explica numa frase porque é esse e não outro.
a) Tetris ___
b) Super Mario ___
c) Cookie Clicker ___
d) Stardew Valley ___
a) Encaixar — toda a jogabilidade gira à volta de orientar peças para encaixar linhas sem buracos. b) Saltar — apesar de correr e atirar, é o salto que define níveis, perigos e personagem. c) Clicar — o clique é o motor; tudo mais é progressão automática. d) Cultivar — apesar de minar/lutar/casar, a estrutura do tempo é "plantar, regar, colher".
Parte II · Géneros e mecânicas
Exercício 4 · Escolher género (10 pts)
Tens 1 mês para fazer o teu primeiro jogo sozinho. Indica 3 géneros adequados para iniciante e 2 a evitar (com justificação curta).
Iniciar: - Hyper-casual / arcade — uma mecânica, scope mínimo. - Puzzle — sem física complexa, conteúdo escalável. - Plataformas 2D simples — assets prontos abundantes, tutoriais por todo o lado. - Clicker / idle — pode ser feito em texto+JS.
Evitar: - RPG ou MMO — conteúdo enorme (story, NPCs, inventário, balance). - 3D AAA / FPS competitivo — exige tooling, networking, polish enormes. - Estratégia em tempo real — IA, balance, performance.
Parte III · Loop de jogo
Exercício 5 · O loop (10 pts)
Indica as 4 etapas do loop de jogo na ordem correta.
- Input — ler teclado/rato/gamepad.
- Update — calcular novo estado (física, IA, regras).
- Render — desenhar no ecrã.
- Esperar próximo frame — sincronizar com o FPS alvo (60 FPS = 16.6 ms).
Exercício 6 · Delta time (10 pts)
Este código move uma personagem:
posicaoX += 5;
a) Por que é problemático em jogos?
b) Reescreve usando delta time, com uma VELOCIDADE em pixels/segundo.
a) Movimento depende do FPS. Num PC potente a 144 FPS a personagem voa; num fraco a 30 FPS arrasta-se. Se o frame demora 16 ms vs 33 ms, a velocidade real varia.
b)
const VELOCIDADE = 300; // pixels por segundo
// dt em segundos desde o último frame
posicaoX += VELOCIDADE * dt;
Resultado: 300 px/s independentemente do FPS.
Exercício 7 · State machine (15 pts)
Desenha em caixas + setas a state machine de um jogo simples com: Menu, Jogar, Pausa, Game over, Vitória.
Indica que eventos causam cada transição.
[Menu] ───(Play)──→ [Jogar] ←──(Resume)──→ [Pausa]
↑ │ │ │
│ │ └────(Esc)────────────┘
│ │
│ (perdeu)│ (ganhou)
│ ↓ ↓
└────(Menu)─── [Game Over] [Vitória] ─(Próximo)→ [Jogar]
│
└─(Menu)→ [Menu]
Eventos típicos:
- Menu → Jogar: clica "Play".
- Jogar → Pausa: tecla Esc.
- Pausa → Jogar: Resume / Esc.
- Jogar → Game Over: vidas = 0.
- Jogar → Vitória: objectivo cumprido.
- Game Over/Vitória → Menu: clica "Menu".
- Vitória → Jogar (próximo nível): clica "Próximo".
Parte IV · Aplicação
Exercício 8 · Scope (10 pts)
Tens 2 semanas. O teu colega diz: "vamos fazer um RPG 3D online com 50 horas de campanha, sistema de classes, crafting e PvP."
Quais são os 3 problemas com este scope e o que propões em alternativa?
Problemas: 1. Conteúdo — 50h de campanha = story, NPCs, voice-over, ambientes — inviável em 2 semanas com qualquer equipa. 2. Tooling — 3D + multiplayer exige engine pesada (Unity/Unreal), netcode, servidor. 3. Polish — RPG com classes/crafting/PvP precisa balance e testes que excedem o prazo.
Alternativa: dungeon crawler 2D top-down com 1 mecânica principal (atirar/atravessar/empurrar), 3-5 ecrãs e um boss final. 1 personagem, sem multiplayer. Foco em game feel e playtest.
Exercício 9 · Game feel (10 pts)
Vês um vídeo de duas versões do mesmo platformer. A versão B sente-se "viva" e a A morta. Aponta 5 técnicas que provavelmente diferem entre A e B.
- Squash & stretch na aterragem (espremer e esticar o sprite).
- Screen shake em embates/colisões.
- Partículas ao saltar, aterrar, atirar.
- Hitstop / freeze frame (1-2 frames congelados ao atingir inimigo).
- SFX sincronizado a cada ação (saltar, aterrar, ferido).
- Coyote time + jump buffer + salto variável (responsividade).
- Cor pisca quando ferido / animação de dano.
- Câmara que segue com pequeno delay (não rígida).
(5 quaisquer.) Todas pequenas, somadas mudam tudo.