A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desafios de Computação no Desenvolvimento de Jogos

Apresentações semelhantes


Apresentação em tema: "Desafios de Computação no Desenvolvimento de Jogos"— Transcrição da apresentação:

1 Desafios de Computação no Desenvolvimento de Jogos
USPGameDev Desafios de Computação no Desenvolvimento de Jogos Encontro BCC 12/09/2014

2 Quem somos

3 Jogos digitais Estrutura básica

4 Programas interativos
Execução sem fim Detecção de eventos Controle de tempo

5 Game Loop Fonte:

6 Jogos digitais Padrões de projeto

7 Padrões de projeto Como organizar os tipos de objetos do jogo?

8 Herança vs. Composição Fonte:

9 Herança vs. Composição Fonte:

10 Simulando Física Colisões

11 Casos fáceis Círculos d r1 r2

12 Axis-aligned bounding boxes
Casos fáceis Axis-aligned bounding boxes y top2 top1 bottom1 left1 right1 bottom2 left2 right2 x

13 Axis-aligned bounding boxes
Casos fáceis Axis-aligned bounding boxes y top1 top2 bottom1 left1 right1 bottom2 left2 right2 x

14 Círculo vs. retângulo Vamos assumir uma AABB

15 Ponto do retângulo mais próximo da circunferência
Círculo vs. retângulo Ponto do retângulo mais próximo da circunferência xP = max(left,min(right,xC)) yP = max(bottom,min(top,yC)) P

16 Ponto vs. Polígono convexo
Como saber se o ponto está dentro? P

17 Ponto vs. Polígono convexo
Produto vetorial i j k vx vy 0 wx wy 0 vx vy wx wy v × w = = k

18 Ponto vs. Polígono convexo
Usamos o sinal do determinante! i j k vx vy 0 wx wy 0 vx vy wx wy v × w = = k w vx vy wx wy Está fora se > vxwy – vywx > 0 vxwy > vywx (!!!) v P

19 Detectar objetos próximos
Simulando Física Detectar objetos próximos

20 Implementação ingênua
Todos contra todos Colide? obj2 obj3 obj4 ... obj1 ?

21 Implementação ingênua

22 Partição espacial A ideia é agrupar objetos próximos
Exemplo: Quad-Tree Fonte:

23 Outras estruturas conhecidas:
Partição espacial Outras estruturas conhecidas: Grade fixa K-Dimensional Tree Interval K-Dimensional Tree Binary Space Partitioning Tree R-Tree

24 Inteligência Artificial
Definindo comportamentos

25 Máquina de Estados Finita
follow attack rest escape

26 Inteligência Artificial
Path-finding

27 Variação do algoritmo de Dijkstra
Algoritmo A* Variação do algoritmo de Dijkstra

28 Renderização Apresentando o jogo

29 Spritesheets

30 Projeções tridimensionais

31 Projeções tridimensionais
Transformação Linear: T: R² → R2 T(v+u) = T(v) + T(u) T(k.v) = k.T(v) T(0) = 0 Transformação Afim: P: R² → R2 P(v) = T(v) + p P(0) = p x' y P x

32 Projeções tridimensionais
Coordenadas homogêneas a b u x ax + by + u a b 0 x u c d v y = cx + dy + v = c d 0 y + v a b u x ax + by c d v y = cx + dy

33 Rasterização

34 Shadow-casting simples
Sombras Shadow-casting simples

35 Conteúdo procedimental
Autômatos celulares

36 Gramáticas Regras A → ABA B → CC Resultado A ABA ABACCABA
ABACCABACCABACCABA

37 Autômato celular

38 Conteúdo procedimental
Outros algoritmos e técnicas Noises SATs

39 Unlimited Slide Works Obrigado!

40 Unlimited Slide Works Networking Peer-2-peer (Age of Empires)
Client/Server (QuakeWorld) Shaders Multithreading


Carregar ppt "Desafios de Computação no Desenvolvimento de Jogos"

Apresentações semelhantes


Anúncios Google