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.  
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  
Löve  
•
•
Löve é um Framework para criação de  
jogos 2D na linguagem de programação  
Lua  
Multiplataforma (Windows, Linux, Mac e  
Android)  
•
•
Open Source  
Totalmente gratuito e pode ser usado em  
qualquer tipo de projeto  
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:  
–
3 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 projeto.  
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  
Projeto Final  
Eduardo Carvalho  
Felipe Dassa  
Luiz Guilherme Ribeiro  
Rodrigo Sinésio  
Gustavo de Araujo Nunes  
Leonardo Lages de Alencar  
Bruna Moura Bergmann  
Projeto Final  
Bruno D’Almeida Franco  
Andressa Muniz  
Júlia Aleixo  
Rafael Sanfins  
Rodrigo Leite  
João Victor Magalhães Epifânio  
Luís Fernando Teixeira Bicalho  
Luiz Felipe Rodrigues Guimarães  
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:  
–
05/09/14 à 28/11/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