SlideShare uma empresa Scribd logo
1 de 27
Techniques for
Designing
GPGPU Games(Mark Joselli, José Ricardo da Silva Junior, Marcelo Zamith, Esteban Clua, Mateus
Pelegrino, Evandro Mendonça MediaLab- IC/UFF Universidade Federal Fluminense)¹
Anny Caroline, Emerson Silva e Herick HenriqueGrupo:
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
ORGANIZAÇÃO DA APRESENTAÇÃO
◎ Introdução
◎ Trabalhos Relacionados
◎ Técnicas Utilizadas
◎ Arquitetura
◎ Resultados
◎ Conclusão
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
I.
Introdução
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Arquitetura Multi-Thread
pode ser utilizada para um processamento genérico e permite
que os videogames possam performar em paralelismo. Em um
jogo, a arquitetura executa tarefas em paralelo, utilizando todo o
potencial dos hardwares.
INTRODUÇÃO
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Loop Principal de Um Jogo
Geralmente são divididos em três categorias, nas quais possibilita
um modelo de arquitetura que implementa os processos da lógica
do jogo dentro de uma GPU:
- Recebimento de dados: executado preferencialmente pela
CPU;
- Processamento de dados: processados pela CPU e ou GPU
- Apresentação de dados: imagens processadas pela GPU e
áudios pelo CPU
INTRODUÇÃO
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
O desenvolvimento de GPUs programáveis têm proporcionado novas
possibilidades para a chamada Unidade de Processamento Gráfico de
Propósito Geral (GPGPU), utilizada para elevar o nível de realismo das
simulações virtuais. Contudo, ao utilizar a GPGPU normalmente dividimos o
processamento das tarefas entre a GPU e a CPU, desta forma pode ocorrer
limitações nas simulações, devido a necessidade de grande transferência de
dados entre elas. A proposta deste artigo refere-se a implementar todos os
métodos do jogo inteiramente na GPU, utilizando a arquitetura CUDA,
conseguindo assim manter a comunicação GPU-CPU no mínimo.
INTRODUÇÃO
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
II.
Trabalhos
Relacionados
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Processamento Sequencial x Paralelo
A arquitetura de GPUS são especialmente desenhadas para processar tarefas
que necessitam uma alta taxa de cálculos matemáticos e largura de banda
(muitos dados). A GPU para performar, necessita de um tipo de programação
diferente da tradicional, que é a sequencial, sendo que esta é utilizada na CPU.
Os desenvolvedores necessitam utilizar paralelismo para que seja possível
utilizar todo o poder de processamento da GPU, como a arquitetura
apresentada neste artigo.
TRABALHOS RELACIONADOS
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Técnicas nos Jogos
Existem várias técnicas que lidam com a área de atuação do GPGPU ,
contudo a técnica mais a utiliza são as direcionadas a física do jogo.
Atualmente, observa-se que todos os maiores motores de física dos jogos
no mercado, fizeram ou tem feito tentativas de usar a GPU para processar
estes cálculos. Um dos mais impressionantes é o nVIDIA PhysX, que é um
motor de física que usa a arquitetura CUDA para otimizar os cálculos.
TRABALHOS RELACIONADOS
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Técnicas nos Jogos
Também podem ser utilizadas na GPGPU a lógica e as IAs dos jogos, porém
estas áreas ainda não foram completamente exploradas. Normalmente
utiliza-se uma FSM na GPU, porém é uma funcionalidade bastante primitiva,
que não deve ser usada para jogos.
Além disso, a GPGPU pode ser também encontrada na simulação de
multidões, que podem ser usados para simular, por exemplo,
comportamento de rebanho, soldados no campo de batalha dentre outros.
Essas funcionalidades são particularmente importantes, desde que propõem
um simples modelo de IA a ser implementado na arquitetura da GPU.
TRABALHOS RELACIONADOS
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Diferencial Deste Trabalho
O artigo estudado, propõe uma metodologia que se diferencia das demais,
por abordar uma arquitetura que aloca todas as tarefas do jogo,
necessariamente para ser processada pela GPU. Cabe ressaltar que os
autores deste artigo, não encontraram dentro da literatura, nenhum outro
trabalho que utiliza-se a GPU para processar a lógica do jogo inteiramente.
TRABALHOS RELACIONADOS
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
III.
Técnica utilizada
neste trabalho
Descrição resumida da abordagem utilizada pelos autores
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
“
Muitos jogos utilizam GPGPU para processar
partes de uma tarefa (uma parte na GPU e
outra na CPU). Isto requer muita
transferência de dados entre eles, podendo
causar um gargalo.²
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
TÉCNICA UTILIZADA NESTE TRABALHO
Mínima Comunicação entre GPU x CPU
Implementação de todos os métodos do jogo na GPU com o
uso da Arquitetura CUDA.
Memória Compartilhada
A arquitetura foi adaptada para utilização da memória
compartilhada, pois esta só pode ser acessada por threads de
do bloco em que foi criado, no qual possuem vida finita.
Divisão Espacial (colisão e agentes)
Grid uniforme com custo de construção constante e grid de
vizinhança
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
TÉCNICA UTILIZADA NESTE TRABALHO
CASO DE TESTE
O caso de teste é um projeto e implementação do GPUWars
game, que é um atirador 2D que tem tarefas paralelas, IA, física
e pontuação do jogo, que são todos processados no GPU
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
IV.
A Arquitetura
Descrição resumida da abordagem utilizada pelos autores
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
ARQUITETURA
Aquisição de data
Inputs do jogador
que são os
comandos que o
mesmo efetua na
aplicação que é
utilizada pela CPU.
Processamento de
data
Controla a lógica
dentro do jogo como
física e IA que será
feita pela GPU neste
caso.
Apresentação de
data
Feedback ao jogador
utilizando áudio e
imagem que será
trabalho da GPU
também.
Jogos de Computadores utilizam de diversos campos de
conhecimento como renderização, IA, física, etc.
Estes podem ser divididos em três tipos de tarefas gerais.
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
A aplicação em destaque utiliza de
multithreading CUDA com GPGPU.
A informação entre CPU-GPU é
uma estrutura encapsulada para
manter o mínimo de comunicação.
RNG não existe no contexto
GPGPU, então foi utilizado uma
criada na demo da nVidia.
ARQUITETURA
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Criação de tiros, inimigos e
animações utiliza uma lista de
valores disponíveis para criação
dos mesmos, que faz com que a
GPU crie threads vazios
Para evitar perda de performance
por sincronização destes threads, se
agrupam os threads que têm
funções similares em um bloco
ARQUITETURA
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
A inteligência artificial do
jogo se movimenta pela
distância de visão de cada
indivíduo.
Para isso se utilizou grades
uniformes e de vizinhos a
fim deles se agruparem e
saberem a proximidade
entre eles.
ARQUITETURA
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
V.
Resultados
Descrição resumida dos resultados obtidos pelos autores
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
◎ Os testes resultaram numa taxa de 45 a 58 FPS considerada
otimizada
◎ Testes com CPU calculando a IA resultou em 30 FPS com 8k de
inimigos
E 22 FPS com 4k de inimigos utilizando somente a CPU
RESULTADOS
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
VI.
Conclusão
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Arquiteturas Multithread são Tendência
Diferencial de abordagem deste projeto, desenvolvendo a
lógica do jogo toda na GPU;
Os conceitos da arquitetura proposta também podem ser
aplicados a outros processadores multi-core;
Como desvantagem é que para aproveitar ao máximo o poder
da GPU, todas as tarefas do jogo devem ser implementado em
kernels GPGPU;
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
1. JOSELLI, M., SILVA JUNIOR, J. R., ZAMITH, M., SOLURI, E., MENDONCA, E.,
PELEGRINO, M., AND CLUA, E. W. G. 2012. Techniques for designing gpgpu
games. In Games Innovation Conference (IGIC), 2012 IEEE International, 78–82
1. J. Krueger, “A gpu framework for interactive simulation and rendering of fluid
effects,” IT - Information Technology, vol. 4, p. (accepted), 2008. [Online].
Available: http://www.sci.utah.edu/publications/krueger08/GPU
framework.pdf
REFERÊNCIAS
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
Techniques for
Designing GPGPU
Games
(Mark Joselli, José Ricardo da Silva Junior, Marcelo Zamith, Esteban Clua, Mateus
Pelegrino, Evandro Mendonça MediaLab- IC/UFF Universidade Federal Fluminense)¹
Anny Caroline, Emerson Silva e Herick HenriqueGrupo:
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES

