Ein Kollege und ich sprechen darüber, wie Szenen in komplexen Spielen dargestellt werden. Er glaubt, dass die Welt rekursiv in der wahrsten objektorientierten Weise gerendert wird, mit den vielen Schauspielern der Welt jeder überschreibt eine virtuelle Funktion wie Actor.Draw() (z. B. Koopa.Draw(), Goomba.Draw()).Szenendiagramme: Rekursion oder Iteration?
Im Gegensatz dazu stellte ich mir vor, dass komplexe Spiele heute würde Iterierte über ihre Szenengraph, virtuelle Funktion Overhead zu vermeiden und mehr Flexibilität für spezielle Iteratoren ermöglichen (zB in der Nähe von zu weit vs. weit zu nahe, bestimmte Skipping Objekte in der Struktur usw.) Und meine Erfahrung mit OpenGL und DirectX hat mir vorgeschlagen, Objekte im Stapel zu zeichnen und einen Stapelkontext durch einen rekursiven Aufruf zu übergeben (dh den Stapel, in den die Draw() - Funktion einer Klasse zeichnen würde)) schien wie ein zusätzlicher Parameter-Overhead-Overhead, der mit Iteration vermieden werden konnte.
Wird heute eine Methode gegenüber einer anderen bevorzugt? Wenn ja warum?