Qu'est-ce qu'un acteur dans le développement de jeux?


15

Je lis un livre sur le développement de jeux ( Game Coding Complete, Fourth Edition ) et il y a un sujet "Acteurs" qui explique simplement comment les utiliser brièvement au lieu d'expliquer ce que c'est.

Voici comment le livre présente ces acteurs:

Les jeux regorgent d'objets qui donnent vie à votre monde. Un jeu de la Seconde Guerre mondiale pourrait être plein de chars et d'avions, tandis qu'un jeu futuriste de science-fiction pourrait avoir des robots et des vaisseaux spatiaux. Comme des acteurs sur scène, ces objets sont au cœur du gameplay. Il semble approprié que nous les appelions des «acteurs de jeu» car c'est exactement ce qu'ils sont.

Un acteur de jeu est un objet qui représente une seule entité dans votre monde de jeu. Il peut s'agir d'un ramassage de munitions, d'un tank, d'un canapé, d'un PNJ ou de tout ce à quoi vous pouvez penser. Dans certains cas, le monde lui-même pourrait même être un acteur. Il est important de définir les paramètres des acteurs du jeu et de s'assurer qu'ils sont aussi flexibles et réutilisables que possible.

Il existe autant de façons de définir un acteur de jeu qu'il y a de jeux. Comme tout le reste dans la programmation informatique, il y a rarement une solution parfaite.

Je ne pouvais comprendre que très peu de choses: c'est une abstraction de tout dans le jeu qui peut effectuer des actions; il a son propre état; son comportement est généralement implémenté comme une machine à états. Ça y est. Je viens avec une formation en programmation système pour le développement de jeux, et donc je voudrais savoir en général ce que l' acteur est dans le développement de jeux, comment l'utiliser, comment il est utilisé en général, quel problème il résout, comment et Pourquoi. J'aimerais que l'explication soit telle qu'un enfant puisse comprendre.

J'ai essayé de trouver ces informations sur google mais cela me dirige vers un autre "acteurs" à la place: la programmation simultanée la plupart du temps ou des acteurs de jeux mais sans une bonne explication.


@Philipp J'ai ajouté le livre. Cependant, il y a une explication très brève actormais je ne suis pas satisfait: cela n'apporte aucune raison historique ou pratique à l'invention des acteurs et quel problème il résout, il suffit d'expliquer ce qu'il peut être.
Victor Polevoy

1
Dans Unreal Engine, an Actorest en fait une classe. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/…
Almo

2
Je crois que la plupart des moteurs appellent ces «entités» ou «objets de jeu»; Je n'ai jamais entendu "acteur" dans ce contexte.
user253751

7
Votre texte de bloc cité est une réponse aussi bonne à la question de "qu'est-ce qu'un acteur" que vous allez l'obtenir.
Russell Borogove

Pour rendre les choses plus confuses, il y a aussi des acteurs dans le modèle d'acteur , qui est apparemment différent.
Brian McCutchon

Réponses:


40

Comme vous l'avez mentionné, un acteur peut être n'importe quoi; arbres, PNJ, bâtiments, etc. Un terme similaire est "entité". Il n'a pas besoin d'avoir un comportement au sens traditionnel, il peut être statique.

C'est juste une façon de dire "un objet dans le jeu".


2
Donc, c'est juste termsimilaire à entity, d'accord. J'ai pensé qu'il avait aussi un sens à quelque chose de plus, pensais que c'était une abstraction plus grande qu'un simple synonyme. Pourriez-vous également dire ce qui devrait être un acteur et ce qui ne devrait pas l'être? Avec quoi dois-je opérer pour choisir cela?
Victor Polevoy

Actorest en fait une classe dans Unreal Engine. Eh bien, il était de toute façon de retour dans la version 2. Il ne s'agit donc peut-être pas simplement d'un terme en fonction du moteur que vous utilisez.
Almo

1
Cela ressemble à tout dans un jeu est un acteur, ce qui rendrait ce mot inutile. Je dirais que tout ce qui peut changer le gamestate est un acteur. Ensuite, un arbre n'est pas un acteur s'il n'est qu'une image d'arrière-plan, mais si vous pouvez le couper et gagner des ressources, il l'est. Les menus, d'autre part, font quelque chose, mais je ne les classerais pas comme des acteurs, ils ne font pas partie du monde du jeu (principalement, par exemple, dans le jeu flash "mise à niveau terminée", les menus font en fait partie du monde du jeu).
syntonym

@syntonym Le deuxième paragraphe du texte cité dans la question indique que tout peut être un acteur, même des canapés. De plus, tout n'est pas un acteur, les particules par exemple ne le sont pas.
Bálint

@ Bálint intéressant, j'ai pensé que les particules sont aussi des acteurs. Ils doivent cocher la mise à jour, ils doivent penser (physique), ils ont un état. N'est-ce pas?
Victor Polevoy

13

D'après ma compréhension, le terme est un effet secondaire de l'embauche d'écrivains pour faire les histoires pour les jeux. Puisqu'ils proviennent généralement du théâtre ou de l'écran, ils sont habitués aux termes Actoret Prop. Actorsêtre des choses qui bougent et jouent un vrai rôle dans le jeu, et Propsêtre des choses comme des arbres, des bâtiments, etc.

Depuis mes premiers jours de codage à l'université, avant de pouvoir utiliser un moteur comme Unity, nous devions coder notre propre moteur. Actorétait une classe de base abstraite qui avait une transformation, des fonctions de cycle de vie vides et une fonction appelée Act()qui était notre version de Unity Update().

Notre boucle de jeu principale a essentiellement suivi:

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

La plupart des moteurs utilisent le concept Entity, donc à partir de votre lecture, traduisez simplement Actorcomme Entitydans votre tête et tout ira bien.


+1 J'aime que cela illustre le fait que vous avez besoin d'un nom pour une classe de base.
Vaillancourt

2
D'après ma compréhension, le terme est un effet secondaire de l'embauche d'écrivains pour faire les histoires pour les jeux. Comme ils proviennent généralement du théâtre ou de l'écran, ils sont habitués aux termes Acteur et Prop. {{citation needed}} Un terme "acteur" est suffisamment générique pour être utilisé dans la conception de logiciels bien avant que les gens ne songent à embaucher des écrivains pour les jeux (aussi, il a été utilisé dans UML etc, des choses qui ont été utilisées pour le développement commercial). Le dictionnaire (MW) dit ceci Definition of actor: 1 : one that acts : doer:; Je ne vois aucun lien théâtral ici.

Pour être juste, je l'ai dit par ma compréhension. Vous avez peut-être raison, mais les gens sont au moins habitués à l'idée d'acteur et d'accessoire dans ce contexte, ce qui donne une explication utile à l'Asker.
Stephan

Moi aussi, je dirais que le terme Acteur ne vient pas de l'embauche d'écrivains, mais qu'il peut provenir du désir précoce des développeurs de jeux de chasser Hollywood. :)
dash-tom-bang
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.