Mais conteúdo relacionado

Semelhante a GPGPU Game Design

Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"Ponce Edition
 
seminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchezseminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchezrolisanchez
 
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosTécnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosRoger Ritter
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLTony Alexander Hild
 
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDesenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDaniel Rodrigues de Sousa
 
Framework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo PlataformaFramework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo PlataformaBeatriz Vaz Pinto
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Serverpichiliani
 
Fundamentos de Informática Gráfica
Fundamentos de Informática Gráfica Fundamentos de Informática Gráfica
Fundamentos de Informática Gráfica Carlos Campani
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Filipo Mór
 
Métodos Ágeis para desenvolvimento de jogos
Métodos Ágeis para desenvolvimento de jogosMétodos Ágeis para desenvolvimento de jogos
Métodos Ágeis para desenvolvimento de jogosRháleff Rodrigues
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos clienteAndré Dias
 
A Ciência da Computação e os Jogos Eletrônicos
A Ciência da Computação e os Jogos EletrônicosA Ciência da Computação e os Jogos Eletrônicos
A Ciência da Computação e os Jogos EletrônicosIngrid Mendes
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioLuiz Nörnberg
 
Programação de jogos eletrônicos
Programação de jogos eletrônicosProgramação de jogos eletrônicos
Programação de jogos eletrônicosguest8ff100
 

