Jogos e Simulação
Objetivos
- Learn how to program video games
- What are the key concepts of game design
- What is involved in the process of game development
- What are the key components of a game engine
- How the game engine components work together
- How to use game engines for game development
- What are the key techniques and algorithms inside a game engine
Saber
- Modelação Básica 3D e constituição de um “pipeline de visualização 3D”
- Técnicas e modelos de iluminação, locais e globais
- Arquitetura hardware dos GPUs modernos e modelo de programação recorrendo a shaders.
- Exploração da arquitetura dos GPUs para a produção de efeitos especiais avançados em tempo real
- Técnicas específicas para o desenvolvimento de jogos e simulação.
- Técnicas de animação por computador.
- Arquitetura de motores de jogos e sua programação.
- Produção e reprodução de áudio 3D
Fazer
- Programar grande parte das diversas técnicas lecionadas.
- Construir aplicações gráficas 3D interativas.
- Programar e utilizar componentes de software no domínio (game engines)
- Escolher e aplicar a técnica mais adequada à resolução de um problema.
Soft-Skills
- Capacidade de analisar hardware gráfico e sistemas gráficos atuais
- Capacidade de analisar e programar motores de jogos
- Melhor compreensão de áreas relacionadas, como a fotografia, o cinema e a física.
Caracterização geral
Código
11557
Créditos
6.0
Professor responsável
Nuno Manuel Robalo Correia, Rui Pedro da Silva Nóbrega
Horas
Semanais - 4
Totais - 52
Idioma de ensino
Português
Pré-requisitos
- Conhecimentos prévios de programação (C, C#, C++ ou Java)
- Conhecimentos básicos de Algebra Linear (vetores e matrizes)
- Noções básicas de geometria
- Curso Introdutório de Computação Gráfica
Bibliografia
-
The Art of Game Design, A Book of Lenses, Jesse Schell, 2008
-
Game Development Essentials, A Practical Approach to Real-Time Computer Graphics , 3rd Edition, 2012, Jeannie Novak
-
Unity Game Development Cookbook, Essentials for Every Game, Paris Buttfield-Addison, Jon Manning, Tim Nugent, 2019
-
Game Engine Architecture , 3rd Edition, 2018, Jason Gregory
-
Realtime Rendering , 4th Edition, 2018, Tomas Akenine-Möller et al
Material adicional será disponibilizado durante as aulas e no website da UC.
Método de ensino
As aulas teóricas serão suportadas por slides, bem como por outros materiais de suporte tais como demos, e terão um carácter mais expositivo, embora com os alunos sejam encorajados a participar ativamente, sendo questionados a opinar criticamente as metodologias e técnicas apresentadas para o desenvolvimento de jogos.
As aulas práticas visam a aquisição de competências na utilizacão de motores de jogos, sendos os alunos desafiados a desenvolver 2 projetos. O primeiro, mais pequeno, visa colocar os alunos em pé de igualdade e consiste no desenvolvimento de um jogo mais simples, individualmente. O segundo projeto, realizado em grupo, permite que cada aluno possa explorar as áreas do desenvolvimento do jogo que mais lhe interessam, ao ser permitida e encorajada a divisão de tarefas.
Método de avaliação
Componentes da Avaliação
A avaliação é constituída por duas componentes: a componente laboratorial e a componente teórico-prática.
Componente Laboratorial e Frequência
A componente laboratorial é composta por:
- um projecto individual (PI)
- um projecto de grupo (PG)
As entregas, classificadas no intervalo de 0 a 20 valores, serão discutidas individualmente. A nota de um aluno no trabalho de grupo depende do trabalho que entregou, do seu desempenho na discussão e do desempenho dos seus colegas de grupo na discussão, caso os desempenhos sejam significativamente desequilibrados.
A nota da componente laboratorial (CompL) é obtida por:
Não há frequência nesta Unidade Curricular. As discussões dos trabalhos serão efetuadas no fim do semestre.
Para obter aprovação, é necessário que CompL >= 8.0 .
Componente Teórico-Prática
A componente teórico-prática é composta por dois testes (no período de aulas) ou por um exame (na Época de Recurso). As três provas são presenciais, individuais, escritas e com consulta duma folha manuscrita (frente e verso). Não são permitidos dispositivos eletrónicos (e.g. calculadoras, telemóveis, smartwatches e portáteis).
Há pré-inscrição nos testes.
A nota da componente teórico-prática (CompTP) é a média aritmética simples das notas dos testes (T1 e T2) ou a nota do exame (Ex):
Para obter aprovação, é necessário que CompTP >= 8.0 .
Nota Final
A nota final (F) dos alunos com frequência é:
- F = min(CompL,CompTP), se CompL < 8.0 || CompTP < 8.0
- F = 0.6 CompL + 0.4 CompTP, se CompTP >= 8.0 e CompL >=8.0 .
Todas as notas (PI, PG, T1, T2, Ex, CompL e CompTP) são arredondadas às décimas, exceto a nota final (F) que é arredondada às unidades.
Para os restantes anos lectivos, não estando a unidade curricular a funcionar com frequência nessa altura, todos os alunos que realizaram as práticas até 2019/2020, inclusive, não têm frequência, devendo assim inscrever-se num turno prático.
Conteúdo
- Hardware gráfico 3D e o pipeline gráfico 3D.
- Modelação 3D e representações de geometria.
- Interação da luz com os objetos, Modelos de iluminação e técnicas de seombreamento.
- Tópicos avançados de síntese de imagem: aplicações do uso de texturas e geração de sombras.
- Grafos de cena, gestão dos dados e otimizações para tempo real.
- Arquitetura de motores de jogos.
- Técnicas de animação: interpolação de quadros, morphing e modelos articulados.
- Deteção e resposta a colisões.
- Princípios físicos dos jogos 3D e métodos numéricos.
- Física da propagação do som, localização do som e síntese de som 3D.
- Programação de um motor de jogos e desenvolvimento de jogos.