Was ist der Unterschied zwischen "dynamischer Erzeugung" und "prozeduraler Erzeugung"?
15
Wenn ich an ein dynamisch generiertes Spiel denke, denke ich an Dinge wie Diablo mit zufällig generierten Levels. Wenn ich an ein prozedural generiertes Spiel denke, denke ich an Dinge wie Flappy Bird und andere unendliche Läufer.
Aber beide ordnen nur ein Level nach dem Zufallsprinzip zu. Werden ständig prozedural generierte Spiele generiert und dynamisch generierte Spiele werden alle von vornherein generiert? Oder sind diese Begriffe austauschbar?
Was ist der Unterschied zwischen einem dynamisch generierten Spiel und einem prozedural generierten Spiel ?
"Prozedural" bedeutet, dass ein Algorithmus den Inhalt erstellt hat. Dies steht im Gegensatz zu Inhalten, die manuell von einem Menschen erstellt werden.
"Dynamisch" bedeutet, dass sich der Inhalt im Laufe der Zeit ändert. Dies steht im Gegensatz zu "statischen" Inhalten, die sich nach der Erstellung nicht oder nur auf vordefinierte Weise ändern, z.
Sie können auch vom Spieler erstellte Inhalte im Spiel haben. Dies ist eine Spielfunktion, mit der Spieler die Level oder das Spiel während des Spiels ändern können, anstatt externe Tools zum Ändern des Spiels zu verwenden. In den nächsten Absätzen gehe ich davon aus, dass es sich nicht um vom Player erstellte Inhalte handelt.
Sie können Code verwenden, um etwas zu generieren, das sich nie ändert. Solche Inhalte sind statisch und nicht dynamisch, obwohl sie prozedural sind. Der gesamte dynamische Inhalt ist prozedural, aber nicht der gesamte prozedurale Inhalt ist dynamisch.
Sie können auch manuelle, prozedurale, statische und dynamische Inhalte auf verschiedene Arten mischen. Beispielsweise kann ein Künstler ein Gebäudemodell manuell erstellen, mithilfe eines Tools verschiedene Texturkarten für das Modell prozedural generieren und dann Daten für Physik- oder Gameplay-Systeme einrichten, um das Gebäude dynamisch zu zerstören und statische Trümmer während des Spiels zu erzeugen.
Hinweis : Diese Definitionen sind nicht formal . Über diese Worte könnte man sich für immer streiten. Es ist wahrscheinlich, dass Sie Menschen mit unterschiedlichen Definitionen dieser Wörter begegnen, und keiner von uns würde sich notwendigerweise irren. Sogar der Fachjargon für Technologie ist viel fließender als wir Programmierertypen. :)
"Alle dynamischen Inhalte sind prozedural" - Was ist mit Inhalten, die aus den Aktionen anderer Spieler erstellt wurden? Zum Beispiel gibt es in Eve Online ständig wechselnde Orbital-Außenposten, die ausschließlich von Spielern erstellt wurden.
Mołot,
1
@ Molot: und es gibt das erste Beispiel für meinen letzten Absatz. :) Ich denke, ich habe bei dieser Antwort nur wirklich über von Entwicklern veröffentlichte Inhalte nachgedacht, und ich nehme an, Sie könnten von Entwicklern erstellte und vom Player erstellte Inhalte als eine weitere Achse betrachten, abgesehen von dynamischen / statischen oder manuellen / prozeduralen Inhalten. Beispiel: In vielen Spielen können Spieler Strukturen in einem Baumodus erstellen, die Karte ist dann jedoch für den Rest des Spiels statisch, sodass Sie von Spielern erstellten statischen Inhalt haben können. Aber auch hier bin ich nicht besonders genau über die Terminologie. :)
Sean Middleditch
4
"Dynamisch" bedeutet
"(eines Prozesses oder Systems) gekennzeichnet durch ständige Veränderung, Aktivität oder Fortschritt."
(sagt Google.)
Zur Unterscheidung dieser beiden Begriffe würde ich "dynamische Generierung" verwenden, was "im Handumdrehen erstellt, während Sie spielen" bedeutet ...
Und "prozedurale Generierung" bedeutet algorithmisch generiert, entweder im Voraus oder im laufenden Betrieb.
Also das Gegenteil von meinem ursprünglichen Gedanken?
Evorlor
2
@Evorlor: Das würde ich sagen. "Prozedural" bedeutet nur, dass ein Algorithmus den Inhalt erstellt hat. "Dynamisch" bedeutet, dass sich der Inhalt im Laufe der Zeit ändert. Sie können Code verwenden, um etwas nur einmal zu generieren, es wäre also statisch und nicht dynamisch. Der gesamte dynamische Inhalt ist prozedural, aber nicht der gesamte prozedurale Inhalt ist dynamisch. Sie können beides auch auf verschiedene Arten mischen. zB eine dynamische Ebene, die sich prozedural mit statischen Inhalten füllt. :)
Sean Middleditch
@ SeanMiddleditch konvertieren, um bitte zu antworten :-)
Evorlor
@Evorlor: fertig, aber ich bin mir nicht sicher, ob ich mehr gesagt habe als das, was David van Brink bereits getan hat.
Sean Middleditch
@ SeanMiddleditch vielleicht nicht, aber deine Erklärung war mir klarer. Vielen Dank!
Evorlor,
1
Hier ist eine kurze kleine Übersicht.
Dynamische Generierung
Das Wort "dynamisch" bedeutet Veränderung. Das Wort "Generation" bedeutet Schaffung von Dingen, daher verändert "dynamische Generation" die Generation. 'Dynamische Generierung' bezieht sich daher auf Inhalte, die sich ständig ändern.
Prozedurale Generierung
Das Wort "prozedural" bezieht sich auf Inhalte, die von einem Computeralgorithmus und nicht von einem Menschen erstellt wurden. Wie wir festgestellt haben, bedeutet "Generierung" Schöpfung, daher bezieht sich "prozedurale Generierung" auf Inhalte, die über einen Computeralgorithmus generiert werden.
"Dynamisch" bedeutet
(sagt Google.)
Zur Unterscheidung dieser beiden Begriffe würde ich "dynamische Generierung" verwenden, was "im Handumdrehen erstellt, während Sie spielen" bedeutet ...
Und "prozedurale Generierung" bedeutet algorithmisch generiert, entweder im Voraus oder im laufenden Betrieb.
quelle
Hier ist eine kurze kleine Übersicht.
quelle