Semelhante a GPGPU Game Design (20)

Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
 
Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
seminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchezseminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchez
 
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosTécnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos Eletrônicos
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDesenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
 
Framework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo PlataformaFramework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
 
jogo
jogojogo
jogo
 
Fundamentos de Informática Gráfica
Fundamentos de Informática Gráfica Fundamentos de Informática Gráfica
Fundamentos de Informática Gráfica
 
Trabalho de informatica
Trabalho de informaticaTrabalho de informatica
Trabalho de informatica
 
Augusto lenz
Augusto lenzAugusto lenz
Augusto lenz
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
 
Curso Unity3D
Curso Unity3DCurso Unity3D
Curso Unity3D
 
Métodos Ágeis para desenvolvimento de jogos
Métodos Ágeis para desenvolvimento de jogosMétodos Ágeis para desenvolvimento de jogos
Métodos Ágeis para desenvolvimento de jogos
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos cliente
 
A Ciência da Computação e os Jogos Eletrônicos
A Ciência da Computação e os Jogos EletrônicosA Ciência da Computação e os Jogos Eletrônicos
A Ciência da Computação e os Jogos Eletrônicos
 
Palestra
PalestraPalestra
Palestra
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
 
Programação de jogos eletrônicos
Programação de jogos eletrônicosProgramação de jogos eletrônicos
Programação de jogos eletrônicos
 

Mais de Anny Caroline Sousa

Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...
Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...
Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...Anny Caroline Sousa
 
A atuação de Sea Hero Quest como serious games
A atuação de Sea Hero Quest como serious gamesA atuação de Sea Hero Quest como serious games
A atuação de Sea Hero Quest como serious gamesAnny Caroline Sousa
 
Aplicando SCRUM no desenvolvimento de jogos eletrônicos na universidade
Aplicando SCRUM no desenvolvimento de jogos eletrônicos na universidadeAplicando SCRUM no desenvolvimento de jogos eletrônicos na universidade
Aplicando SCRUM no desenvolvimento de jogos eletrônicos na universidadeAnny Caroline Sousa
 
Indústria de Games e Introdução ao Construct 3
Indústria de Games e Introdução ao Construct 3Indústria de Games e Introdução ao Construct 3
Indústria de Games e Introdução ao Construct 3Anny Caroline Sousa
 
Trello Consultoria - Escritório Virtual
Trello Consultoria - Escritório VirtualTrello Consultoria - Escritório Virtual
Trello Consultoria - Escritório VirtualAnny Caroline Sousa
 
Trabalho de Conclusão de Período V
Trabalho de Conclusão de Período VTrabalho de Conclusão de Período V
Trabalho de Conclusão de Período VAnny Caroline Sousa
 
Palestra sobre Gamificação no Dia a Dia
Palestra sobre Gamificação no Dia a DiaPalestra sobre Gamificação no Dia a Dia
Palestra sobre Gamificação no Dia a DiaAnny Caroline Sousa
 
Apresentação Caminho dos Vagalumes - TCP 4
Apresentação Caminho dos Vagalumes - TCP 4Apresentação Caminho dos Vagalumes - TCP 4
Apresentação Caminho dos Vagalumes - TCP 4Anny Caroline Sousa
 
