Curiosidade - Jogos Multitarefa - Dúvida

eu não desenvolvo jogos, nunca desenvolvi,

mais me bateu uma curiosidade…

se um jogo fosse feito em java, e eu tivesse 2 personagens, e no fundo uma animação programada…

eu deveria ter 3 treads, um para cada objeto, e eles concorrendo entre si…ou seria como no exemplo abaixo:

[code]while(true){

P1.ocorreuAlgo() ? P1.facaAlgo();

P2.ocorreuAlgoP2() ? P2.facaAlgo();

Cenario.facaAlgo();
}[/code]

minha curiosidade é, existem jogos multi-tarefa, quanto monotarefa ? ou somente monotarefa ?

se fosse multi-tarefa, não daria diferença na jogabilidade? de um player para outro…

oi douglaskd,

Sim, seria mais ou menos nessa sua lógica do loop! Basicamente o jogo é isso mesmo! Por exemplo:

enquanto o personagem x estiver vivo{ move o personagem x; move o personagem y; calcula alguma colisão ou algo do tipo; repinta o mundo; loop }Eu acho que li algo que o Vini ou outra pessoa tinha escrito, que n treads em um jogo “simples” como esse causa muitos transtornos. O loop (ou uma só thread com esse intuito) já resolve muita coisa.

Jogos usam poucas threads um game loop geralmente possui três passos principais:

-Captura entrada do usuário
-Atualiza o estado dos objetos
-Renderiza os objetos na tela

Threads no contextos de games geralmente são utilizadas para carregar recursos,
como imagens, mapas, sons, etc…

Mas como as atualizações são muito rápidas, parece que os objetos estão se movimentando
como se fossem thredas diferentes.

Existem alguns artigos no site www.pontov.com.br do vinigodoy que explicam essa teoria melhor.

Abraço