Este repositório contém todo o material utilizado no curso de Programação de Jogos ministrado para os alunos do curso de Ciência da Computação na Universidade Federal Rural do Semi-Árido (UFERSA).
No curso, eu apresento passo a passo a construção de um motor para criação de jogos 2D. Cada aula é ilustrada com código que implementa uma pequena parte do motor. O código é desenvolvido em C++ usando as APIs Win32 e DirectX 11 no Windows 10. O material fornecido são projetos do Visual Studio 2019.
Um dos objetivos do curso é motivar os alunos e mostrar que é possível construir jogos a partir do conhecimento que eles adquirem nos 3 primeiros semestres do curso. O único pré-requisito é saber programar de forma orientada a objetos e estar disposto a fazer isso usando a linguagem C++.
A numeração dos laboratórios (Labs) coincidem com a sequência das aulas (Slides):
- Introdução
- Programação para Windows
- Configuração da Janela
- Teclado e Mouse
- Arquitetura de um Jogo
- Motor de Jogo
- Direct3D
- Taxa de Atualização
- Desenho de Sprites
- Gerenciador de Cena
- Detecção de Colisão
- Construção do Jogo: PacMan
- Animação de Sprites
- Animação de Personagens
- Exibição de Texto
- Reprodução de Áudio
- Controle do Áudio
- Interação com o Mouse
- Construção do Jogo: Gravity Guy
- Dispositivos de Interação
- Transformações
- Deslocamento Vetorial
- Física Vetorial
- Colisão Avançada
- Sistema de Partículas
- Construção do Jogo: Geometry Wars
- Inteligência Artificial: Técnicas Básicas
- Inteligência Artificial: Padrões e Scripts
- Movimentação do Segundo Plano
- Distribuição do Jogo
O motor desenvolvido é didático e foca em clareza de apresentação no lugar de desempenho, sempre que os dois objetivos são conflitantes. Estou constantemente tentando melhorar o motor, seja na sua arquitetura, desempenho ou facilidade de uso. Se tiverem sugestões de melhoria fiquem a vontade para contribuir com o projeto.