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.
Actor
é realmente uma classe. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/…
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.