Sinnfrei schrieb:
Soso, es dauert also Monate eine MaxFPS-Variable in der Frostbite-Engine zu ändern?
Das kommt drauf an, was man sich da zusammengestrickt hat.
Stell dir mal die ganzen einzelnen Game-Loops vor.
Mainloop, Gameinputs , Physikegine, Soundengine, Grafikengine, Animationegine und so weiter und so fort. Wenn dies alles mit 30 fps oder einem vielfachen davon läuft, dann kannst du sehr leicht Bezüge zwischen diesen einzelnen Teilen des Spiels herstellen. Wenn du das in deinem Spiel jetzt einmal gemacht hast, dann ist es anschließend verdammt schwer diese Bezüge wieder aufzubröseln und voneinander zu entkoppeln.
Stell dir vor, die Loops laufen jetzt mit folgeden Vielfachen des Mainloops ab:
Inputloop: 0,763478
Physics-Loop: 2,423454
Sound-Loop: 1,231233
Graphics-Loop: 1,53453
Animation-Loop: 0,23434
Nur mal so als Beispiel.
Das Spiel kann jetzt also icht mehr einfach davon ausgehen, dass pro Tastendruck auch gleichzeitig ein Bild ausgegeben wird. Hier wird auf einmal nur jedes zweite Bild eine Eingabe ausgewertet. Alles läuft mal schneller und mal langsamer. Die eine Berechnung überholt die Eine und mal die Andere und das städig mit schwankenden Werten, während du vorher fest davon ausgehen konntest, dass alles quasi im 1:1 Verhältnis zueinander lief.
Das Ganze kann jetzt also ganz schnell problematisch werden, wenn die Unterschiedlichen Loops alle aufeinander Bezug nehmen. Teile der Physikegine hängen vom Mainloop ab, dann aber auch von der Grafikengine, aber auch von der Soundengine. Allerdings hängen umgekehrterweise Mainloop, Game- und Sound-Engine auch wieder von der Physikengine ab, welche wiederum alle untereinander Abhängigkeiten bilden. So kann es sehr leicht Aufgrund von Laufzeitunterschieden zu Zirkelbeziehungen in den Loops kommen die du bei einer fixen Berechnung nicht hattest.
So können unterschiedliche Engines die selben Ereignisse auslösen oder sich gegenseitig in's Gehege kommen, weil sie zeitlich nicht gegeneinander abgesichert sind.
Sowas macht man natürlich in Spielen, die für den PC geplant sind von vornhinein, aber wenn man es irgendwann nachrüsten muss, dann ist das eine echt blöde Arbeit, die jede Menge neuer Bugs hervorruft und praktisch eine komplette Überarbeitung des Codes erfordert.
Von daher ist es durchaus realistisch dafür 4 Monate anzusetzen. außerdem kommt es ja auch immer auf die Größe des Teams an. Man weiß ja nicht, wie viel Leute da wirklich dran sitzen werden. So ein Problem kann man nicht mit purer Manpower erschlagen.