Por que jogamos? O aprendizado proporciona diversão (Raph Koster). Jogar permite tentar e falhar sem maiores
consequências (Jesper Juul). Outras explicações: imersão, fluxo.
Percepção sensorial -> Sentimentos -> Pensamentos -> Personalidade -> Histórico
Jogo -> Objetivo -> Regras -> Desafio ou conflito -> Interação -> Escolhas significativas
Objetivo do jogo
Em alguns casos, jogadores podem definir seus próprios objetivos, diferentes do proposto pelo jogo
Desafio ou conflito
Desafio: oposição na forma de obstáculos, enigmas a serem decifrados, testes de habilidade dos jogadores
Conflito: oposição na forma de competidores, inimigos, personagens que agem contra os jogadores
Pode incluir desde decisões momento a momento (baseadas em reflexos) até planos estratégicos
Narrativas em jogos
Assim, podem justificar os objetivos, explicar os desafios ou conflitos e tornar as escolhas mais significativas
Game design é projetar a experiência que será vivenciada pelo jogador. Isso é feito indiretamente, através do projeto
dos diversos elementos do jogo.
Usuário -> dispositivo de entrada -> software (coletar entradas, atualizar sistema, gerar saída) <- dispositivo de saída
O fluxo de um jogo Inicialização -> coleta de entradas -> simulação -> geração de saídas -> desligamento
O “main loop” coleta de entradas -> simulação (comportamente, regras, física) -> geração de saídas (renderização,
áudio, rede)
Coleta de entradas -> simulação -> atualização do estado -> próximo estado => estado atual -> renderização -> áudio
Subsistemas de um jogo INPUT REDE IA/Comportamento -> animação -> renderização -> ARQUIVO <- áudio
Entidades de jogos: Em um jogo, as entidades podem ser variadas. Uma solução comum é a criação de uma entidade
genérica com agregação de objetos para funcionalidades específicas.
GameObject -> visualObject -> PhysicsObject -> Behavior -> Mesh -> Animation
“Data-driven design”: Trata-se da prática de separar os algoritmos e estrutura do jogo de parâmetros e dados. Com o
tempo, essa flexibilização passou a incluir scripts.
Arquivo de dados >> Algoritmos do jogo << Parâmetros >> Regras do jogo << Scripts
Editor de mapas arquivo de dados contendo o mapa Algoritmo para desenho do mapa
Game engines são bibliotecas ou arcabouços de software que agregam técnicas e modelos reutilizáveis na
implementação de jogos digitais.
Atualmente, vários game engines também incluem ferramentas de edição que simplificam o processo de configuração
de mapas, animações e comportamentos.
GAME ENGINES lógica específica do jogo APIs de baixo nível de abstração sistema operacional e drivers.
Renderização e estrutura de cena (Bitmaps e pixels - Animação por quadros), Animação por quadros, Tile sets
Questões técnicas
- Memória ocupada por tile sets e animações - Renderização de partes alteradas da tela
- Limites no número de quadros - Imagens contendo múltiplos quadros
- Compactação de dados - Diferenças de tamanho de telas
- Tempo de execução para desenhar cenas - Tamanho fixo ou ampliação
Renderização 3D
Transformações -> iluminação -> eliminação de faces ocultas -> recorte -> projeção -> rasterização -> mapeamento de
texturas
Objetos gráficos: Instance -> Object3D -> (skeleton, mesh, material, animation) material (texture,shader)
Estruturas de cena: GAME -> Scene -> GAMEOBJECT -> instance -> object3D
Interface de usário
Interação e comportamento -> coleta de entradas -> Gerenciador de entradas (lista de ações, fila de eventos)
Mapa de ações teclado (tecla A, tecla “enter”, tecla “espaço” andar para a esquerda, ativar item, pular JOGO
Implementação de regras
Alguns game engines organizam essa lógica na forma de eventos tratados pelas entidades de jogo
Questões técnicas
2. Como agrupar regras que se referem a um mesmo comportamento de uma entidade de jogo?
Máquinas de estado finito: GUARDA – ruído – PATRULHA – inimigo avistado – (inimigo avistado) ATAQUE – muito ferido
FUGA
Estados de jogos: TÍTULO (configurar) (iniciar o jogo) JOGO – OPÇÃO comando de pausa (PAUSA)
Implementação de MEF
Detecção de colisão – No laço principal movimentação das entidades – testes de colisão simulação física/testes de
colisão eventos de colisão
Questões técnicas
A – B – C matriz de pixels
Composição de técnicas
Visando maior eficiência, é possível encadear diferentes técnicas de detecção de colisão, em ordem crescente de
complexidade.
Considerando trajetórias
Experiência e diversão -> Jogo produto (cronograma e orçamento) e software (correto e completo)
Atividades de projeto
Programação
Documento de design
Documento técnico
Exemplo de documento
1. Resumo 2. Público e mercado 3. Estrutura do jogo 3.1. Resumo 3.2. Objetivo, regras 3.3. Interface
4. Contexto (personagens, história etc.) 5. Especificações técnicas
Prototipação
Um bom protótipo...
É desenvolvido com objetivos claros Tem custo reduzido (comparado ao desenvolvimento do produto)
Projeto iterativo
ITERAÇÃO de projeto (requisitos, testes, especificação, implementação) (versão 0.1, versão 0.2)
DESAFIOS DE PROJETOS