Was ist ein Schauspieler in der Spieleentwicklung?

15

Ich lese gerade ein Buch über Spieleentwicklung ( Game Coding Complete, Fourth Edition ) und es gibt ein "Actors" -Thema, in dem nur kurz erklärt wird, wie man sie verwendet, anstatt zu erklären, was es ist.

In diesem Buch werden die folgenden Schauspieler vorgestellt:

Spiele sind voller Objekte, die Ihre Welt zum Leben erwecken. Ein Spiel aus dem Zweiten Weltkrieg könnte voller Panzer und Flugzeuge sein, während ein futuristisches Science-Fiction-Spiel Roboter und Raumschiffe enthalten könnte. Wie Schauspieler auf einer Bühne stehen diese Objekte im Mittelpunkt des Gameplays. Es scheint passend, dass wir sie "Spielschauspieler" nennen, weil sie genau das sind, was sie sind.

Ein Spieldarsteller ist ein Objekt, das eine einzelne Entität in Ihrer Spielwelt darstellt. Es kann sich um eine Munition, einen Panzer, eine Couch, einen NPC oder irgendetwas handeln, woran Sie denken können. In einigen Fällen könnte die Welt selbst sogar ein Schauspieler sein. Es ist wichtig, die Parameter der Spieldarsteller zu definieren und sicherzustellen, dass sie so flexibel und wiederverwendbar wie möglich sind.

Es gibt so viele Möglichkeiten, einen Spieldarsteller zu definieren, wie es Spiele gibt. Wie alles in der Computerprogrammierung gibt es selten eine perfekte Lösung.

Ich konnte nur sehr wenige Dinge verstehen: Es ist eine Abstraktion von allem im Spiel, was Aktionen ausführen kann; es hat seinen eigenen Zustand; Sein Verhalten wird normalerweise als Zustandsmaschine implementiert. Das ist es. Ich komme mit Systemprogrammierungs-Hintergrundwissen zur Spieleentwicklung und möchte im Allgemeinen wissen, was der Schauspieler in der Spieleentwicklung bedeutet, wie er verwendet wird, wie er im Allgemeinen verwendet wird, welches Problem er löst, wie und Warum. Ich möchte, dass die Erklärung so ist, dass ein Kind sie verstehen kann.

Ich habe versucht, diese Informationen auf Google zu finden, aber es leitet mich stattdessen zu anderen "Schauspielern": meistens gleichzeitiges Programmieren oder Spieleschauspieler, aber ohne eine gute Erklärung dafür.

Victor Polevoy
quelle
@Philipp Ich habe das Buch hinzugefügt. Es gibt zwar einige sehr kurze Erklärungen, actoraber ich bin damit nicht zufrieden: Es bringt keine historischen oder praktischen Gründe für die Erfindung von Schauspielern und welches Problem es löst, es wird nur erklärt, was es sein kann.
Victor Polevoy
1
In Unreal Engine Actorist an eigentlich eine Klasse. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/…
Almo
2
Ich glaube, die meisten Engines nennen diese "Entitäten" oder "Spielobjekte". Ich habe in diesem Zusammenhang noch nie "Schauspieler" gehört.
user253751
7
Ihr zitierter Blocktext ist eine ebenso gute Antwort auf die Frage "Was ist ein Schauspieler?".
Russell Borogove
Um die Sache noch verwirrender zu machen, gibt es auch Schauspieler im Actor Model , was anscheinend anders ist.
Brian McCutchon

Antworten:

40

Wie Sie bereits erwähnt haben, kann ein Schauspieler buchstäblich alles sein. Bäume, NPCs, Gebäude usw. Ein ähnlicher Begriff ist "Einheit". Es muss kein Verhalten im herkömmlichen Sinne haben, es kann statisch sein.

Es ist nur eine Möglichkeit, "ein Objekt im Spiel" zu sagen.

