Optativa 2019-1: Tópicos em Jogos Digitais
Nas próximas semanas estaremos apresentando as disciplinas optativas de 2019-1. Esta é a primeira.
- Código: Tópicos Especiais em Computação XVIII
- Professor: Fernando Bevilacqua
- NOME: Tópicos em Jogos Digitais
EMENTA:
Conceito e construção de jogos digitais. Game design. Arquitetura de um jogo. Processamento de entradas. Movimentação retilínia e vetorial. Colisão. Animações. Caminhos. Inteligência artificial. Steering behaviors. Mapas. Multiplayer. Técnicas de otimização. Matemática aplicada a jogos.
OBJETIVO GERAL
Desenvolver as habilidades necessárias e conhecer os passos para criar um jogo digital. Compreender o funcionamento de um jogos digital. Desenvolver jogos simples utilizando os conceitos aprendidos.
OBJETIVOS ESPECÍFICOS:
Compreender como um jogo digital é desenvolvido. Desenvolver jogos simples utilizando os conceitos aprendidos.
ASSUNTOS EM ESPECÍFICO:
- Game design; Introdução; Mecânica de jogo (gameplay).
- Game design; Ambientação; Roteiro; Desafio, recompensa e frustração.
- Game design; Game design document (GDD); Concept; Prototipação.
- Gráficos, cores e a tela; Sistema de cores RGBA; Tela e sistema de coordenadas; - Gráficos Bitmap e Vetoriais; APIs gráficas (OpenGL e DirectX)
- Arquitetura de um jogo; Game engines; Game loop (input, update e render); Taxa de atualização (FPS); Estados; Hud;
- Arquitetura de um jogo; Entidades (controladas pelo jogador e autônomas); - Mensagens entre entidades;
- Processamento de entrada; Mapa de teclas; Identificação de entrada (key codes, etc);
- Movimentação; Movimento retilíneo; Velocidade; Aceleração; Atrito e desaceleração; Integração de Euler.
- Matemática para jogos; Vetores (direção, magnitude, normalização, soma e subtração, multiplicação por escalar);
- Matemática para jogos; Produto vetorial(cross); Produto escalar (dot); Ângulo entre vetores.
- Movimentação; Movimento usando forças e vetores; Vetor posição, velocidade e aceleração.
- Apresentação de trabalho
- Gráficos; Spritesheet; Animações quadro-a-quadro; Animação por interpolação.
- Colisão; Bounding box; Interseção simples; SAT; Colisão perfeita de pixels.
- Caminhos; Estruturas de dados para caminhos; Planejamento de caminhos (Way points e Navmesh).
- Caminhos; Descoberta de caminhos; Algoritmo de Djikstra e A*.
- IA; Introdução; Roubo pela IA (AI cheating);
- IA; Máquina de estados finitos (FSM); FSM simples e hierárquicas.
- IA; Máquina de estados com pilha.
- IA; Entidades autônomas; Agentes de software.
- Steering behaviors; Introdução; Seek; Flee; Arrive;
- Steering behaviors; Pursuit; Evade; Collision avoidance; Path following;
- Mapas; Mapas em tiles.
- Mapas; Geração procedural e organização hierárquica.
- Multiplayer; Jogos multiplayer offline (local); Padrões de projeto.
- Multiplayer; Jogos em rede; Modelo cliente servidor;
- Multiplayer; Fila de mensagens; Sincronização entre clientes; Latência.
- Otimizações; Compressão de assets (imagens e sons); Carregamento sob demanda; Pool de objetos;
- Quadtrees e quadrantes.