SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
Iniciar Fechar
}
Quem sou eu? (){
Instrutor: Leinylson Fontinele Pereira
Bacharel em Ciência da Computação (em
conclusão)
Universidade Estadual do Piauí (UESPI)
Título: Utilização de Heurísticas
Bioinspiradas em Sistemas de Inteligência
Coletiva para Otimização de Roteamento de
Pacotes em Redes Mesh
}
O que veremos?
Bom minicurso a todos!
 Introdução: O que são jogos ?
 Evolução Histórica
 Mercado Nacional
 Etapas de Desenvolvimento de Jogos
 Dicas
}
O que faremos? (){
 Trabalho com animações;
Noções de temporização e simulação;
Desenho e utilização de imagens vetoriais (sprites) e som digitais (MID, samples);
Programação de efeitos gráficos;
Criação e manipulação de formas primitivas;
Realização de testes de detecção de colisões, bem com todos os passos para produzir
um jogo, da elaboração do enredo ao protótipo.
}
Atividade Multidisciplinar
. : : Pré-requisitos : : .
 Programação (estrutura de dados, IA, Manipulação de
ponteiros; Laços de repetição);
 Engenharia de Software;
 Computação Gráfica;
 Música;
 Matemática;
 Física;
 IHC;
 Educação e Psicologia.
}
Do que é feito um jogo?(){
. : : O Jogo : : .
 O jogo no nosso contexto é o jogo eletrônico, uma simulação visual e interativa exibida
numa tela.
 A interação é tal que o jogador deve ter algum objetivo específico como ir ou sair para
algum lugar , destruir algo, resolver um problema, etc.
Um jogo nos dá um controle sobre um personagem ou um objeto virtual, de modo que
possamos ter um controle e uma imersão no ambiente virtual que se aproxime do nosso
controle e imersão no ambiente real só que com regras e motivações diferentes.
. : : Gameficação : : .
 Termo muito utilizado por empresas que buscam difundir seus produtos através de
jogos/animações.
}
Do que é feito um jogo?(){
}
. : : O Jogador : : .
 Jogador é um participante do jogo.
 Um jogador pode ser uma pessoa real ou um jogador
controlado pelo próprio jogo. Sempre que nós nos
referirmos à um jogador , estaremos nos referindo a um
jogador real.
 A interação do jogo com o jogador é feito com
dispositivos de entrada e saída do jogo, geralmente a
tela e um controle.
 Na maioria das vezes, o jogador controla o
personagem central do jogo.
Do que é feito um jogo?(){
}
. : : Personagem : : .
 O personagem de um jogo de vídeo-game é
personagem fictício para que o jogador controle.
 Nos primeiros jogos o personagem era apenas uma
figura sem expressão, dotada de alguma característica
especial (andar , pular) e não possuíam uma história ou
motivação.
 O primeiro personagem de vídeo-game foi o Mario,
criado por Shigeru Miyamoto para a Nintendo.
 Com o tempo, os personagens de vídeo-game foram
incorporados à cultura-pop. Com mário surgiu o conceito
de mascote do jogo. Esse tipo de personagem carismático
agrega um grande valor por sua importância publicitária
graças a sua identificação com o público.
Do que é feito um jogo?(){
}
. : : Menus : : .
 Os menus são interfaces de texto e/ou imagens
onde o jogador deve fazer escolhas e ajustes.
Antes do jogo começar os menus servem para
fazer ajuste de preferenciais do jogo, escolha do tipo
de jogo, performance do hardware, etc.
 Dentro do jogo eles servem para fazer escolhas e
ajustes mais complexos.
Nem todo jogo precisa de menus dentro do jogo,
mas certamente vai precisar de um menu antes do
jogo começar .
Do que é feito um jogo?(){
}
Do que é feito um jogo?(){
}
. : : HUD : : .
 Sigla para Head Up Display. É um método de
representação visual de informações importantes para
o jogador. São como menus não interativos.
 Em geral eles exibem informações como munição,
life, arma selecionada, pontuação, dinheiro ou ítens.
 O HUD é desenhado por último na tela, de modo
que ele fique sempre visível para o jogador. Ele não
deve se mover muito ou conter palavras para que não
distraia o jogador .
 Ele deve ser sempre que possível iconográfico, ou
seja, usando imagens que representem a informação.
Do que é feito um jogo?(){
}
Do que é feito um jogo?(){
}
. : : Sprites : : .
O Desafio:
 Como causar a impresão de movimento dos personagens?
A Solução:
 Utilizaremos sprite, ou seja, um conjunto de dados que definem determinado objeto ou
personagem num jogo. Para uma pessoa, por exemplo, podemos ter um sprite que contenha as
posições vertical e horizontal dela no mundo, a direção para onde ela está virada e os bitmaps
que podem representá-la durante o jogo.
Do que é feito um jogo? (){
}
Do que é feito um jogo?(){
}
Do que é feito um jogo?(){
}
. : : Tileset: : .
 Consiste em agrupar várias imagens pequenas a fim de montar uma imagem grande.
Do que é feito um jogo?(){
}
. : : Som : : .
 Embora não sejam fundamentais no jogo, os sons existem nos jogos desde o primeiro jogo.
Os sons ajudam a caracterizar certas ações, aumentar o nível de imersão do jogador e deixa-lo
mais concentrado no jogo.
 Os sons podem ser construídos por sonoplastia. Deve-se ter em mente que diferentes sons
provocam diferentes efeitos sobre sensorialidade do jogador. Os sons ligados a uma ação ou
personagem não precisam ser os mesmos sons ligados a estes no mundo real. Pose-se usar
sons diversos afim de obter efeitos cômicos, criar tensões, força ou simplesmente obter
sensações agradáveis.
Do que é feito um jogo?(){
}
. : : Música : : .
 A música serve para se criar uma base para as imagens e os outros sons.
 Com a construção da música certa pode-se criar ambientes agradáveis, tensos, pode-se
deixar o jogador mais nervoso com uma música mais rápida e pode-se até usar o recurso do
silêncio para criar um clima de suspense.
 É sempre bom ter algum repertório de músicas no jogo, e ter músicas de duração
razoável, caso contrário as músicas podem ficar chatas e repetitivas.
 As músicas de jogos também criam um lembrança especial do jogo nos jogadores e cria
um sensação agradável ao se jogar .
Do que é feito um jogo?(){
}
. : : Física : : .
 Um jogo é uma simulação. Essa simulação é, na maioria das vezes, uma representação do
mundo em que vivemos. Essa representação, seja por limitações de software e hardware ou por
escolha estética, não contem todos os aspectos do mundo real. Porém um aspecto que quase
sempre está presente é o físico.
 Esse aspecto se manifesta principalmente na detecção de colisão.
 Se o objeto A depois que ele se mover colide em algo então faz alguma coisa.
 Essa alguma coisa pode variar de jogo para jogo. Pode ser que o objeto A seja um personagem
e o algo seja uma parede. Então o "faz alguma coisa” pode ser nada, ele bate na parede portanto
não anda, mas pode ser que o personagem tenho batido em algo que o machuque como o fogo,
então o "faz alguma coisa" pode ser tirar vida do jogador .
 Uma técnica de colisão bem simples e que vamo usar aqui é verificar se o retângulo que
