Introdução a Programação de Jogos  
Apresentação da Disciplina  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
Introdução a Programação de Jogos  
Design de Jogos  
+
Programação de Jogos  
Objetivos da Disciplina  
Apresentar os conceitos básicos de game design,  
programação e desenvolvimento de jogos.  
Estímulo ao desenvolvimento do raciocínio lógico e  
sistemático.  
Familiarização com os conceitos fundamentais de  
programação e desenvolvimento de jogos.  
Exposição ao ambiente universitário, do ponto de vista  
físico, através da participação às aulas e do ponto de vista  
acadêmico, através do desenvolvimento de projetos.  
Introdução a Programação de Jogos  
Disciplinas dentro do contexto do PIUES.  
Uma vez matriculado, o aluno:  
é alocado em uma disciplina com código próprio;  
recebe carteira de aluno, da PUC;  
recebe certificado oficial da PUC, de participação  
na disciplina;  
pode circular livremente pelo campus, bibliotecas,  
etc.  
Esquema de Aulas  
Parte 1 Aulas teóricas e praticas:  
Aulas teóricas sobre game design e programação;  
Aulas praticas para a definição do projeto e resolução de  
exercícios de programação;  
Parte 2 Desenvolvimento do projeto:  
Todas as aulas serão dedicadas ao desenvolvimento do  
projeto;  
Ementa da Disciplina  
Fundamentos de Game Design  
Introdução a Game Design  
Jogos; Equipe de desenvolvimento; Game design; Roteiro  
Game Design Document  
Formato; Gameplay; Personagens; Câmeras; Controles;  
Interfaces; Áudio  
Ementa da Disciplina  
Programação de Jogos em Lua e Löve  
Introdução a Linguagem Lua  
Variáveis; Operadores Aritméticos; Entrada e Saída; Funções  
Introdução ao Löve  
Ambiente de Desenvolvimento; Estrutura de um programa;  
Callbacks;  
Operadores Condicionais  
If-else; Interação pelo teclado e mouse;  
Operadores de Repetição  
For, while; Imagens;  
Vetores e Matrizes  
Programação de Jogos com Lua e Löve  
LUA é uma linguagem de programação criada na  
PUC-Rio e de ampla utilização no mundo dos jogos.  
O Löve é um framework para a criação de jogos e  
aplicações interativas em Lua.  
Auxiliam, de forma lúdica, o aprendizado de técnicas  
de programação aplicadas na criação de jogos.  
Linguagem Lua  
Lua é uma linguagem de programação projetada  
para dar suporte à programação procedimental  
em geral.  
Oferece um bom suporte para programação  
orientada a objetos, programação funcional e  
programação orientada a dados.  
É utilizada em diversos ramos da programação,  
como no desenvolvimento de jogos, controle de  
robôs, processamento de texto, etc.  
Linguagem Lua  
Exemplos de empresas que desenvolvem jogos  
usando a linguagem Lua:  
LucasArts, Blizzard, Microsoft, BioWare...  
Lua é inteiramente projetada, implementada e  
desenvolvida na PUC-Rio.  
Nasceu e cresceu no Tecgraf, o Grupo de Tecnologia  
em Computação Gráfica da PUC-Rio.  
Atualmente é desenvolvida no laboratório Lablua.  
Linguagem Lua  
Exemplos de jogos que utilizam Lua:  
Angry Birds  
Civilization V  
Far Cry  
Grim Fandango  
Ragnarok  
Tibia  
World of Warcraft  
Software  
Os softwares que serão utilizados nesta disciplina são:  
Löve - https://love2d.org/  
ZeroBrane Studio - http://studio.zerobrane.com/  
GIMP - http://www.gimp.org/  
Projeto Final  
Projeto desenvolvido em equipes:  
X alunos por equipe;  
Etapas:  
Definição da ideia geral;  
Elaboração de um game design document (GDD);  
Implementação do jogo (arte, programação, testes...);  
Apresentação do produto final.  
Projeto Final  
Thainá Cristina Demarque  
Beatriz Ribeiro Cabral  
Pedro Henrique Hopf Veloso  
João Pedro Matos de Freitas  
Luca de Aquino da Rocha  
Projeto Final  
William Sathler Lacerda  
Gabrielle Brandemburg dos Anjos  
Raphael Accioly Novello  
Bruno Leão Teixeira  
Thomaz P. E. Santo  
Bernardo  
Pedro Henrique Braga Lisboa  
Projeto Final  
Pedro Caldas Tammela  
Mariela Mendonça de Andrade  
Exemplo  
.
..  
function love.draw()  
for i = 1, config.numStars do  
love.graphics.setColor(255 - stars[i].speed,  
2
55 - stars[i].speed/2,150,  
stars[i].speed*0.9)  
love.graphics.draw(star, stars[i].x, stars[i].y,  
0
, stars[i].speed/255 + 0.55)  
end  
love.graphics.setColor(255, 255, 255)  
if spaceship.isBoosted == false then  
love.graphics.draw(spaceship.images.normal,  
spaceship.x, spaceship.y)  
else  
love.graphics.draw(spaceship.images.boosted,  
spaceship.x, spaceship.y)  
end  
for i = 1, totalLaserBeams do  
love.graphics.draw(laser.images.default,  
lasers[i].x, lasers[i].y)  
end  
end  
...  
Introdução a Programação de Jogos  
Forma de Avaliação:  
(1) Game Design Document;  
(2) Participação;  
(3) Jogo Desenvolvido;  
(4) Apresentação;  
(5) Presença!  
Introdução a Programação de Jogos  
A presença em todas as aulas é importante!  
Aprender a programar requer prática!  
Exercícios durante as aulas e em casa.  
Não desperdice o tempo da aula brincado na internet!  
Leia sempre o material adicional que será disponibilizado  
no site.  
Introdução a Programação de Jogos  
Horário das Aulas:  
Toda sexta-feira, das 14h às 17h  
Duração do Curso:  
14/03/14 à 30/05/14  
Sala:  
L546  
Bibliografia  
Rogers, S. Level Up!: The Guide to Great  
Video Game Design; Wiley, 2010.  
Ierusalimschy, R. Programming in Lua, Third  
Edition; Lua.org, 2013.  
Introdução a Programação de Jogos  
Site da disciplina:  
www.inf.puc-rio.br/~elima/prog-jogos/  
Contato:  
elima@inf.puc-rio.br  
edirlei.slima@gmail.com