Ich bin kürzlich in den XNA-Pool eingestiegen und lerne alles über das Framework in C#. Eine Sache, die ich bei meinen Nachforschungen festgestellt habe, ist, dass es anscheinend keine allgemein akzeptierte "richtige" Methode zur Implementierung von GameComponents gibt.XNA GameComponent Implementierungseinstellungen ...?
Nach der Lektüre this thread (unter anderem), habe ich ein breites Spektrum von Präferenzen unter Spiele-Entwickler entdeckt. Ich habe einige Befürworter gesehen, die GameComponents niemals (oder nur sparsam) benutzen, während andere behaupten, sie für alles zu benutzen, bis hin zu den Spielern/gegnerischen Einheiten, Raketen usw. Dann gibt es einige, die moderater sind Vorgehensweise, und reservieren Sie die GameComponent-Architektur für Entitäten mittlerer bis hoher Ebene wie Bildschirme, Renderer, Szenen usw., die wiederum ihre granulareren Spieleinheiten enthalten und steuern.
Am Ende des Tages, es ist bis zu den Game-Entwicklern zu ermitteln, wie der Rahmen zu implementieren. Da StackOverflow voll von cleveren Entwicklern ist, die mehr vergessen haben als ich jemals wissen werde, möchte ich ein Gefühl dafür bekommen, was der Konsens ist, bevor ich diesen Weg weiterführe, indem ich das Framework selbst benutze.
Wer interessiert sich für ihre Gedanken? Danke im Voraus!
Danke für die Antwort! Ich habe gehört, dass die Verwendung der Game.Components-Sammlung einen geringen Overhead verursacht, aber es klingt so, als würden Sie etwas anderes tun. Glauben Sie, dass die Schaffung eines eigenen Entity-Hierarchie-/Managementsystems ein größeres Leistungspotenzial bietet? – Syndog
Es tut mir leid, ich weiß es wirklich nicht. Sie haben sicher mehr Kontrolle, also können Sie vielleicht mehr Leistung herauspressen. Aber andererseits weiß MS vermutlich, wo sie gerade sind und hat die Leistung von GameComponent zu Beginn gedrückt :) Aber für bestimmte Objekte, besonders wenn Sie planen, eine Menge davon auf dem Bildschirm zu haben (wie Kugeln), sind sie lieber links Strukturen aus Performance-Gründen – Bob
GameComponents wird als eine Liste intern implementiert werden, kann nicht viel effizienter als das! Was Strukturen betrifft, bin ich mir nicht sicher, ob das eine großartige Idee ist. Wenn man eine Struktur in C# übergibt, wird das viele Werte kopieren. Der Müllsammler ist nur langsam auf der Xbox, auf dem PC kann man es ziemlich einfach vergessen. – Martin