envolve o sprite toca o retângulo que envolve o outro sprite:
Do que é feito um jogo?(){
}
Do que é feito um jogo?(){
}
Do que é feito um jogo?(){
. : : Finite State Machines : : .
}
Quem participa da criação? (){
Game Designer
Elabora os elementos do jogo bem como sua mecânica. Os elementos são
os personagens e o cenário e a mecânica são as possibilidades que o
jogador tem de interagir com o jogo. Empresas que elaboram jogos de
ponta modernos dividem as responsabilidades do game designer com
outros profissionais relacionados, sendo os principais, o combat designer
e o level designer.
Roteirista
Descreve como é a trama do jogo, o perfil psicológico dos personagens e
a interação entre eles, sendo a interação do tipo social e/ou psicológica, a
qual não necessariamente corresponde àquela entre o jogador e os
personagens do jogo.
Tester
Trabalha na equipe de Q&A (Quality Assurance - Controle de
qualidade). Testa diversos aspectos do jogo e relata os pontos falhos ou a
serem melhorados.
}
Quem participa da criação? (){
Programador
Elabora a programação do jogo. Desenvolve códigos para lidar com
AI, música, interação, etc. Com exceção de jogos independentes uma
empresa tem diversos programadores em seu elenco, sendo que cada
um é especializado numa área (rendering, ai, rede, etc…).
Engenheiro de software
Projeta os componentes de software do jogo envolvendo diversos
aspectos como a composição dos objetos, a interface deles, a
interrelação existente entre eles, etc.
Programador Web && Programador de redes = ¬¬ aff
Programador de AI
Responsável por programar os algoritmos de Inteligência Artificial
usados no jogo. Dentre estes algoritmos estão o de planejamento
estratégico de grupo num atirador de primeira pessoa, a montagem da
estratégia do time controlado pela CPU num jogo de esportes, o
planejamento de caminho para levar um personagem NPC de um
local ao outro, etc.
}
Quem participa da criação? (){
Engenheiro de som
Produz os efeitos sonoros e a música tema.
Level designer
Faz o projeto da fase em que o jogador se encontra. Quais
elementos compõem a fase, há a presença de alguma característica
distintiva no terreno como aclives, declives, montanhas, etc.
Combat Designer
Projeta como será o combate entre o jogador e o computador.
Quais são os elementos que devem estar presentes no combate,
qual o papel destes elementos (dano, cobertura, etc).
}
Equipe de desenvolvimento de jogos
}
Como é feito um jogo 2D? (){
. : : Plano Cartesiano (x,y): : .
}
Como é feito um jogo 2D? (){
}
Jogos 2D
}
Jogos 3D
}
Os bastidores de um jogo(){
Preparar os elementos. Nessa parte, o programa irá carregar o
necessário para sua execução (como imagens e sons), bem
como preparar as estruturas de dados usadas pelo mesmo.
Montar a primeira tela. Aqui o programa coloca cada elemento
em seu lugar inicial, de acordo com a vontade do
desenvolvedor.
Checar a situação atual do jogo, e aí criar uma nova
tela. Agora o programa deve preparar uma nova tela, levando
em conta a situação anterior do jogo e a(s) entrada(s) do
jogador. É aqui, por exemplo, que o programa checaria se o
quadrado que representa a cabeça da cobrinha está contido na
lista de quadrados que representam seu corpo, ou de forma
mais simples, se a cobrinha bateu nela mesma.
Repetir... Agora tudo o que resta é continuar esse processo de
calcular uma nova tela e mostra-la até que o jogo acabe.
}
Os bastidores de um jogo(){
}
O que são engines? (){
Definição: “É a ferramenta que se encarregará por entender como o hardware gráfico, irá
controlar os modelos para serem renderizados, tratará das entradas de dados do jogador,
tratará de todo o processamento de baixo nível e outras coisas que o desenvolvedor de jogos
normalmente não deseja fazer ou não tem tempo para se preocupar . ”
}
Engines (){
}
PyGame (){
 Você que sempre gostou de jogar e decidiu cursar Ciência da Computação para aprender
como é que aqueles games são feitos e logo se viu travando uma batalha para passar em Cálculo,
Álgebra Linear e Geometria Analítica.
 Certo, primeiro é preciso ficar claro que não estamos falando de um programinha a lá RPG
Maker no qual você "pinta" os mapinhas na tela e arrasta personagens pré-feitos para o jogo.
 O Pygame é um conjunto de módulos que você importa num código em Python, os quais lhe
disponibilizam uma série de funcionalidades auxiliares para criação de aplicativos multimídia
e games.
}
PyGame (){
Vários processadores podem ser usados facilmente.
O uso de vários núcleos adiciona um desempenho muito maior ao seu jogo.
As funções internas são implementadas em C e Assembly.
Código em C costuma ser de 10 a 20 vezes mais rápido que Python. Já Assembly tem uma
performance de mais de 100 vezes maior que Python.
Portátil mesmo.
Aplicativos programados em Pygame podem rodar tanto em plataformas Windows
quanto em Linux, Solaris, FreeBSD, Mac OS, Android, entre outros. O código ainda dá
suporte a Dreamcast e também pode ser usado em dispositivos móveis.
Simples!
O Pygame é usado no projeto OLPC para ensinar programação a crianças. Ao mesmo
tempo, também é a preferência de programadores experientes.
}
PyGame (){
}
Engines (){
}
Allegro (){
Allegro é uma biblioteca de funções para jogos 2D feita em C.
Apesar de ter algumas funções para jogos 3D ela não é indicada para isso, sendo no lugar
dela uma API3d como OpenGL ou DirectX
De acordo com a Companhia Oxford de Música, Allegro é o italiano para "rápido, vivo e
brilhante".
Ele também é um acrônimo recursivo que representa "Allegro Low Level Game Routines"
}
Cores (){
}
Allegro (){
int allegro_init()
Esta é a principal função, e deve obrigatoriamente ser chamada para uma aplicação
Allegro funcionar, lembre-se que a chamada desta função deve ser a primeira a ser feita,
antes de qualquer outra função Allegro.
Exemplo de uso: allegro_init();
PyGame: import pygame
from pygame.locals import*
int makecol( int iRed, int iGreen, int iBlue );
Passando-se os valores dos tons (que variam de 0 a 255), de vermelho, verde e azul, esta
função retorna o código da cor.
Exemplo de uso: makecol (255, 0, 0 );
PyGame: Realizada de forma similar
}
Allegro (){
void rest(unsigned int uiTime)
Interrompe a execução do programa durante um intervalo de tempo igual ao passado
como parâmetro, em milisegundos.
Exemplo de uso: rest (1000);
PyGame: Clock = pygame.time.Clock()
Clock.tick(int Time)
void textprintf_ex(BITMAP *bmp, FONT font, int iX, int iY, int iColor, int iCorDeFundo, char sTexto, ... );
Função para exibir um texto na tela, o sexto parâmetro deve ser -1 para um fundo transparente.
Exemplo de uso: textprintf_ex(screen, font, 10, 20, makecol(200, 200, 20), -1, "X vale : %d", 10 );
PyGame: Font = pygame.font.Font("font.ttf",128)
}
Allegro (){
void putpixel(BITMAP *bmp, int iX, int iY, int iColor)
Colore um pixel do bitmap, nas coordenadas especificadas no segundo parâmetro e terceiro
parâmetro, na cor passada no quarto parâmetro.
Exemplo de uso: putpixel(screen, 20, 300, makecol(0, 200, 30));
void getpixel(BITMAP *bmp, int iX, int iY, int iColor)
Recupera o valor da cor de um pixel do bitmap, nas coordenadas especificadas no segundo
parâmetro e terceiro parâmetro, na cor passada no quarto parâmetro.
Exemplo de uso: int iPixelColor = getpixel(screen, 20, 300, makecol(0, 200, 30 ));
void floodfill(BITMAP *bmp, int iX, int iY, int iColor);
Preenche um bitmap com a cor especificada, em um espaço fechado, a partir do ponto X e Y.
Exemplo de uso: floodfill (screen, 20, 30, makecol(20, 60, 300));
}
Allegro (){
void vline(BITMAP *bmp, int iX, int iY1, int iY2, int iColor);
void hline(BITMAP *bmp, int iX1, int iY, int iX2, int iColor);
void line(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor);
A primeira função desenha uma linha vertical, a segunda função desenha uma linha horizontal e
a ultima função desenha uma linha entre 2 pontos quaisquer.
Exemplo de uso: line (screen, 20, 300, 400, 500, makecol(20, 60, 300));
void rect(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor);
void rectfill(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor);
A primeira função desenha um retângulo sem preenchimento, com o contorno colorido, enquanto
a segunda função desenha um retângulo com preenchimento.
Exemplo de uso: rectfill (screen, 20, 300, 400, 500, makecol(20, 60, 300));
}
Allegro (){
void circle(BITMAP *bmp, int iX, int iY, int iRaio, int iColor);
void circlefill(BITMAP *bmp, int iX, int iY, int iRaio, int iColor);
A primeira função desenha um círculo sem preenchimento, com o contorno colorido, enquanto a
segunda função desenha um círculo com preenchimento.
Exemplo de uso: circlefill (screen, 20, 300, 10, makecol(20, 60, 300));
void ellipse(BITMAP *bmp, int iX, int iY, int iXRaio, int iYRaio, int iColor);
void ellipsefill(BITMAP *bmp, int iX, int iY, int iXRaio, int iYRaio, int iColor);
A primeira função desenha uma elipse sem preenchimento, com o contorno colorido, enquanto a
segunda função desenha uma elipse com preenchimento.
Exemplo de uso: ellipsefill (screen, 20, 300, 5, 10, makecol(20, 60, 300));
 Biblioteca para construção de jogos e aplicações multimídia em geral
 Free Source
 Voltada mais especialmente para jogos 2D
 Conhecida pela facilidade de adicionar entrada de dados via teclado, mouse e joystick.
 Suporta arquivos de configuração e de dados comprimidos
 Temporizadores
 Grande comunidade de desenvolvedores
Allegro (){
 Multi-plataforma
 DOS
 Windows
 Linux
 Mac (OS X)
 BeOS
 QNX
 Primitivas Gráficas
 Rectas, círculos, elipses
 Polígonos (sólidos, texturados, transparentes)
 Texto em modo gráfico
 Animações
Allegro (){
 Incluir <allegro.h> depois de todos os demais includes
 Deve sempre aparecer uma chamada à função allegro_init() o mais perto possível do início
do programa.
 Da mesma forma devem ser chamadas, a seguir, as funções install_keyboard(),
install_mouse() e install_timer().
 A função allegro_exit() deve ser chamada no final do programa.
 Colocar a macro END_OF_MAIN() logo após a chave final da rotina main()
 Ao compilar, incluir a biblioteca alleg:
 gcc -o test test.c –lalleg
Allegro (){
 Especificado antes de começar a desenhar:
int set_gfx_mode (int card, int w, int h, int v_w, int v_h);
 Onde:
 card é usualmente GFX_AUTODETECT, GFX_AUTODETECT_FULLSCREEN ou
GFX_AUTODETECT_WINDOWED
 w , h largura e altura
 v_w , v_h largura e altura virtual (normalmente, 0)
Allegro (){
 Bitmaps são matrizes de pixels, em que cada valor indica uma cor
 Tela é um BITMAP especial chamado screen
 BITMAPs adicionais podem ser criados com:
 BITMAP *bmp = create_bitmap(int width, int height);
Allegro (){
. : : Periféricos de Entrada – Teclado : : .
 Teclado
 install_keyboard()
 /* Para inicializar as rotinas do teclado */
KEY_ALTGRAlt Direito
KEY_ALTAlt esquerdo
KEY_RCONTROLControl Direito
KEY_LCONTROLControl Esquerdo
KEY_RSHIFTShift Direito
KEY_LSHIFTShitf Esquerdo
KEY_PRTSCRPrint Screen
KEY_SPACEBarra de Espaço
KEY_PAUSEPause
KEY_DOWNSeta para Baixo
KEY_UPSeta para Cima
KEY_LEFTSeta para a Esquerda
KEY_RIGHTSeta para a Direita
KEY_ENTEREnter
KEY_ESCEsc
KEY_0 ... KEY_9Teclado Normal 0 a 9
KEY_0_PAD ... KEY_9_PADTeclado Numérico 0 a 9
KEY_A, KEY_B...KEY_ZA, B ... Z
Código na ArrayTecla
 Váriável global int key[]
 permite ver quais teclas estão
pressionadas.
 constantes definidas para identificar
cada tecla
Allegro (){
 install_mouse() /* Para inicializar as rotinas do mouse */
 Retorna -1 em caso de falha ou o número de botões que o mouse tem em caso de sucesso
. : : Periféricos de Entrada – Mouse : : .
 Usa-se a função show_mouse para que o cursor do mouse seja mostrado no bitmap especificado
 Passando NULL como parâmetro esconde o cursor do mouse
 Deve-se ter cuidado ao desenhar algo na tela pois o cursor do mouse pode passar por cima e
estragar o desenho, por isso é sempre bom escondê-lo antes de desenhar qualquer coisa

Allegro (){
 As variáveis mouse_x e mouse_y contêm a posição do cursor do mouse na tela.
 A variável mouse_b contém o estado dos botões.
 (mouse_b & 1) é verdadeiro se o botão esquerdo estiver pressionado.
 (mouse_b & 2) é verdadeiro se o botão direito estiver pressionado.
 Som digital: WAV. Música: MID.
 Antes de se tocar um som digital ou música deve-se carregá-los da seguinte forma:
/* declaração das variáveis que guardarão sons e músicas */
SAMPLE *som1; /* SAMPLE = arquivos de som digital */
MIDI *musica; /* MIDI = arquivos de música */
/* carrega os arquivos usando-se as respectivas funções */
som1 = load_wav(“arquivo.wav”); /* para arquivos wav */
musica = load_midi(“arquivo.mid”); /* para arquivos mid */
 Ponteiro nulo -> arquivo não encontrado.
Allegro - Som (){
 Para tocar uma música usa-se a função play_midi. O primeiro parâmetro é o arquivo
MIDI carregado, o segundo indica se ele tocará em loop ou não.
/* Exemplo para tocar um arquivo MIDI */
MIDI *musica; /* declaração da variável a ser usada */
musica = load_midi(“musica.mid”); /* carrega arquivo */
play_midi(musica,TRUE); /* toca a música em loop */
 Para parar de tocar uma música usa-se a função stop_midi().
Som – MIDI’s (){
 Para tocar um som digital usa-se a função play_sample. Os cinco parâmetros indicam:
arquivo carregado, volume (0 a 255), equilíbrio entre as caixas (0 a 255, 128 é meio a meio),
freqüência (1000 usa a frequência original, 500 usa a metade da freqüência original etc.) e se
vai ser tocado em loop
 Função stop_sample() pára de tocar
/* Exemplo para tocar um arquivo de som WAV */
SAMPLE *som; /* declaração da variável a ser usada */
som = load_wav(“som.wav”); /* carrega arquivo */
play_midi(musica,255,128,1000,FALSE); /* toca som */
Som - Samples (){
 Executar pedaço de código em velocidades diferentes
Para isso, colocar cada um dos trechos de código numa função diferente
 Allegro só permite o uso de 16 timers
 int install_int(void (*proc)(), int speed) /* cria timer */
 install_timer(); /*inicializa timer, opcional */
 void remove_int(void (*proc)()) /* remove função da lista */
 Notas:
 Todas variáveis globais acessadas nos timers devem ser trancadas com a macro
LOCK_VARIABLE()
 Todas as funções de "timer" devem ser trancadas com
 LOCK_FUNCTION()
 speed representa milésimos de segundo
Timming no Allegro (){
}
Etapas de elaboração de um jogo (){
 Idéia
 Rascunho do jogo
 Detalhamento do jogo
 Game Design Document (GDD)
 Produção de áudio e imagens 2D
 Desenv. de artefatos computacionais
(engines)
 Integração (arte e computação)
}
Idéia (){
 Muitas idéias vem dos sonhos.
 Surgem de pequenos conceitos expandidos em Brainstorm.
 Grandes idéias poder parecer ridículas no começo.
}
Rascunho do jogo (){
 Personagens, fases, itens com pequenas descrições.
 Fluxo das telas do jogo e menus.
}
Detalhamento do jogo (){
 O que o jogador fará no jogo ?
 Quantos inimigos o herói vai enfrentar ? Como eles são ?
 Quais as armas disponíveis que o jogador poderá usar ?
 Como será o sistema de vida do jogador ?
 Qual o objetivo do jogo ? Quantas fases terá ? Como elas
serão (cenário, inimigos, dificuldade, etc) ?
 Quantos jogadores poderão jogar o jogo ?
 Qual o tipo de visualização gráfica ?
 Qual o tipo de trilha sonora ?
}
Game Design Document (GDD){
 Conceito:
– Nome do jogo, público alvo, história, regras...
 Especificações técnicas:
– Hardware, sistema operacional...
 Especificações do jogo:
– Número de fases, personagens, itens, cenários...
 Dispositivo de entrada:
– Mouse, teclado...
 Design gráfico e arte:
– Abertura, layout de menus e telas, final do jogo...
 Sonorização:
– Músicas nos menus, músicas nas fases...
 Desenvolvimento:
– Tempo de desenvolvimento, alocação de pessoas...
}
Programação de Jogos (){
. : : Algumas Técnicas : : .
 Animação com Double Buffering
 Scrolling
 Sprites
 Detecção de Colisão
 Dar a impressão de que coisas se movem
 Pode significar mover um pixel ao longo da tela mas, geralmente, significa uma
mudança repetitiva da apresentação de algo para que dê a ideia de que se move.
 Qual a técnica mais simples?
 limpamos a tela, desenhamos os objetos, limpamos a tela novamente, desenhamos
os objetos nas novas posições.
Animação (){
}
Double Buffering (){
O Problema:
 Quando vamos fazer animações usando o Allegro, surgem alguns problemas relacionados
aos vários métodos que podem ser utilizados. O método mais simples que podemos imaginar é
aquele em que limpamos a tela, desenhamos os objetos, limpamos a tela novamente,
desenhamos os objetos nas novas posições, e assim por diante. Este método, porém, tem um
grave problema: a tela pisca a cada limpeza.
A Solução:
 Dispomos de um bitmap auxiliar (chamado de buffer) que, normalmente, possui o tamanho
da tela (ou o tamanho da região onde ocorre a animação). Desenhamos, neste buffer, os objetos
que devem ser apresentados na tela. Após isso, desenhamos o conteúdo do buffer na tela,
fazendo com que os objetos apareçam. Limpamos, então, o buffer, desenhamos os objetos
novamente em suas novas posições, passamos o conteúdo do buffer para a tela, e assim por
diante.
 Qual o problema desta técnica?
Efeito Flicker - efeito de cintilação ou vibração de uma imagem na tela do computador
Instante 1 Instante 2: Limpar a tela Instante 3
Double Buffering (){
 Qual a solução?
Instante 2: Limpar a telaInstante 1 Instante 3
Buffer
Instante 1 Instante 3
Tela
Instante 2
Efeito Flicker (){
}
Scrolling (){
O Problema:
 Como dar movimento ao personagem e aos objetos envolvidos?
A Solução:
 Movimento de cenário. O scrolling consiste em movimentar o fundo do cenário e,
normalmente, deixar o personagem controlado parado, o que causa uma sensação de
movimento. O scrolling pode ser horizontal, vertical ou em ambas as direções.
 O exemplo demonstra como utilizar o scrolling, desenhado um boneco (parado) no meio da
tela, enquanto o fundo se move de baixo para cima, fazendo com que tenhamos a sensação de
que o boneco está caindo.
}
Parallax Scrolling (){
O Problema:
 Como causar a sensação de profundidade presente em jogos 3D?
A Solução:
 Utilizar vários fundos que se movimentam em velocidades diferentes.
O exemplo demonstrará um parallax scrolling horizontal.
}
Detecção de Colisão (){
O Problema:
 Como verificar se dois sprites estão sobrepostos, ou seja, se houve uma colisão?
A Solução:
 Existe o método que chamamos de força bruta (checar cada ponto de um sprite com cada
ponto de outro sprite) qué é ineficiente, a maior parte dos outros métodos são aproximativos.
Veremos o principal deles, que consiste em dividir os sprites em retângulos, de forma que
possamos verificar se cada retângulo está ou não sobreposto a outro.
Fazer com que o sprite tenha sua movimentação limitada às bordas do nosso jogo não deixa
de ser uma forma de detecção de colisão, bem simples, é verdade. Porém, em jogos 2D,
geralmente se deseja realizar detecção de colisão entre dois ou mais sprites no jogo.
}
Detecção de Colisão (){
. : : Colisão entre Esferas : : .
Contudo, apesar do sistema de detecção de colisões estar utilizando o algoritmo do bouncing
box, depois de alguns testes você perceberá um problema. Se os sprites colidirem
diagonalmente, eles irão colidir antes de atingirem um ao outro de verdade. Isso está ocorrendo
justamente por utilizarmos caixas para representar a forma geométrica das esferas.
Quando queremos testar colisões entre esferas, teremos que verificar se a distância entre os
centros delas são menores que a soma dos seus raios. Em caso positivo, então uma colisão
ocorreu. Essa é a forma mais eficiente de detectar colisões entre duas esferas.
Para detectar a colisão entre duas formas circulares, usamos o teorema de Pitágoras:
(r2 = x2 + y2)
}
Detecção de Colisão (){
. : : Colisão entre Esferas : : .
A soma dos quadrados dos dois lados (hipotenusa
ao quadrado) é menor ou igual que o quadrado da
soma dos raios das duas formas (que no fundo, é
como se fosse o quadrado de um dos lados), mais o
quadrado da soma dos raios das duas formas (que
no fundo, é como se fosse o quadrado do lado
restante. Esta "grande" soma, é como se fosse uma
segunda hipotenusa ao quadrado.). Básicamente,
quando a distância entre as duas formas (ao
quadrado) for igual ou menor que a soma dos dois
raios (ao quadrado), dá-se a colisão..
}
Detecção de Colisão (){
. : : Colisão entre Esferas : : .
If ((formx*formx + formy*formy) <= ((rad1 + rad2)*(rad1 + rad2)) + ((rad1 + rad2)*(rad1 + rad2)))
"/:collission" = "Sim"
Else "/:collission" = "Não"
End If
}
Mercado Nacional
}
Dicas – Produção & Pesquisa (){
 Som
– Sound Forge: produção de trilhas e efeitos sonoros.
– Cubase: mixagem de canais MIDI
– Audacity: permitir criar áudio, inclusive combinar diferentes canais de som.
 Imagens 2D
– Tiles
– Bricks
– Layers
– Sprites
}
Dicas – O que fazer ? (){
 Estudar muito !
 Conhecer as novidades no mundo dos jogos
 Jogar bastante e diferentes tipos de jogos
 Buscar fazer contatos
 Participar de eventos relacionados
 Começar a desenvolver jogos fáceis:
– Pong, Arkanoid, Space Invaders, Tetris, Pacman...
}
Dicas – Livros Nacional (){
}
Dicas – Livros Internacionais (){
}
Dicas – Sites (){
 Abragames
– http://www.abragames.org/
 BRGames
– http://www.brgames2009.com.br/
 PDJ
– http://www.programadoresdejogos.com/
 UNIDEV
– http://www.unidev.com.br/
 GameDevBr
– http://www.gamedevbr.com/
 Gamasutra
– http://www.gamasutra.com
 SharpGames
– http://www.sharpgames.net/
 Ponto V
– http://vinigodoy.wordpress.com/
}
Dicas – Eventos (){
 SBGames – (Simpósio Brasileiro de Jogos e Entretenimento Digital)
 SCGames – (Simpósio Santa Catarina Games)
 IGN - (Independent Game Festival)
– http://www.igf.com/
 Campus Party
– http://campus-party.com.br/
}
Dicas – Competições (){
XNA Game Challenge
– http://www.xnachallenge.com.br/
 Dream Build Play
– http://www.dreambuildplay.com
 Imagine cup
– http://imaginecup.com/
 Maratona de Programação
– http://maratona.ime.usp.br/
}
Dicas – Links interessantes (){
Gráficos:
– http://www.tilemap.co.uk/
– http://reinerstileset.4players.de/
– http://www.hippydrome.com/
 Músicas e Efeitos sonoros:
– http://www.flashkit.com/soundfx/
– http://www.findsounds.com/
 Fonts:
– http://www.1001freefonts.com/
 The game loop:
– http://dewitters.koonsolo.com/gameloop.html
 Game Engines:
– http://www.devmaster.net/engines/
}
Isso é tudo, pessoal! (){
eof 
}
Referências (){
Introdução ao Desenvolvimento de Jogos, Kleber de Oliveira Andrade.
Game Level Design, disponível em: http://www.gamasutra.com/view/feature/175950/the_fundamental_pillars_of_a_.php
McGugan, Will, “Beginning Game Development with Python and Pygame”, 2007.
“PyGameLib”, http://www.pygame.org/, Outubro.

Mais conteúdo relacionado

Mais procurados

Aula 05 - Como funciona o Computador
Aula 05 - Como funciona o ComputadorAula 05 - Como funciona o Computador
Aula 05 - Como funciona o ComputadorSuzana Viana Mota
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
DETALHAMENTO PRE Itinerário Formativo 2022 (3).pdf
DETALHAMENTO PRE Itinerário Formativo 2022 (3).pdfDETALHAMENTO PRE Itinerário Formativo 2022 (3).pdf
DETALHAMENTO PRE Itinerário Formativo 2022 (3).pdfRoberto Cesar
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareSuzana Viana Mota
 
Aula 10 - Adição no Sistema Binário
Aula 10 - Adição no Sistema BinárioAula 10 - Adição no Sistema Binário
Aula 10 - Adição no Sistema BinárioSuzana Viana Mota
 
Apresentação dos comandos básicos do Scratch
Apresentação dos comandos básicos do ScratchApresentação dos comandos básicos do Scratch
Apresentação dos comandos básicos do ScratchCecifm
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
Material aula informática básica
Material aula informática básicaMaterial aula informática básica
Material aula informática básicaCarlos Melo
 
Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Vitor Hugo Melo Araújo
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Guilherme Nonino Rosa
 
Aulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleAulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleJocelma Rios
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
1ª lista de exercícios de pesquisa operacional com gabarito
1ª lista de exercícios de pesquisa operacional   com gabarito1ª lista de exercícios de pesquisa operacional   com gabarito
1ª lista de exercícios de pesquisa operacional com gabaritoAntonio Rodrigues
 

Mais procurados (20)

Matrizes
MatrizesMatrizes
Matrizes
 
Aula 05 - Como funciona o Computador
Aula 05 - Como funciona o ComputadorAula 05 - Como funciona o Computador
Aula 05 - Como funciona o Computador
 
Estatística básica
Estatística básicaEstatística básica
Estatística básica
 
Matematica Financeira
Matematica FinanceiraMatematica Financeira
Matematica Financeira
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
DETALHAMENTO PRE Itinerário Formativo 2022 (3).pdf
DETALHAMENTO PRE Itinerário Formativo 2022 (3).pdfDETALHAMENTO PRE Itinerário Formativo 2022 (3).pdf
DETALHAMENTO PRE Itinerário Formativo 2022 (3).pdf
 
Matematica Basica
Matematica BasicaMatematica Basica
Matematica Basica
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Aula 10 - Adição no Sistema Binário
Aula 10 - Adição no Sistema BinárioAula 10 - Adição no Sistema Binário
Aula 10 - Adição no Sistema Binário
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Mercado de trabalho
Mercado de trabalhoMercado de trabalho
Mercado de trabalho
 
Apresentação dos comandos básicos do Scratch
Apresentação dos comandos básicos do ScratchApresentação dos comandos básicos do Scratch
Apresentação dos comandos básicos do Scratch
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Material aula informática básica
Material aula informática básicaMaterial aula informática básica
Material aula informática básica
 
Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1
 
Aulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleAulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de Boole
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Linguagem de programacao
Linguagem de programacaoLinguagem de programacao
Linguagem de programacao
 
1ª lista de exercícios de pesquisa operacional com gabarito
1ª lista de exercícios de pesquisa operacional   com gabarito1ª lista de exercícios de pesquisa operacional   com gabarito
1ª lista de exercícios de pesquisa operacional com gabarito
 

Destaque

Lua para Jogos
Lua para JogosLua para Jogos
Lua para JogosDavid Ruiz
 
Paradigmas de Linguagens de Programacao - Aula #6
Paradigmas de Linguagens de Programacao - Aula #6Paradigmas de Linguagens de Programacao - Aula #6
Paradigmas de Linguagens de Programacao - Aula #6Ismar Silveira
 
Paradigmas de Linguagens de Programacao - Aula #7
Paradigmas de Linguagens de Programacao - Aula #7Paradigmas de Linguagens de Programacao - Aula #7
Paradigmas de Linguagens de Programacao - Aula #7Ismar Silveira
 
Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5Ismar Silveira
 
Paradigmas de Linguagens de Programacao - Aula #4
Paradigmas de Linguagens de Programacao - Aula #4Paradigmas de Linguagens de Programacao - Aula #4
Paradigmas de Linguagens de Programacao - Aula #4Ismar Silveira
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Ismar Silveira
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio Spanhol
 
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoComputação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoTony Alexander Hild
 
Paradigmas de Linguagens de Programacao- Aula #8
Paradigmas de Linguagens de Programacao- Aula #8Paradigmas de Linguagens de Programacao- Aula #8
Paradigmas de Linguagens de Programacao- Aula #8Ismar Silveira
 
Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9Ismar Silveira
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Ismar Silveira
 
Apostila sistema operacional cor capa ficha 2011 02 04
Apostila sistema operacional cor capa ficha 2011 02 04Apostila sistema operacional cor capa ficha 2011 02 04
Apostila sistema operacional cor capa ficha 2011 02 04MatheusRpz
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Ismar Silveira
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - ApresentaçãoLeinylson Fontinele
 
Introducao ambiente windows
Introducao ambiente windowsIntroducao ambiente windows
Introducao ambiente windowsMatheusRpz
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogoselliando dias
 

Destaque (20)

Jogos, Computação e Robótica
Jogos, Computação e RobóticaJogos, Computação e Robótica
Jogos, Computação e Robótica
 
Lua para Jogos
Lua para JogosLua para Jogos
Lua para Jogos
 
Paradigmas de Linguagens de Programacao - Aula #6
Paradigmas de Linguagens de Programacao - Aula #6Paradigmas de Linguagens de Programacao - Aula #6
Paradigmas de Linguagens de Programacao - Aula #6
 
Paradigmas de Linguagens de Programacao - Aula #7
Paradigmas de Linguagens de Programacao - Aula #7Paradigmas de Linguagens de Programacao - Aula #7
Paradigmas de Linguagens de Programacao - Aula #7
 
Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5
 
Paradigmas de Linguagens de Programacao - Aula #4
Paradigmas de Linguagens de Programacao - Aula #4Paradigmas de Linguagens de Programacao - Aula #4
Paradigmas de Linguagens de Programacao - Aula #4
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
 
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoComputação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
 
Paradigmas de Linguagens de Programacao- Aula #8
Paradigmas de Linguagens de Programacao- Aula #8Paradigmas de Linguagens de Programacao- Aula #8
Paradigmas de Linguagens de Programacao- Aula #8
 
Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9
 
E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10
 
Apostila sistema operacional cor capa ficha 2011 02 04
Apostila sistema operacional cor capa ficha 2011 02 04Apostila sistema operacional cor capa ficha 2011 02 04
Apostila sistema operacional cor capa ficha 2011 02 04
 
A Internet das Coisas
A Internet das CoisasA Internet das Coisas
A Internet das Coisas
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - Apresentação
 
Introducao ambiente windows
Introducao ambiente windowsIntroducao ambiente windows
Introducao ambiente windows
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogos
 

Semelhante a Criação de Jogos 2D com Técnicas 3D Utilizando Python e C

Palestra Game Design
Palestra Game DesignPalestra Game Design
Palestra Game Designvincevader
 
Workshop Fischer
Workshop FischerWorkshop Fischer
Workshop Fischervincevader
 
Palestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de JogosPalestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de Jogosjuliocoopergames
 
Palestra Introdução ao Game Design
Palestra Introdução ao Game DesignPalestra Introdução ao Game Design
Palestra Introdução ao Game DesignLeonardo Zamprogno
 
Games e inovacao tecnologica
Games e inovacao tecnologicaGames e inovacao tecnologica
Games e inovacao tecnologicaAlexsandro
 
Criação de jogos game maker - férias
Criação de jogos   game maker - fériasCriação de jogos   game maker - férias
Criação de jogos game maker - fériasInstituto Inovar
 
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...Impacta Eventos
 
Introdução sobre desenvolvimento de games
Introdução sobre desenvolvimento de gamesIntrodução sobre desenvolvimento de games
Introdução sobre desenvolvimento de gamesRodrigo Rodrigues
 
Game Design para quem não é Game Designer
Game Design para quem não é Game DesignerGame Design para quem não é Game Designer
Game Design para quem não é Game DesignerAndré Kishimoto
 
6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio Upload6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio UploadKao Tokio
 
Game Design intro kao tokio unibero 2010
Game Design intro kao tokio unibero 2010Game Design intro kao tokio unibero 2010
Game Design intro kao tokio unibero 2010Kao Tokio
 
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso UnipDesenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso Unipjonathanblacknight
 
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Potiguar Indie Games
 
Desenvolvimento e Post-mortem - "Ataque às Mulheres"
Desenvolvimento e Post-mortem - "Ataque às Mulheres"Desenvolvimento e Post-mortem - "Ataque às Mulheres"
Desenvolvimento e Post-mortem - "Ataque às Mulheres"André Kishimoto
 
Frameworks Formais de Game Design.
Frameworks Formais de Game Design.Frameworks Formais de Game Design.
Frameworks Formais de Game Design.Pedro Emil Freme
 
4 game design_atomos_do_game_unibero_2010
4 game design_atomos_do_game_unibero_20104 game design_atomos_do_game_unibero_2010
4 game design_atomos_do_game_unibero_2010Kao Tokio
 

Semelhante a Criação de Jogos 2D com Técnicas 3D Utilizando Python e C (20)

Palestra Game Design
Palestra Game DesignPalestra Game Design
Palestra Game Design
 
Workshop Fischer
Workshop FischerWorkshop Fischer
Workshop Fischer
 
Palestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de JogosPalestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de Jogos
 
Palestra Introdução ao Game Design
Palestra Introdução ao Game DesignPalestra Introdução ao Game Design
Palestra Introdução ao Game Design
 
Games e inovacao tecnologica
Games e inovacao tecnologicaGames e inovacao tecnologica
Games e inovacao tecnologica
 
Cp game design
Cp game designCp game design
Cp game design
 
Criação de jogos game maker - férias
Criação de jogos   game maker - fériasCriação de jogos   game maker - férias
Criação de jogos game maker - férias
 
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
 
Curso Dia 02
Curso Dia 02Curso Dia 02
Curso Dia 02
 
Introdução sobre desenvolvimento de games
Introdução sobre desenvolvimento de gamesIntrodução sobre desenvolvimento de games
Introdução sobre desenvolvimento de games
 
Game Design para quem não é Game Designer
Game Design para quem não é Game DesignerGame Design para quem não é Game Designer
Game Design para quem não é Game Designer
 
6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio Upload6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio Upload
 
Game Design intro kao tokio unibero 2010
Game Design intro kao tokio unibero 2010Game Design intro kao tokio unibero 2010
Game Design intro kao tokio unibero 2010
 
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso UnipDesenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
 
Apostila Jogos
Apostila Jogos Apostila Jogos
Apostila Jogos
 
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
 
Desenvolvimento e Post-mortem - "Ataque às Mulheres"
Desenvolvimento e Post-mortem - "Ataque às Mulheres"Desenvolvimento e Post-mortem - "Ataque às Mulheres"
Desenvolvimento e Post-mortem - "Ataque às Mulheres"
 
Frameworks Formais de Game Design.
Frameworks Formais de Game Design.Frameworks Formais de Game Design.
Frameworks Formais de Game Design.
 
4 game design_atomos_do_game_unibero_2010
4 game design_atomos_do_game_unibero_20104 game design_atomos_do_game_unibero_2010
4 game design_atomos_do_game_unibero_2010
 
Prototipação de Jogos
Prototipação de JogosPrototipação de Jogos
Prototipação de Jogos
 

Mais de Leinylson Fontinele

Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoAula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoLeinylson Fontinele
 
Aula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaAula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaLeinylson Fontinele
 
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Leinylson Fontinele
 
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Leinylson Fontinele
 
Aula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesAula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesLeinylson Fontinele
 
A história da Segurança da Informação
A história da Segurança da InformaçãoA história da Segurança da Informação
A história da Segurança da InformaçãoLeinylson Fontinele
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaLeinylson Fontinele
 
Aula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaAula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaLeinylson Fontinele
 

Mais de Leinylson Fontinele (20)

Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Prática com slide.pptx
Prática com slide.pptxPrática com slide.pptx
Prática com slide.pptx
 
A galinha carijó
A galinha carijóA galinha carijó
A galinha carijó
 
Descrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzleDescrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzle
 
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoAula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramento
 
Aula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaAula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurança
 
Aula 02 - Agentes Inteligentes
Aula 02 - Agentes InteligentesAula 02 - Agentes Inteligentes
Aula 02 - Agentes Inteligentes
 
Aula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IAAula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IA
 
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
 
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
 
Aula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesAula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informações
 
A história da Segurança da Informação
A história da Segurança da InformaçãoA história da Segurança da Informação
A história da Segurança da Informação
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. Costa
 
Caso 1 - Boing 777
Caso 1 - Boing 777Caso 1 - Boing 777
Caso 1 - Boing 777
 
Caso 2 - Aeroporto de Denver
Caso 2 - Aeroporto de DenverCaso 2 - Aeroporto de Denver
Caso 2 - Aeroporto de Denver
 
Aula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaAula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de busca
 
Aula 01 - Visão geral da IA
Aula 01 - Visão geral da IAAula 01 - Visão geral da IA
Aula 01 - Visão geral da IA
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequenciaAula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequencia
 

Último

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...AndreaCavalcante14
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxIlda Bicacro
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 

Último (20)

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 

Criação de Jogos 2D com Técnicas 3D Utilizando Python e C

  • 2. } Quem sou eu? (){ Instrutor: Leinylson Fontinele Pereira Bacharel em Ciência da Computação (em conclusão) Universidade Estadual do Piauí (UESPI) Título: Utilização de Heurísticas Bioinspiradas em Sistemas de Inteligência Coletiva para Otimização de Roteamento de Pacotes em Redes Mesh
  • 3. } O que veremos? Bom minicurso a todos!  Introdução: O que são jogos ?  Evolução Histórica  Mercado Nacional  Etapas de Desenvolvimento de Jogos  Dicas
  • 4. } O que faremos? (){  Trabalho com animações; Noções de temporização e simulação; Desenho e utilização de imagens vetoriais (sprites) e som digitais (MID, samples); Programação de efeitos gráficos; Criação e manipulação de formas primitivas; Realização de testes de detecção de colisões, bem com todos os passos para produzir um jogo, da elaboração do enredo ao protótipo.
  • 5. } Atividade Multidisciplinar . : : Pré-requisitos : : .  Programação (estrutura de dados, IA, Manipulação de ponteiros; Laços de repetição);  Engenharia de Software;  Computação Gráfica;  Música;  Matemática;  Física;  IHC;  Educação e Psicologia.
  • 6. } Do que é feito um jogo?(){ . : : O Jogo : : .  O jogo no nosso contexto é o jogo eletrônico, uma simulação visual e interativa exibida numa tela.  A interação é tal que o jogador deve ter algum objetivo específico como ir ou sair para algum lugar , destruir algo, resolver um problema, etc. Um jogo nos dá um controle sobre um personagem ou um objeto virtual, de modo que possamos ter um controle e uma imersão no ambiente virtual que se aproxime do nosso controle e imersão no ambiente real só que com regras e motivações diferentes. . : : Gameficação : : .  Termo muito utilizado por empresas que buscam difundir seus produtos através de jogos/animações.
  • 7. } Do que é feito um jogo?(){
  • 8. } . : : O Jogador : : .  Jogador é um participante do jogo.  Um jogador pode ser uma pessoa real ou um jogador controlado pelo próprio jogo. Sempre que nós nos referirmos à um jogador , estaremos nos referindo a um jogador real.  A interação do jogo com o jogador é feito com dispositivos de entrada e saída do jogo, geralmente a tela e um controle.  Na maioria das vezes, o jogador controla o personagem central do jogo. Do que é feito um jogo?(){
  • 9. } . : : Personagem : : .  O personagem de um jogo de vídeo-game é personagem fictício para que o jogador controle.  Nos primeiros jogos o personagem era apenas uma figura sem expressão, dotada de alguma característica especial (andar , pular) e não possuíam uma história ou motivação.  O primeiro personagem de vídeo-game foi o Mario, criado por Shigeru Miyamoto para a Nintendo.  Com o tempo, os personagens de vídeo-game foram incorporados à cultura-pop. Com mário surgiu o conceito de mascote do jogo. Esse tipo de personagem carismático agrega um grande valor por sua importância publicitária graças a sua identificação com o público. Do que é feito um jogo?(){
  • 10. } . : : Menus : : .  Os menus são interfaces de texto e/ou imagens onde o jogador deve fazer escolhas e ajustes. Antes do jogo começar os menus servem para fazer ajuste de preferenciais do jogo, escolha do tipo de jogo, performance do hardware, etc.  Dentro do jogo eles servem para fazer escolhas e ajustes mais complexos. Nem todo jogo precisa de menus dentro do jogo, mas certamente vai precisar de um menu antes do jogo começar . Do que é feito um jogo?(){
  • 11. } Do que é feito um jogo?(){
  • 12. } . : : HUD : : .  Sigla para Head Up Display. É um método de representação visual de informações importantes para o jogador. São como menus não interativos.  Em geral eles exibem informações como munição, life, arma selecionada, pontuação, dinheiro ou ítens.  O HUD é desenhado por último na tela, de modo que ele fique sempre visível para o jogador. Ele não deve se mover muito ou conter palavras para que não distraia o jogador .  Ele deve ser sempre que possível iconográfico, ou seja, usando imagens que representem a informação. Do que é feito um jogo?(){
  • 13. } Do que é feito um jogo?(){
  • 14. } . : : Sprites : : . O Desafio:  Como causar a impresão de movimento dos personagens? A Solução:  Utilizaremos sprite, ou seja, um conjunto de dados que definem determinado objeto ou personagem num jogo. Para uma pessoa, por exemplo, podemos ter um sprite que contenha as posições vertical e horizontal dela no mundo, a direção para onde ela está virada e os bitmaps que podem representá-la durante o jogo. Do que é feito um jogo? (){
  • 15. } Do que é feito um jogo?(){
  • 16. } Do que é feito um jogo?(){
  • 17. } . : : Tileset: : .  Consiste em agrupar várias imagens pequenas a fim de montar uma imagem grande. Do que é feito um jogo?(){
  • 18. } . : : Som : : .  Embora não sejam fundamentais no jogo, os sons existem nos jogos desde o primeiro jogo. Os sons ajudam a caracterizar certas ações, aumentar o nível de imersão do jogador e deixa-lo mais concentrado no jogo.  Os sons podem ser construídos por sonoplastia. Deve-se ter em mente que diferentes sons provocam diferentes efeitos sobre sensorialidade do jogador. Os sons ligados a uma ação ou personagem não precisam ser os mesmos sons ligados a estes no mundo real. Pose-se usar sons diversos afim de obter efeitos cômicos, criar tensões, força ou simplesmente obter sensações agradáveis. Do que é feito um jogo?(){
  • 19. } . : : Música : : .  A música serve para se criar uma base para as imagens e os outros sons.  Com a construção da música certa pode-se criar ambientes agradáveis, tensos, pode-se deixar o jogador mais nervoso com uma música mais rápida e pode-se até usar o recurso do silêncio para criar um clima de suspense.  É sempre bom ter algum repertório de músicas no jogo, e ter músicas de duração razoável, caso contrário as músicas podem ficar chatas e repetitivas.  As músicas de jogos também criam um lembrança especial do jogo nos jogadores e cria um sensação agradável ao se jogar . Do que é feito um jogo?(){
  • 20. } . : : Física : : .  Um jogo é uma simulação. Essa simulação é, na maioria das vezes, uma representação do mundo em que vivemos. Essa representação, seja por limitações de software e hardware ou por escolha estética, não contem todos os aspectos do mundo real. Porém um aspecto que quase sempre está presente é o físico.  Esse aspecto se manifesta principalmente na detecção de colisão.  Se o objeto A depois que ele se mover colide em algo então faz alguma coisa.  Essa alguma coisa pode variar de jogo para jogo. Pode ser que o objeto A seja um personagem e o algo seja uma parede. Então o "faz alguma coisa” pode ser nada, ele bate na parede portanto não anda, mas pode ser que o personagem tenho batido em algo que o machuque como o fogo, então o "faz alguma coisa" pode ser tirar vida do jogador .  Uma técnica de colisão bem simples e que vamo usar aqui é verificar se o retângulo que envolve o sprite toca o retângulo que envolve o outro sprite: Do que é feito um jogo?(){
  • 21. } Do que é feito um jogo?(){
  • 22. } Do que é feito um jogo?(){ . : : Finite State Machines : : .
  • 23. } Quem participa da criação? (){ Game Designer Elabora os elementos do jogo bem como sua mecânica. Os elementos são os personagens e o cenário e a mecânica são as possibilidades que o jogador tem de interagir com o jogo. Empresas que elaboram jogos de ponta modernos dividem as responsabilidades do game designer com outros profissionais relacionados, sendo os principais, o combat designer e o level designer. Roteirista Descreve como é a trama do jogo, o perfil psicológico dos personagens e a interação entre eles, sendo a interação do tipo social e/ou psicológica, a qual não necessariamente corresponde àquela entre o jogador e os personagens do jogo. Tester Trabalha na equipe de Q&A (Quality Assurance - Controle de qualidade). Testa diversos aspectos do jogo e relata os pontos falhos ou a serem melhorados.
  • 24. } Quem participa da criação? (){ Programador Elabora a programação do jogo. Desenvolve códigos para lidar com AI, música, interação, etc. Com exceção de jogos independentes uma empresa tem diversos programadores em seu elenco, sendo que cada um é especializado numa área (rendering, ai, rede, etc…). Engenheiro de software Projeta os componentes de software do jogo envolvendo diversos aspectos como a composição dos objetos, a interface deles, a interrelação existente entre eles, etc. Programador Web && Programador de redes = ¬¬ aff Programador de AI Responsável por programar os algoritmos de Inteligência Artificial usados no jogo. Dentre estes algoritmos estão o de planejamento estratégico de grupo num atirador de primeira pessoa, a montagem da estratégia do time controlado pela CPU num jogo de esportes, o planejamento de caminho para levar um personagem NPC de um local ao outro, etc.
  • 25. } Quem participa da criação? (){ Engenheiro de som Produz os efeitos sonoros e a música tema. Level designer Faz o projeto da fase em que o jogador se encontra. Quais elementos compõem a fase, há a presença de alguma característica distintiva no terreno como aclives, declives, montanhas, etc. Combat Designer Projeta como será o combate entre o jogador e o computador. Quais são os elementos que devem estar presentes no combate, qual o papel destes elementos (dano, cobertura, etc).
  • 27. } Como é feito um jogo 2D? (){ . : : Plano Cartesiano (x,y): : .
  • 28. } Como é feito um jogo 2D? (){
  • 31. } Os bastidores de um jogo(){ Preparar os elementos. Nessa parte, o programa irá carregar o necessário para sua execução (como imagens e sons), bem como preparar as estruturas de dados usadas pelo mesmo. Montar a primeira tela. Aqui o programa coloca cada elemento em seu lugar inicial, de acordo com a vontade do desenvolvedor. Checar a situação atual do jogo, e aí criar uma nova tela. Agora o programa deve preparar uma nova tela, levando em conta a situação anterior do jogo e a(s) entrada(s) do jogador. É aqui, por exemplo, que o programa checaria se o quadrado que representa a cabeça da cobrinha está contido na lista de quadrados que representam seu corpo, ou de forma mais simples, se a cobrinha bateu nela mesma. Repetir... Agora tudo o que resta é continuar esse processo de calcular uma nova tela e mostra-la até que o jogo acabe.
  • 32. } Os bastidores de um jogo(){
  • 33. } O que são engines? (){ Definição: “É a ferramenta que se encarregará por entender como o hardware gráfico, irá controlar os modelos para serem renderizados, tratará das entradas de dados do jogador, tratará de todo o processamento de baixo nível e outras coisas que o desenvolvedor de jogos normalmente não deseja fazer ou não tem tempo para se preocupar . ”
  • 35. } PyGame (){  Você que sempre gostou de jogar e decidiu cursar Ciência da Computação para aprender como é que aqueles games são feitos e logo se viu travando uma batalha para passar em Cálculo, Álgebra Linear e Geometria Analítica.  Certo, primeiro é preciso ficar claro que não estamos falando de um programinha a lá RPG Maker no qual você "pinta" os mapinhas na tela e arrasta personagens pré-feitos para o jogo.  O Pygame é um conjunto de módulos que você importa num código em Python, os quais lhe disponibilizam uma série de funcionalidades auxiliares para criação de aplicativos multimídia e games.
  • 36. } PyGame (){ Vários processadores podem ser usados facilmente. O uso de vários núcleos adiciona um desempenho muito maior ao seu jogo. As funções internas são implementadas em C e Assembly. Código em C costuma ser de 10 a 20 vezes mais rápido que Python. Já Assembly tem uma performance de mais de 100 vezes maior que Python. Portátil mesmo. Aplicativos programados em Pygame podem rodar tanto em plataformas Windows quanto em Linux, Solaris, FreeBSD, Mac OS, Android, entre outros. O código ainda dá suporte a Dreamcast e também pode ser usado em dispositivos móveis. Simples! O Pygame é usado no projeto OLPC para ensinar programação a crianças. Ao mesmo tempo, também é a preferência de programadores experientes.
  • 39. } Allegro (){ Allegro é uma biblioteca de funções para jogos 2D feita em C. Apesar de ter algumas funções para jogos 3D ela não é indicada para isso, sendo no lugar dela uma API3d como OpenGL ou DirectX De acordo com a Companhia Oxford de Música, Allegro é o italiano para "rápido, vivo e brilhante". Ele também é um acrônimo recursivo que representa "Allegro Low Level Game Routines"
  • 41. } Allegro (){ int allegro_init() Esta é a principal função, e deve obrigatoriamente ser chamada para uma aplicação Allegro funcionar, lembre-se que a chamada desta função deve ser a primeira a ser feita, antes de qualquer outra função Allegro. Exemplo de uso: allegro_init(); PyGame: import pygame from pygame.locals import* int makecol( int iRed, int iGreen, int iBlue ); Passando-se os valores dos tons (que variam de 0 a 255), de vermelho, verde e azul, esta função retorna o código da cor. Exemplo de uso: makecol (255, 0, 0 ); PyGame: Realizada de forma similar
  • 42. } Allegro (){ void rest(unsigned int uiTime) Interrompe a execução do programa durante um intervalo de tempo igual ao passado como parâmetro, em milisegundos. Exemplo de uso: rest (1000); PyGame: Clock = pygame.time.Clock() Clock.tick(int Time) void textprintf_ex(BITMAP *bmp, FONT font, int iX, int iY, int iColor, int iCorDeFundo, char sTexto, ... ); Função para exibir um texto na tela, o sexto parâmetro deve ser -1 para um fundo transparente. Exemplo de uso: textprintf_ex(screen, font, 10, 20, makecol(200, 200, 20), -1, "X vale : %d", 10 ); PyGame: Font = pygame.font.Font("font.ttf",128)
  • 43. } Allegro (){ void putpixel(BITMAP *bmp, int iX, int iY, int iColor) Colore um pixel do bitmap, nas coordenadas especificadas no segundo parâmetro e terceiro parâmetro, na cor passada no quarto parâmetro. Exemplo de uso: putpixel(screen, 20, 300, makecol(0, 200, 30)); void getpixel(BITMAP *bmp, int iX, int iY, int iColor) Recupera o valor da cor de um pixel do bitmap, nas coordenadas especificadas no segundo parâmetro e terceiro parâmetro, na cor passada no quarto parâmetro. Exemplo de uso: int iPixelColor = getpixel(screen, 20, 300, makecol(0, 200, 30 )); void floodfill(BITMAP *bmp, int iX, int iY, int iColor); Preenche um bitmap com a cor especificada, em um espaço fechado, a partir do ponto X e Y. Exemplo de uso: floodfill (screen, 20, 30, makecol(20, 60, 300));
  • 44. } Allegro (){ void vline(BITMAP *bmp, int iX, int iY1, int iY2, int iColor); void hline(BITMAP *bmp, int iX1, int iY, int iX2, int iColor); void line(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor); A primeira função desenha uma linha vertical, a segunda função desenha uma linha horizontal e a ultima função desenha uma linha entre 2 pontos quaisquer. Exemplo de uso: line (screen, 20, 300, 400, 500, makecol(20, 60, 300)); void rect(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor); void rectfill(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor); A primeira função desenha um retângulo sem preenchimento, com o contorno colorido, enquanto a segunda função desenha um retângulo com preenchimento. Exemplo de uso: rectfill (screen, 20, 300, 400, 500, makecol(20, 60, 300));
  • 45. } Allegro (){ void circle(BITMAP *bmp, int iX, int iY, int iRaio, int iColor); void circlefill(BITMAP *bmp, int iX, int iY, int iRaio, int iColor); A primeira função desenha um círculo sem preenchimento, com o contorno colorido, enquanto a segunda função desenha um círculo com preenchimento. Exemplo de uso: circlefill (screen, 20, 300, 10, makecol(20, 60, 300)); void ellipse(BITMAP *bmp, int iX, int iY, int iXRaio, int iYRaio, int iColor); void ellipsefill(BITMAP *bmp, int iX, int iY, int iXRaio, int iYRaio, int iColor); A primeira função desenha uma elipse sem preenchimento, com o contorno colorido, enquanto a segunda função desenha uma elipse com preenchimento. Exemplo de uso: ellipsefill (screen, 20, 300, 5, 10, makecol(20, 60, 300));
  • 46.  Biblioteca para construção de jogos e aplicações multimídia em geral  Free Source  Voltada mais especialmente para jogos 2D  Conhecida pela facilidade de adicionar entrada de dados via teclado, mouse e joystick.  Suporta arquivos de configuração e de dados comprimidos  Temporizadores  Grande comunidade de desenvolvedores Allegro (){
  • 47.  Multi-plataforma  DOS  Windows  Linux  Mac (OS X)  BeOS  QNX  Primitivas Gráficas  Rectas, círculos, elipses  Polígonos (sólidos, texturados, transparentes)  Texto em modo gráfico  Animações Allegro (){
  • 48.  Incluir <allegro.h> depois de todos os demais includes  Deve sempre aparecer uma chamada à função allegro_init() o mais perto possível do início do programa.  Da mesma forma devem ser chamadas, a seguir, as funções install_keyboard(), install_mouse() e install_timer().  A função allegro_exit() deve ser chamada no final do programa.  Colocar a macro END_OF_MAIN() logo após a chave final da rotina main()  Ao compilar, incluir a biblioteca alleg:  gcc -o test test.c –lalleg Allegro (){
  • 49.  Especificado antes de começar a desenhar: int set_gfx_mode (int card, int w, int h, int v_w, int v_h);  Onde:  card é usualmente GFX_AUTODETECT, GFX_AUTODETECT_FULLSCREEN ou GFX_AUTODETECT_WINDOWED  w , h largura e altura  v_w , v_h largura e altura virtual (normalmente, 0) Allegro (){
  • 50.  Bitmaps são matrizes de pixels, em que cada valor indica uma cor  Tela é um BITMAP especial chamado screen  BITMAPs adicionais podem ser criados com:  BITMAP *bmp = create_bitmap(int width, int height); Allegro (){
  • 51. . : : Periféricos de Entrada – Teclado : : .  Teclado  install_keyboard()  /* Para inicializar as rotinas do teclado */ KEY_ALTGRAlt Direito KEY_ALTAlt esquerdo KEY_RCONTROLControl Direito KEY_LCONTROLControl Esquerdo KEY_RSHIFTShift Direito KEY_LSHIFTShitf Esquerdo KEY_PRTSCRPrint Screen KEY_SPACEBarra de Espaço KEY_PAUSEPause KEY_DOWNSeta para Baixo KEY_UPSeta para Cima KEY_LEFTSeta para a Esquerda KEY_RIGHTSeta para a Direita KEY_ENTEREnter KEY_ESCEsc KEY_0 ... KEY_9Teclado Normal 0 a 9 KEY_0_PAD ... KEY_9_PADTeclado Numérico 0 a 9 KEY_A, KEY_B...KEY_ZA, B ... Z Código na ArrayTecla  Váriável global int key[]  permite ver quais teclas estão pressionadas.  constantes definidas para identificar cada tecla Allegro (){
  • 52.  install_mouse() /* Para inicializar as rotinas do mouse */  Retorna -1 em caso de falha ou o número de botões que o mouse tem em caso de sucesso . : : Periféricos de Entrada – Mouse : : .  Usa-se a função show_mouse para que o cursor do mouse seja mostrado no bitmap especificado  Passando NULL como parâmetro esconde o cursor do mouse  Deve-se ter cuidado ao desenhar algo na tela pois o cursor do mouse pode passar por cima e estragar o desenho, por isso é sempre bom escondê-lo antes de desenhar qualquer coisa  Allegro (){  As variáveis mouse_x e mouse_y contêm a posição do cursor do mouse na tela.  A variável mouse_b contém o estado dos botões.  (mouse_b & 1) é verdadeiro se o botão esquerdo estiver pressionado.  (mouse_b & 2) é verdadeiro se o botão direito estiver pressionado.
  • 53.  Som digital: WAV. Música: MID.  Antes de se tocar um som digital ou música deve-se carregá-los da seguinte forma: /* declaração das variáveis que guardarão sons e músicas */ SAMPLE *som1; /* SAMPLE = arquivos de som digital */ MIDI *musica; /* MIDI = arquivos de música */ /* carrega os arquivos usando-se as respectivas funções */ som1 = load_wav(“arquivo.wav”); /* para arquivos wav */ musica = load_midi(“arquivo.mid”); /* para arquivos mid */  Ponteiro nulo -> arquivo não encontrado. Allegro - Som (){
  • 54.  Para tocar uma música usa-se a função play_midi. O primeiro parâmetro é o arquivo MIDI carregado, o segundo indica se ele tocará em loop ou não. /* Exemplo para tocar um arquivo MIDI */ MIDI *musica; /* declaração da variável a ser usada */ musica = load_midi(“musica.mid”); /* carrega arquivo */ play_midi(musica,TRUE); /* toca a música em loop */  Para parar de tocar uma música usa-se a função stop_midi(). Som – MIDI’s (){
  • 55.  Para tocar um som digital usa-se a função play_sample. Os cinco parâmetros indicam: arquivo carregado, volume (0 a 255), equilíbrio entre as caixas (0 a 255, 128 é meio a meio), freqüência (1000 usa a frequência original, 500 usa a metade da freqüência original etc.) e se vai ser tocado em loop  Função stop_sample() pára de tocar /* Exemplo para tocar um arquivo de som WAV */ SAMPLE *som; /* declaração da variável a ser usada */ som = load_wav(“som.wav”); /* carrega arquivo */ play_midi(musica,255,128,1000,FALSE); /* toca som */ Som - Samples (){
  • 56.  Executar pedaço de código em velocidades diferentes Para isso, colocar cada um dos trechos de código numa função diferente  Allegro só permite o uso de 16 timers  int install_int(void (*proc)(), int speed) /* cria timer */  install_timer(); /*inicializa timer, opcional */  void remove_int(void (*proc)()) /* remove função da lista */  Notas:  Todas variáveis globais acessadas nos timers devem ser trancadas com a macro LOCK_VARIABLE()  Todas as funções de "timer" devem ser trancadas com  LOCK_FUNCTION()  speed representa milésimos de segundo Timming no Allegro (){
  • 57. } Etapas de elaboração de um jogo (){  Idéia  Rascunho do jogo  Detalhamento do jogo  Game Design Document (GDD)  Produção de áudio e imagens 2D  Desenv. de artefatos computacionais (engines)  Integração (arte e computação)
  • 58. } Idéia (){  Muitas idéias vem dos sonhos.  Surgem de pequenos conceitos expandidos em Brainstorm.  Grandes idéias poder parecer ridículas no começo.
  • 59. } Rascunho do jogo (){  Personagens, fases, itens com pequenas descrições.  Fluxo das telas do jogo e menus.
  • 60. } Detalhamento do jogo (){  O que o jogador fará no jogo ?  Quantos inimigos o herói vai enfrentar ? Como eles são ?  Quais as armas disponíveis que o jogador poderá usar ?  Como será o sistema de vida do jogador ?  Qual o objetivo do jogo ? Quantas fases terá ? Como elas serão (cenário, inimigos, dificuldade, etc) ?  Quantos jogadores poderão jogar o jogo ?  Qual o tipo de visualização gráfica ?  Qual o tipo de trilha sonora ?
  • 61. } Game Design Document (GDD){  Conceito: – Nome do jogo, público alvo, história, regras...  Especificações técnicas: – Hardware, sistema operacional...  Especificações do jogo: – Número de fases, personagens, itens, cenários...  Dispositivo de entrada: – Mouse, teclado...  Design gráfico e arte: – Abertura, layout de menus e telas, final do jogo...  Sonorização: – Músicas nos menus, músicas nas fases...  Desenvolvimento: – Tempo de desenvolvimento, alocação de pessoas...
  • 62. } Programação de Jogos (){ . : : Algumas Técnicas : : .  Animação com Double Buffering  Scrolling  Sprites  Detecção de Colisão
  • 63.  Dar a impressão de que coisas se movem  Pode significar mover um pixel ao longo da tela mas, geralmente, significa uma mudança repetitiva da apresentação de algo para que dê a ideia de que se move.  Qual a técnica mais simples?  limpamos a tela, desenhamos os objetos, limpamos a tela novamente, desenhamos os objetos nas novas posições. Animação (){
  • 64. } Double Buffering (){ O Problema:  Quando vamos fazer animações usando o Allegro, surgem alguns problemas relacionados aos vários métodos que podem ser utilizados. O método mais simples que podemos imaginar é aquele em que limpamos a tela, desenhamos os objetos, limpamos a tela novamente, desenhamos os objetos nas novas posições, e assim por diante. Este método, porém, tem um grave problema: a tela pisca a cada limpeza. A Solução:  Dispomos de um bitmap auxiliar (chamado de buffer) que, normalmente, possui o tamanho da tela (ou o tamanho da região onde ocorre a animação). Desenhamos, neste buffer, os objetos que devem ser apresentados na tela. Após isso, desenhamos o conteúdo do buffer na tela, fazendo com que os objetos apareçam. Limpamos, então, o buffer, desenhamos os objetos novamente em suas novas posições, passamos o conteúdo do buffer para a tela, e assim por diante.
  • 65.  Qual o problema desta técnica? Efeito Flicker - efeito de cintilação ou vibração de uma imagem na tela do computador Instante 1 Instante 2: Limpar a tela Instante 3 Double Buffering (){
  • 66.  Qual a solução? Instante 2: Limpar a telaInstante 1 Instante 3 Buffer Instante 1 Instante 3 Tela Instante 2 Efeito Flicker (){
  • 67. } Scrolling (){ O Problema:  Como dar movimento ao personagem e aos objetos envolvidos? A Solução:  Movimento de cenário. O scrolling consiste em movimentar o fundo do cenário e, normalmente, deixar o personagem controlado parado, o que causa uma sensação de movimento. O scrolling pode ser horizontal, vertical ou em ambas as direções.  O exemplo demonstra como utilizar o scrolling, desenhado um boneco (parado) no meio da tela, enquanto o fundo se move de baixo para cima, fazendo com que tenhamos a sensação de que o boneco está caindo.
  • 68. } Parallax Scrolling (){ O Problema:  Como causar a sensação de profundidade presente em jogos 3D? A Solução:  Utilizar vários fundos que se movimentam em velocidades diferentes. O exemplo demonstrará um parallax scrolling horizontal.
  • 69. } Detecção de Colisão (){ O Problema:  Como verificar se dois sprites estão sobrepostos, ou seja, se houve uma colisão? A Solução:  Existe o método que chamamos de força bruta (checar cada ponto de um sprite com cada ponto de outro sprite) qué é ineficiente, a maior parte dos outros métodos são aproximativos. Veremos o principal deles, que consiste em dividir os sprites em retângulos, de forma que possamos verificar se cada retângulo está ou não sobreposto a outro. Fazer com que o sprite tenha sua movimentação limitada às bordas do nosso jogo não deixa de ser uma forma de detecção de colisão, bem simples, é verdade. Porém, em jogos 2D, geralmente se deseja realizar detecção de colisão entre dois ou mais sprites no jogo.
  • 70. } Detecção de Colisão (){ . : : Colisão entre Esferas : : . Contudo, apesar do sistema de detecção de colisões estar utilizando o algoritmo do bouncing box, depois de alguns testes você perceberá um problema. Se os sprites colidirem diagonalmente, eles irão colidir antes de atingirem um ao outro de verdade. Isso está ocorrendo justamente por utilizarmos caixas para representar a forma geométrica das esferas. Quando queremos testar colisões entre esferas, teremos que verificar se a distância entre os centros delas são menores que a soma dos seus raios. Em caso positivo, então uma colisão ocorreu. Essa é a forma mais eficiente de detectar colisões entre duas esferas. Para detectar a colisão entre duas formas circulares, usamos o teorema de Pitágoras: (r2 = x2 + y2)
  • 71. } Detecção de Colisão (){ . : : Colisão entre Esferas : : . A soma dos quadrados dos dois lados (hipotenusa ao quadrado) é menor ou igual que o quadrado da soma dos raios das duas formas (que no fundo, é como se fosse o quadrado de um dos lados), mais o quadrado da soma dos raios das duas formas (que no fundo, é como se fosse o quadrado do lado restante. Esta "grande" soma, é como se fosse uma segunda hipotenusa ao quadrado.). Básicamente, quando a distância entre as duas formas (ao quadrado) for igual ou menor que a soma dos dois raios (ao quadrado), dá-se a colisão..
  • 72. } Detecção de Colisão (){ . : : Colisão entre Esferas : : . If ((formx*formx + formy*formy) <= ((rad1 + rad2)*(rad1 + rad2)) + ((rad1 + rad2)*(rad1 + rad2))) "/:collission" = "Sim" Else "/:collission" = "Não" End If
  • 74. } Dicas – Produção & Pesquisa (){  Som – Sound Forge: produção de trilhas e efeitos sonoros. – Cubase: mixagem de canais MIDI – Audacity: permitir criar áudio, inclusive combinar diferentes canais de som.  Imagens 2D – Tiles – Bricks – Layers – Sprites
  • 75. } Dicas – O que fazer ? (){  Estudar muito !  Conhecer as novidades no mundo dos jogos  Jogar bastante e diferentes tipos de jogos  Buscar fazer contatos  Participar de eventos relacionados  Começar a desenvolver jogos fáceis: – Pong, Arkanoid, Space Invaders, Tetris, Pacman...
  • 76. } Dicas – Livros Nacional (){
  • 77. } Dicas – Livros Internacionais (){
  • 78. } Dicas – Sites (){  Abragames – http://www.abragames.org/  BRGames – http://www.brgames2009.com.br/  PDJ – http://www.programadoresdejogos.com/  UNIDEV – http://www.unidev.com.br/  GameDevBr – http://www.gamedevbr.com/  Gamasutra – http://www.gamasutra.com  SharpGames – http://www.sharpgames.net/  Ponto V – http://vinigodoy.wordpress.com/
  • 79. } Dicas – Eventos (){  SBGames – (Simpósio Brasileiro de Jogos e Entretenimento Digital)  SCGames – (Simpósio Santa Catarina Games)  IGN - (Independent Game Festival) – http://www.igf.com/  Campus Party – http://campus-party.com.br/
  • 80. } Dicas – Competições (){ XNA Game Challenge – http://www.xnachallenge.com.br/  Dream Build Play – http://www.dreambuildplay.com  Imagine cup – http://imaginecup.com/  Maratona de Programação – http://maratona.ime.usp.br/
  • 81. } Dicas – Links interessantes (){ Gráficos: – http://www.tilemap.co.uk/ – http://reinerstileset.4players.de/ – http://www.hippydrome.com/  Músicas e Efeitos sonoros: – http://www.flashkit.com/soundfx/ – http://www.findsounds.com/  Fonts: – http://www.1001freefonts.com/  The game loop: – http://dewitters.koonsolo.com/gameloop.html  Game Engines: – http://www.devmaster.net/engines/
  • 82. } Isso é tudo, pessoal! (){ eof 
  • 83. } Referências (){ Introdução ao Desenvolvimento de Jogos, Kleber de Oliveira Andrade. Game Level Design, disponível em: http://www.gamasutra.com/view/feature/175950/the_fundamental_pillars_of_a_.php McGugan, Will, “Beginning Game Development with Python and Pygame”, 2007. “PyGameLib”, http://www.pygame.org/, Outubro.