Anda di halaman 1dari 4

PROJETO E PROGRAMAÇÃO DE JOGOS Conceitos de jogo e regras

Por que jogamos? O aprendizado proporciona diversão (Raph Koster). Jogar permite tentar e falhar sem maiores
consequências (Jesper Juul). Outras explicações: imersão, fluxo.

Percepção sensorial -> Sentimentos -> Pensamentos -> Personalidade -> Histórico

Jogo -> Objetivo -> Regras -> Desafio ou conflito -> Interação -> Escolhas significativas

Objetivo do jogo

Condições de vitória para o jogador

Em alguns casos, jogadores podem definir seus próprios objetivos, diferentes do proposto pelo jogo

Desafio ou conflito

Desafio: oposição na forma de obstáculos, enigmas a serem decifrados, testes de habilidade dos jogadores

Conflito: oposição na forma de competidores, inimigos, personagens que agem contra os jogadores

Ação do jogador -> regra do Jogo -> Feedback

Percepção pelos jogadores que suas decisões afetam o resultado do jogo

Pode incluir desde decisões momento a momento (baseadas em reflexos) até planos estratégicos

Narrativas em jogos

Narrativas podem adicionar contexto e significado à interações e eventos do jogo

Assim, podem justificar os objetivos, explicar os desafios ou conflitos e tornar as escolhas mais significativas

O que é game design

Jogo -> Interação **** Experiência <- Jogador

Game design é projetar a experiência que será vivenciada pelo jogador. Isso é feito indiretamente, através do projeto
dos diversos elementos do jogo.

Organização de um jogo digital

Jogos são softwares interativos

Usuário -> dispositivo de entrada -> software (coletar entradas, atualizar sistema, gerar saída) <- dispositivo de saída

O fluxo de um jogo Inicialização -> coleta de entradas -> simulação -> geração de saídas -> desligamento

O “main loop” coleta de entradas -> simulação (comportamente, regras, física) -> geração de saídas (renderização,
áudio, rede)

Coleta de entradas -> simulação -> geração de saídas


Processamento paralelo

Coleta de entradas -> simulação -> atualização do estado -> próximo estado => estado atual -> renderização -> áudio

Subsistemas de um jogo INPUT REDE IA/Comportamento -> animação -> renderização -> ARQUIVO <- áudio

Simulação física -> detectação de colisão

Entidades de jogos: Em um jogo, as entidades podem ser variadas. Uma solução comum é a criação de uma entidade
genérica com agregação de objetos para funcionalidades específicas.

GameObject -> visualObject -> PhysicsObject -> Behavior -> Mesh -> Animation

“Data-driven design”: Trata-se da prática de separar os algoritmos e estrutura do jogo de parâmetros e dados. Com o
tempo, essa flexibilização passou a incluir scripts.

Arquivo de dados >> Algoritmos do jogo << Parâmetros >> Regras do jogo << Scripts

Editor de mapas  arquivo de dados contendo o mapa  Algoritmo para desenho do mapa

Game engines são bibliotecas ou arcabouços de software que agregam técnicas e modelos reutilizáveis na
implementação de jogos digitais.

Atualmente, vários game engines também incluem ferramentas de edição que simplificam o processo de configuração
de mapas, animações e comportamentos.

GAME ENGINES  lógica específica do jogo  APIs de baixo nível de abstração  sistema operacional e drivers.

Organização de um engine: arquivos  gerenciador de cena (animação – IA/ comportamento), (renderização,áudio),


(input-rede)  simulação física  detecção de colisão.

Renderização e estrutura de cena (Bitmaps e pixels - Animação por quadros), Animação por quadros, Tile sets

Questões técnicas

- Memória ocupada por tile sets e animações - Renderização de partes alteradas da tela
- Limites no número de quadros - Imagens contendo múltiplos quadros
- Compactação de dados - Diferenças de tamanho de telas
- Tempo de execução para desenhar cenas - Tamanho fixo ou ampliação

Renderização 3D

Transformações -> iluminação -> eliminação de faces ocultas -> recorte -> projeção -> rasterização -> mapeamento de
texturas

