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.