Jogos enquanto software
description
Transcript of Jogos enquanto software
Componentes de um jogo, desenvolvimento
Jogos enquanto software
O que é um jogo?Ponto de vista conceitual
Teoria do jogoDiversão x DesafioRegras, mecânicas, subsistemas
Ponto de vista técnicoUm software extremamente complexoPadrões de projeto, inteligência artificial,
otimizaçãoProgramação criativa, porém profissional
Componentes de um jogoMotor (game engine) game loop,
rendererAgentes máquina de
estadosFases (levels) maior parte do
jogoInteligência Artificial (IA) complexidadeSimulação de física complexidadeServidor (online multiplayer)
Motor vs API
MotorGame loop - laço
principal do jogoBase para
praticamente todos jogos existentes
Gera pulsos de atualização do estado do jogo
function gameloop(){ while (ativo){
input();update();render();}}
MotorGame loop - controle
de taxa de framesFrames de
atualização do estado (update)
Frames de atualização da tela (render)
function gameloop(){ while (ativo){input();update();if (renderingDone){
render();}}
}
function gam
eloop()
{while
(ativo)
{input(
);
if (getTime(
) - t > 1000
)
{ up
date();
render()
;
t = getT
ime();
}}
}
MotorJogo sem game loop
Jogos baseado inteiramente em eventos
Só possui ação em função da entrada do jogador
event onKeyPressed(key){ update(key); render();}
Máquinas de estadosRepresentação de estados e transiçõesAutômato finito
avançando próximo
agarrando atacandorecuando
parado
Oponentelonge
Oponenteperto
Oponentelonge
Oponentedefendendo
Oponenteparado
Final docenário
Oponentelonge
Oponenteperto
Máquinas de estadosExemplo:
Interpretação de entrada do usuário
03
12
HS
0 3
1 2
HS
Editores e outras ferramentasFerramentas auxiliaresGeralmente desenvolvidas apenas para um
projetoEditores de fase, de comportamento, de
animaçãoAtualmente vários motores possuem editores
embutidosO reaproveitamento das ferramentas e
padrões é um motivador para sequências e jogos baseados no mesmo motor
Desenvolvimento profissionalOrientação a ObjetosPadrões de Projeto (Factory, Director, MVC)Tecnologias de dados (XML, DB)Tecnologias de desenvolvimento (Java, Xna,
ActionScript)Integração com arte (animações e som)Conhecimento da plataforma e suas
limitações
ConclusãoJogos são software complexos, que embora possam ser desenvolvidos por uma única pessoa, é preciso que esta pessoa tenha embasamento profissional.