Game Bible - Caminho dos Vagalumes
Game Bible - Caminho dos VagalumesGame Bible - Caminho dos Vagalumes
Game Bible - Caminho dos VagalumesAnny Caroline Sousa
 
Pensamento Computacional para Educação Libertadora
Pensamento Computacional para Educação LibertadoraPensamento Computacional para Educação Libertadora
Pensamento Computacional para Educação LibertadoraAnny Caroline Sousa
 
Quero ser desenvolvedor(a) de aplicações, como começar?
Quero ser desenvolvedor(a) de aplicações, como começar?Quero ser desenvolvedor(a) de aplicações, como começar?
Quero ser desenvolvedor(a) de aplicações, como começar?Anny Caroline Sousa
 
Trello - workshop interno Cinema Nosso e Jabuti Filmes
Trello - workshop interno Cinema Nosso e Jabuti FilmesTrello - workshop interno Cinema Nosso e Jabuti Filmes
Trello - workshop interno Cinema Nosso e Jabuti FilmesAnny Caroline Sousa
 

Mais de Anny Caroline Sousa (20)

Politikart - Apresentação GDD
Politikart - Apresentação GDDPolitikart - Apresentação GDD
Politikart - Apresentação GDD
 
Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...
Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...
Avaliação do Jogo Sério Casual "Super Mecafish"a partir da Adaptação do Métod...
 
A atuação de Sea Hero Quest como serious games
A atuação de Sea Hero Quest como serious gamesA atuação de Sea Hero Quest como serious games
A atuação de Sea Hero Quest como serious games
 
Aplicando SCRUM no desenvolvimento de jogos eletrônicos na universidade
Aplicando SCRUM no desenvolvimento de jogos eletrônicos na universidadeAplicando SCRUM no desenvolvimento de jogos eletrônicos na universidade
Aplicando SCRUM no desenvolvimento de jogos eletrônicos na universidade
 
Indústria de Games e Introdução ao Construct 3
Indústria de Games e Introdução ao Construct 3Indústria de Games e Introdução ao Construct 3
Indústria de Games e Introdução ao Construct 3
 
Escuta Ativa
Escuta AtivaEscuta Ativa
Escuta Ativa
 
Uaná Etê Game Turístico
Uaná Etê Game TurísticoUaná Etê Game Turístico
Uaná Etê Game Turístico
 
Comunicação Não Violenta
Comunicação Não ViolentaComunicação Não Violenta
Comunicação Não Violenta
 
Trello Consultoria - Escritório Virtual
Trello Consultoria - Escritório VirtualTrello Consultoria - Escritório Virtual
Trello Consultoria - Escritório Virtual
 
GDD - Jogo Marmarof
GDD - Jogo MarmarofGDD - Jogo Marmarof
GDD - Jogo Marmarof
 
GDD - Jogo Garbage Collector
GDD - Jogo Garbage CollectorGDD - Jogo Garbage Collector
GDD - Jogo Garbage Collector
 
Trabalho de Conclusão de Período V
Trabalho de Conclusão de Período VTrabalho de Conclusão de Período V
Trabalho de Conclusão de Período V
 
Palestra sobre Gamificação no Dia a Dia
Palestra sobre Gamificação no Dia a DiaPalestra sobre Gamificação no Dia a Dia
Palestra sobre Gamificação no Dia a Dia
 
Apresentação Caminho dos Vagalumes - TCP 4
Apresentação Caminho dos Vagalumes - TCP 4Apresentação Caminho dos Vagalumes - TCP 4
Apresentação Caminho dos Vagalumes - TCP 4
 
Game Bible - Caminho dos Vagalumes
Game Bible - Caminho dos VagalumesGame Bible - Caminho dos Vagalumes
Game Bible - Caminho dos Vagalumes
 
Pensamento Computacional para Educação Libertadora
Pensamento Computacional para Educação LibertadoraPensamento Computacional para Educação Libertadora
Pensamento Computacional para Educação Libertadora
 
Quero ser desenvolvedor(a) de aplicações, como começar?
Quero ser desenvolvedor(a) de aplicações, como começar?Quero ser desenvolvedor(a) de aplicações, como começar?
Quero ser desenvolvedor(a) de aplicações, como começar?
 
Fluxo de tarefas tcp32018.1
Fluxo de tarefas tcp32018.1Fluxo de tarefas tcp32018.1
Fluxo de tarefas tcp32018.1
 