Bálint
quelle
2
Das ist also termähnlich wie entity, okay. Ich habe gedacht, es hat auch eine Bedeutung von etwas mehr, dachte, es ist eine größere Abstraktion als nur ein Synonym. Könnten Sie auch sagen, was ein Schauspieler sein soll und was nicht? Womit soll ich arbeiten, um dies zu wählen?
Victor Polevoy
Actorist eigentlich eine Klasse in Unreal Engine. Nun, es war sowieso wieder in Version 2. Es könnte also nicht nur ein Begriff sein, abhängig davon, welche Engine Sie verwenden.
Almo
1
Das klingt so, als wäre alles in einem Spiel ein Schauspieler, was dieses Wort unbrauchbar machen würde. Ich würde sagen, dass alles, was den Gamestate verändern kann, ein Schauspieler ist. Dann ist ein Baum kein Schauspieler, wenn er nur ein Hintergrundbild ist, aber wenn Sie ihn fällen und Ressourcen gewinnen können, ist er es. Menüs dagegen tun etwas, aber ich würde sie nicht als Schauspieler klassifizieren, sie sind nicht Teil der Spielwelt (meistens, z. B. im Flash-Spiel "Upgrade abgeschlossen", sind die Menüs tatsächlich Teil der Spielwelt).
Syntonym
@syntonym Der zweite Absatz des zitierten Textes in der Frage besagt, dass alles ein Schauspieler sein kann, auch Liegen. Auch ist nicht alles ein Schauspieler, Partikel zum Beispiel nicht.
Bálint
@ Bálint interessant, ich habe gedacht, Partikel sind auch Schauspieler. Sie müssen das Update ankreuzen, sie müssen denken (Physik), sie haben einen Zustand. Oder nicht?
Victor Polevoy
13

Nach meinem Verständnis ist der Begriff ein Nebeneffekt der Einstellung von Autoren, um die Geschichten für Spiele zu machen. Da sie normalerweise aus dem Theater oder von der Leinwand kommen, sind sie an die Begriffe Actorund gewöhnt Prop. ActorsDinge zu sein, die sich bewegen und eine echte Rolle im Spiel spielen, und PropsDinge wie Bäume, Gebäude usw. zu sein.

In meiner Anfangszeit als Programmierer am College mussten wir, bevor wir eine Engine wie Unity verwenden durften, unsere eigene Engine programmieren. Actorwar eine abstrakte Basisklasse mit einer Transformation, leeren Lebenszyklusfunktionen und einer Funktion namens, Act()die unsere Version von Unity war Update().

Grundsätzlich folgte unsere Hauptspielrunde:

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

Die meisten Engines verwenden das Entity-Konzept. Wenn Sie also lesen, übersetzen Sie einfach Actorwie Entityin Ihrem Kopf, und es wird alles gut.

Stephan
quelle
+1 Ich finde es gut, dass Sie einen Namen für eine Basisklasse benötigen.
Vaillancourt
2
Nach meinem Verständnis ist der Begriff ein Nebeneffekt der Einstellung von Autoren, um die Geschichten für Spiele zu machen. Da sie normalerweise aus dem Theater oder von der Leinwand stammen, sind sie an die Begriffe {{citation needed}} "Schauspieler" und "Prop " gewöhnt. Ein Begriff "Schauspieler" ist generisch genug, um im Software - Design verwendet zu werden, lange bevor die Leute überhaupt darüber nachdachten, Schriftsteller für Spiele zu engagieren (außerdem wurde er in der Literatur verwendet) UML usw., Dinge, die für die Geschäftsentwicklung verwendet wurden). Das Wörterbuch (MW) sagt dies Definition of actor: 1 : one that acts : doer:; Ich sehe hier keinen Zusammenhang mit dem Theater.
Um fair zu sein, habe ich nach meinem Verständnis gesagt. Sie mögen Recht haben, aber die Leute sind in diesem Zusammenhang zumindest an die Vorstellung von Schauspieler und Requisiteur gewöhnt, was der Fragestellerin eine nützliche Erklärung gibt.
Stephan
Ich würde auch sagen, dass der Begriff Schauspieler nicht von der Einstellung von Schriftstellern stammt, sondern von dem frühen Wunsch der Spieleentwickler, Hollywood zu jagen. :)
Dash-Tom-Bang