O que é um ator no desenvolvimento de jogos?

15

Estou lendo um livro sobre desenvolvimento de jogos ( Game Coding Complete, quarta edição ) e há um tópico "Atores" que apenas explica como usá-los brevemente, em vez de explicar o que é.

Veja como o livro apresenta esses atores:

Os jogos estão cheios de objetos que dão vida ao seu mundo. Um jogo da Segunda Guerra Mundial pode estar cheio de tanques e aviões, enquanto um jogo futurista de ficção científica pode ter robôs e naves espaciais. Como atores em um palco, esses objetos estão no centro da jogabilidade. Parece apropriado chamá-los de "atores do jogo", porque é exatamente isso que eles são.

Um ator de jogo é um objeto que representa uma única entidade no seu mundo de jogo. Pode ser uma coleta de munição, um tanque, um sofá, um NPC ou qualquer coisa que você possa imaginar. Em alguns casos, o próprio mundo pode até ser ator. É importante definir os parâmetros dos atores do jogo e garantir que eles sejam o mais flexíveis e reutilizáveis ​​possível.

Existem tantas maneiras de definir um ator de jogo quanto existem jogos. Como tudo na programação de computadores, raramente existe uma solução perfeita.

Eu só conseguia entender muito poucas coisas: é uma abstração de tudo no jogo que pode executar ações; tem seu próprio estado; seu comportamento geralmente é implementado como uma máquina de estado. É isso. Estou voltando com a programação de sistemas para o desenvolvimento de jogos e, portanto, gostaria de saber em geral, o que o ator está no desenvolvimento de jogos, como usá-lo, como é usado em geral, que problema resolve, como e porque. Eu gostaria que a explicação fosse tal que uma criança pudesse entender.

Eu tentei encontrar essas informações no google, mas elas me encaminham para outros "atores": programação simultânea na maioria das vezes ou atores de jogos, mas sem uma boa explicação.

Victor Polevoy
fonte
@ Philipp Adicionei o livro. Embora, não é alguns muito breve explicação de actor, mas não estou satisfeito com ele: ele não traz quaisquer razões históricas ou práticas para a invenção de atores e qual o problema que resolve, não é apenas explicando o que ele pode ser.
22817 Victor Polevoy #
1
No Unreal Engine, um Actoré realmente uma classe. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/…
Almo
2
Eu acredito que a maioria dos mecanismos chama essas "entidades" ou "objetos de jogo"; Eu nunca ouvi "ator" neste contexto.
user253751
7
O texto do seu bloco citado é uma resposta tão boa para a pergunta "o que é um ator" quanto você receberá.
precisa saber é o seguinte
Para tornar as coisas mais confusas, também existem atores no Modelo do Ator , que é aparentemente diferente.
Brian McCutchon

Respostas:

40

Como você mencionou, um ator pode ser literalmente qualquer coisa; árvores, NPCs, edifícios etc. Um termo semelhante é "entidade". Não precisa ter um comportamento no sentido tradicional, pode ser estático.

É apenas uma maneira de dizer "um objeto no jogo".

Bálint
fonte
2
Então isso é termparecido com entity, ok. Eu pensei que também tem significado para algo mais, pensei que é uma abstração maior do que apenas um sinônimo. Você poderia também dizer o que deveria ser um ator e o que não? Com o que devo operar para escolher isso?
Victor Polevoy
Actoré realmente uma classe no Unreal Engine. Bem, ele estava de volta à versão 2. Portanto, pode não ser apenas um termo, dependendo do mecanismo que você está usando.
Almo #
1
Parece que tudo em um jogo é um ator, o que tornaria essa palavra inútil. Eu diria que tudo o que pode mudar o estado é um ator. Então, uma árvore não é um ator se for apenas uma imagem de fundo, mas se você pode cortá-la e obter recursos, ela é. Os menus, por outro lado, fazem algo, mas eu não os classificaria como atores, eles não fazem parte do mundo do jogo (principalmente, por exemplo, no jogo flash "atualização concluída", os menus são realmente parte do mundo do jogo).
syntonym
@ syntonym O segundo parágrafo do texto citado na pergunta afirma que qualquer coisa pode ser um ator, até sofás. Além disso, nem tudo é ator, partículas, por exemplo, não são.
Bálint
@ Bálint interessante, eu pensei que as partículas são atores também. Eles precisam acompanhar a atualização, precisam pensar (física), têm um estado. Não é?
22817 Victor Polevoy
13

Pelo meu entendimento, o termo é um efeito colateral da contratação de escritores para criar histórias para jogos. Como eles geralmente vêm do teatro ou da tela, estão acostumados aos termos Actore Prop. Actorssendo coisas que se movem e desempenham um papel real no jogo, e Propssão coisas como árvores, edifícios etc.

Desde meus primeiros dias de codificação na faculdade, antes de termos permissão para usar um mecanismo como o Unity, tivemos que codificar nosso próprio mecanismo. Actorera uma classe base abstrata que tinha uma transformação, funções vazias do ciclo de vida e uma função chamada Act()que era nossa versão do Unity Update().

Nosso loop principal do jogo seguiu basicamente:

for(Actor actor in actors)
{ 
   actor.Act(); 
}

A maioria dos mecanismos usa o conceito de entidade; portanto, a partir da sua leitura, basta traduzir Actorcomo está Entityna sua cabeça e você ficará bem.

Stephan
fonte
+1 Gosto disso, ilustra o fato de que você precisa de um nome para uma classe base.
Vaillancourt
2
Pelo meu entendimento, o termo é um efeito colateral da contratação de escritores para fazer histórias para jogos. Como eles geralmente vêm do teatro ou da tela, eles estão acostumados aos termos Ator e Prop. {{citation needed}} Um termo "ator" é genérico o suficiente para ser usado no design de software muito antes de as pessoas sequer pensarem em contratar escritores para jogos (também era usado em UML etc, coisas que foram usadas para o desenvolvimento de negócios). O dicionário (MW) diz o seguinte Definition of actor: 1 : one that acts : doer:; Não vejo nenhuma conexão teatral aqui.
Para ser justo, eu disse pelo meu entendimento. Você pode estar certo, mas as pessoas estão pelo menos acostumadas com a idéia de ator e ator nesse contexto, o que empresta uma explicação útil ao Asker.
21417 Stephan Stephan
Eu também diria que o termo Ator não vem da contratação de roteiristas, mas pode vir do desejo inicial dos desenvolvedores de jogos de perseguir Hollywood. :)
dash-tom-bang