Game Bible - Ouroboros
Game Bible - OuroborosGame Bible - Ouroboros
Game Bible - Ouroboros
 
Trello - workshop interno Cinema Nosso e Jabuti Filmes
Trello - workshop interno Cinema Nosso e Jabuti FilmesTrello - workshop interno Cinema Nosso e Jabuti Filmes
Trello - workshop interno Cinema Nosso e Jabuti Filmes
 

GPGPU Game Design

  • 1. Techniques for Designing GPGPU Games(Mark Joselli, José Ricardo da Silva Junior, Marcelo Zamith, Esteban Clua, Mateus Pelegrino, Evandro Mendonça MediaLab- IC/UFF Universidade Federal Fluminense)¹ Anny Caroline, Emerson Silva e Herick HenriqueGrupo: SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 2. ORGANIZAÇÃO DA APRESENTAÇÃO ◎ Introdução ◎ Trabalhos Relacionados ◎ Técnicas Utilizadas ◎ Arquitetura ◎ Resultados ◎ Conclusão SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 3. I. Introdução SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 4. Arquitetura Multi-Thread pode ser utilizada para um processamento genérico e permite que os videogames possam performar em paralelismo. Em um jogo, a arquitetura executa tarefas em paralelo, utilizando todo o potencial dos hardwares. INTRODUÇÃO SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 5. Loop Principal de Um Jogo Geralmente são divididos em três categorias, nas quais possibilita um modelo de arquitetura que implementa os processos da lógica do jogo dentro de uma GPU: - Recebimento de dados: executado preferencialmente pela CPU; - Processamento de dados: processados pela CPU e ou GPU - Apresentação de dados: imagens processadas pela GPU e áudios pelo CPU INTRODUÇÃO SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 6. O desenvolvimento de GPUs programáveis têm proporcionado novas possibilidades para a chamada Unidade de Processamento Gráfico de Propósito Geral (GPGPU), utilizada para elevar o nível de realismo das simulações virtuais. Contudo, ao utilizar a GPGPU normalmente dividimos o processamento das tarefas entre a GPU e a CPU, desta forma pode ocorrer limitações nas simulações, devido a necessidade de grande transferência de dados entre elas. A proposta deste artigo refere-se a implementar todos os métodos do jogo inteiramente na GPU, utilizando a arquitetura CUDA, conseguindo assim manter a comunicação GPU-CPU no mínimo. INTRODUÇÃO SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 8. Processamento Sequencial x Paralelo A arquitetura de GPUS são especialmente desenhadas para processar tarefas que necessitam uma alta taxa de cálculos matemáticos e largura de banda (muitos dados). A GPU para performar, necessita de um tipo de programação diferente da tradicional, que é a sequencial, sendo que esta é utilizada na CPU. Os desenvolvedores necessitam utilizar paralelismo para que seja possível utilizar todo o poder de processamento da GPU, como a arquitetura apresentada neste artigo. TRABALHOS RELACIONADOS SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 9. Técnicas nos Jogos Existem várias técnicas que lidam com a área de atuação do GPGPU , contudo a técnica mais a utiliza são as direcionadas a física do jogo. Atualmente, observa-se que todos os maiores motores de física dos jogos no mercado, fizeram ou tem feito tentativas de usar a GPU para processar estes cálculos. Um dos mais impressionantes é o nVIDIA PhysX, que é um motor de física que usa a arquitetura CUDA para otimizar os cálculos. TRABALHOS RELACIONADOS SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 10. Técnicas nos Jogos Também podem ser utilizadas na GPGPU a lógica e as IAs dos jogos, porém estas áreas ainda não foram completamente exploradas. Normalmente utiliza-se uma FSM na GPU, porém é uma funcionalidade bastante primitiva, que não deve ser usada para jogos. Além disso, a GPGPU pode ser também encontrada na simulação de multidões, que podem ser usados para simular, por exemplo, comportamento de rebanho, soldados no campo de batalha dentre outros. Essas funcionalidades são particularmente importantes, desde que propõem um simples modelo de IA a ser implementado na arquitetura da GPU. TRABALHOS RELACIONADOS SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 11. Diferencial Deste Trabalho O artigo estudado, propõe uma metodologia que se diferencia das demais, por abordar uma arquitetura que aloca todas as tarefas do jogo, necessariamente para ser processada pela GPU. Cabe ressaltar que os autores deste artigo, não encontraram dentro da literatura, nenhum outro trabalho que utiliza-se a GPU para processar a lógica do jogo inteiramente. TRABALHOS RELACIONADOS SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 12. III. Técnica utilizada neste trabalho Descrição resumida da abordagem utilizada pelos autores SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 13. “ Muitos jogos utilizam GPGPU para processar partes de uma tarefa (uma parte na GPU e outra na CPU). Isto requer muita transferência de dados entre eles, podendo causar um gargalo.² SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 14. TÉCNICA UTILIZADA NESTE TRABALHO Mínima Comunicação entre GPU x CPU Implementação de todos os métodos do jogo na GPU com o uso da Arquitetura CUDA. Memória Compartilhada A arquitetura foi adaptada para utilização da memória compartilhada, pois esta só pode ser acessada por threads de do bloco em que foi criado, no qual possuem vida finita. Divisão Espacial (colisão e agentes) Grid uniforme com custo de construção constante e grid de vizinhança SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 15. TÉCNICA UTILIZADA NESTE TRABALHO CASO DE TESTE O caso de teste é um projeto e implementação do GPUWars game, que é um atirador 2D que tem tarefas paralelas, IA, física e pontuação do jogo, que são todos processados no GPU SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 16. IV. A Arquitetura Descrição resumida da abordagem utilizada pelos autores SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 17. ARQUITETURA Aquisição de data Inputs do jogador que são os comandos que o mesmo efetua na aplicação que é utilizada pela CPU. Processamento de data Controla a lógica dentro do jogo como física e IA que será feita pela GPU neste caso. Apresentação de data Feedback ao jogador utilizando áudio e imagem que será trabalho da GPU também. Jogos de Computadores utilizam de diversos campos de conhecimento como renderização, IA, física, etc. Estes podem ser divididos em três tipos de tarefas gerais. SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 18. A aplicação em destaque utiliza de multithreading CUDA com GPGPU. A informação entre CPU-GPU é uma estrutura encapsulada para manter o mínimo de comunicação. RNG não existe no contexto GPGPU, então foi utilizado uma criada na demo da nVidia. ARQUITETURA SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 19. Criação de tiros, inimigos e animações utiliza uma lista de valores disponíveis para criação dos mesmos, que faz com que a GPU crie threads vazios Para evitar perda de performance por sincronização destes threads, se agrupam os threads que têm funções similares em um bloco ARQUITETURA SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 20. A inteligência artificial do jogo se movimenta pela distância de visão de cada indivíduo. Para isso se utilizou grades uniformes e de vizinhos a fim deles se agruparem e saberem a proximidade entre eles. ARQUITETURA SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 21. V. Resultados Descrição resumida dos resultados obtidos pelos autores SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 22. ◎ Os testes resultaram numa taxa de 45 a 58 FPS considerada otimizada ◎ Testes com CPU calculando a IA resultou em 30 FPS com 8k de inimigos E 22 FPS com 4k de inimigos utilizando somente a CPU RESULTADOS SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 23. VI. Conclusão SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 24. Arquiteturas Multithread são Tendência Diferencial de abordagem deste projeto, desenvolvendo a lógica do jogo toda na GPU; Os conceitos da arquitetura proposta também podem ser aplicados a outros processadores multi-core; Como desvantagem é que para aproveitar ao máximo o poder da GPU, todas as tarefas do jogo devem ser implementado em kernels GPGPU; SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 25. 1. JOSELLI, M., SILVA JUNIOR, J. R., ZAMITH, M., SOLURI, E., MENDONCA, E., PELEGRINO, M., AND CLUA, E. W. G. 2012. Techniques for designing gpgpu games. In Games Innovation Conference (IGIC), 2012 IEEE International, 78–82 1. J. Krueger, “A gpu framework for interactive simulation and rendering of fluid effects,” IT - Information Technology, vol. 4, p. (accepted), 2008. [Online]. Available: http://www.sci.utah.edu/publications/krueger08/GPU framework.pdf REFERÊNCIAS SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 26. Techniques for Designing GPGPU Games (Mark Joselli, José Ricardo da Silva Junior, Marcelo Zamith, Esteban Clua, Mateus Pelegrino, Evandro Mendonça MediaLab- IC/UFF Universidade Federal Fluminense)¹ Anny Caroline, Emerson Silva e Herick HenriqueGrupo: SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES
  • 27. SEMINÁRIO | 2017.2 | JOGOS PARA CONSOLES