Objetos gráficos: Instance -> Object3D -> (skeleton, mesh, material, animation) material (texture,shader)

Estruturas de cena: GAME -> Scene -> GAMEOBJECT -> instance -> object3D

Subdivisão do espaço ---- Octrees

LEVEL OF DETAIL (LOD)

Interface de usário
Interação e comportamento -> coleta de entradas -> Gerenciador de entradas  (lista de ações, fila de eventos)

Mapa de ações  teclado (tecla A, tecla “enter”, tecla “espaço”  andar para a esquerda, ativar item, pular  JOGO

Implementação de regras

Muitas regras de jogo podem ser implementadas como simples condições

Alguns game engines organizam essa lógica na forma de eventos tratados pelas entidades de jogo

Questões técnicas

1. Como lidar com diferentes modos ou fases de jogo?

2. Como agrupar regras que se referem a um mesmo comportamento de uma entidade de jogo?

Máquinas de estado finito: GUARDA – ruído – PATRULHA – inimigo avistado – (inimigo avistado) ATAQUE – muito ferido
FUGA

Estados de jogos: TÍTULO (configurar) (iniciar o jogo) JOGO – OPÇÃO  comando de pausa (PAUSA)

Implementação de MEF

Detecção de colisão – No laço principal  movimentação das entidades – testes de colisão  simulação física/testes de
colisão  eventos de colisão

Tipos de colisão: entre 2 entidades de jogos – entre raio e entidades

Questões técnicas

1. Testar todas as possíveis colisões entre N entidades = O(N2)

2. Testar interseção entre duas malhas de N triângulos = O(N2)

Grupos de colisão – Subdivisão do espaço – formas simplificadas – hierarquia de volumes

A – B – C matriz de pixels

Octrees para colisão

Composição de técnicas

Visando maior eficiência, é possível encadear diferentes técnicas de detecção de colisão, em ordem crescente de
complexidade.

Considerando trajetórias

Projeto e documentação de um jogo digital

Experiência e diversão -> Jogo produto (cronograma e orçamento) e software (correto e completo)

Atividades de projeto
Programação

- implementar interação, renderização, regras do jogo etc... Game design

- definir e testar roteiro, mapas, regras.....Produção de recursos artísticos

- criar modelos 3D, imagens, texturas, efeitos sonoros, música etc.

Concepção  pré-produção  controle de qualidade (QA)  manutenção (planejamento, ideias, prototipação 


lançamento

Documento de design

Objetivos: -Comunicar ideias -Documentar decisões -Manter a consistência do projeto

Os vários documentos: documento de design – resumido – detalhado

Documento técnico

Refêrencia de narrativa – referência de arte

Exemplo de documento

1. Resumo 2. Público e mercado 3. Estrutura do jogo 3.1. Resumo 3.2. Objetivo, regras 3.3. Interface
4. Contexto (personagens, história etc.) 5. Especificações técnicas

Prototipação

Por que fazer protótipos?

Testes de viabilidade Tecnologia (estabilidade, desempenho, forma de utilização, Comparação de alternativas)

Um bom protótipo...

É desenvolvido com objetivos claros Tem custo reduzido (comparado ao desenvolvimento do produto)

Tem ciclo de vida definido

Projeto iterativo

ITERAÇÃO de projeto (requisitos, testes, especificação, implementação) (versão 0.1, versão 0.2)

DESAFIOS DE PROJETOS

1.Como coordenar diferentes processos (programação, design e arte)?

2. Como gerenciar a liberdade criativa de forma positiva para o projeto?

3. Como integrar efetivamente testes com os usuários no processo?

Revisão e tópicos adicionais

Escolha de game engines Ferramentas Aspectos Técnicos Linguagem de scripting


Aspectos de Produção adicionais Documentação Formatos de mídia
Especialização do engine Suporte técnico Arquitetura Extensibilidade
Plataforma Licença de utilização Linguagem de programação
Funcionalidades
Game Feel

Adaptatividade em jogos  regras do jogo  mecanismo adaptativo  sensor  estado do jogo 

Anda mungkin juga menyukai