Ich will jetzt gar nicht verteidigen, dass der aktuelle Stand nicht gut ist. Aber vielleicht kann ich euch als inzwischen in der "Bla-Bla-Blusshitbingo-Meeting Ebene" angekommener Programmierer mal ein wenig näher bringen wieso es zu solchen Situationen kommt. Das mache ich sowieso den ganzen Tag mit Leuten die aus unerfindlichen Gründen viel besser bezahlt sind als ich.
Das mit dem Schatten der Zähnen ist ein wunderbar skurriles Ding und zeigt ziemlich deutlich woran es in sehr vielen IT Projekten mangelt. Und da ist schon das erste Problem. Das Wort "Projekt". Projekt bedeutet: "Wir wollen Character Models" ohne dabei das ganze im Kontext des gesamten Produkts zu betrachten.
Der Character Entwickler weis nur was er wissen muss. Oft genug ist dem auch gar nicht klar wofür er entwickelt. Vielleicht ist es sogar irgendein Indischer Freelancer, der noch nie was vom dem Produkt oder der Firma gehört hat. Ein Game Studio will also 800 detaillierte Character Modelle? Bekommt es! Er kann kann ja nicht ahnen das die planen davon 10.000 gleichzeitig aus 80 KM Entfernung zu rendern. Und derjenige, der die dann ins Spiel einbaut weist vielleicht nicht mal, dass die so derart übertrieben detailliert sind. Als derjenige es getestet hat sind dann 10 Modelle über den Bildschirm gelaufen. Super funzt, nächstes Ticket bitte. QA guckt drauf, sieht 10 Leute über den Bildschirm laufen und ist Happy. Report an den CEO: Charakter sind fertig!
Was passiert wenn 10.000 über den Bildschirm laufen bemerkt man erst im nächsten großen Testlauf. Plötzlich ist alles langsam und keiner weis welches der einzeln getesteten 1000 Updates aus den letzten 4 Wochen das Problem macht. Solche Abhängigkeiten in komplexen Projekten zu managen ist extrem anspruchsvoll. Leider wird da aber oft genug von Projektmanagern ohne technischen Hintergrund organisiert. Fragt euch mal warum in eurer Firma so viel Software sch... läuft. Ich kann da ein Lied von singen.
Das Problem bei dieser Art von Spielen ist, dass die Engine nur eine Basis darstellt. Jetzt ist es so, dass weder Unity noch Unreal auf Spiele dieser Art ausgelegt sind. Warum auch? Ist ja nicht so als wäre der Markt mit City Buildern überflutet. Man legt die Engine auf das aus, was am meisten gefragt ist. Also Shooter, Rollenspiele, Mobile Games, etc.
Das ausgerechnet Dinge wie Culling - also das entfernen von gerade nicht sichtbaren Dingen - nicht von Haus aus mitgebracht werden ist schon erstaunlich. Aber warte, brauchen all die anderen Genres nicht auch Culling? JA RICHTIG! Und deswegen kann Unity das auch.
Aber eben nicht wenn du gleichzeitig auch noch Multi-CPU Kerne bedienen willst. Dafür brauchst du dann nämlich die neue Version von irgendeiner anderen Unity Komponente, die aber leider noch kein Culling kann und ganz neben bei noch irgendwas anderes Kaputt macht. Nur das sagt das Unity Team dir halt nicht. Stattdessen wird alles was gut funktioniert als die Zukunft der Spieleindustrie und der Heilige Gral beworben. Hauptsache geiles Marketing und die Studios gehen nicht zu einem anderen Engine Hersteller.
Ich kann aus meinem Bereich einen ganz guten Vergleich mit Microsoft ziehen. Da ist das nämlich genau das gleiche. Die haben ein abartig gutes Marketing für alles was irgendwie für Developer ist. Alle paar Jahre wird die ultimative Lösung für alle deine Probleme angepriesen und ist revolutionär, lebensverändert und du kannst angeblich viel einfacher coole Dinge bauen. Ihr kennt ja US Firmen Marketing.
Wenn man sich nun auf dieses "Alles ist geil" Gelulle der Hersteller verlässt und anfängt auf deren neuen Technologien zu entwickeln, läuft man sehr leicht Gefahr Budget und Zeitplan komplett zu sprengen. Der smarte Developer setzt daher gerne auf alte Technologien. Ist bei Spielen halt nicht ganz so easy. Wir Gamer haben doch andere Ansprüche als irgendein Office Mensch der ein paar SAP Formulare ausfüllt.
Man stellt oft erst sehr spät in der Entwicklung fest, dass irgendwas vom Engine Hersteller halb fertig oder einfach nicht so da ist wie es sein sollte. Was soll man dann machen? Warten bis die das vielleicht in 5 Jahren ergänzt haben? Also evtl. wenn sie Lust haben und der CEO vom Engine Hersteller morgens die richtige Kaffee Temperatur hatte? Fragt euch mal warum die bei Star Citizen so ziemlich alles selbst bauen und das so lange dauert. Hat man jetzt nicht wie Chris Roberts quasi unendlich Zeit und Geld muss man sich was einfallen lassen.
Also setzt man als Entwickler in der Regel zig weitere - meist Open Source - Bibliotheken ein. Die könnte man als so eine Art Steam Workshop für Programmierer bezeichnen. Wenn da nicht genug Devs in ihrer Freizeit zusammenkommen, dann schläft das eben ein. Dummerweise verlassen sich manche (eigentlich alle) Engine Hersteller auf die Communities statt Funktionen selbst zu implementieren und zu pflegen. Weshalb das Fehlende dann eben nie ergänzt wird. Am Ende man baut dann halt doch selbst eine Lösung. Mit begrenztem Know How und Mitteln - schließlich soll das Produkt ja irgendwann mal laufen.
Leider bemerkt man aber diese Probleme oft genug - aus ganz oben genannten Gründen - erst nachdem das _eigene_ Marketing dem Investor oder noch schlimmer den Kunden einen Release Date versprochen hat. Und genau das ist den CO Devs wohl passiert. Die Devs wussten durchaus, dass Dinge unfertig sind und irgendwelche Business Leute haben ihre Warnungen nicht ernst genommen. Developer sind nämlich in der Regel im Gegensatz zu Business Leuten recht stille Vertreter die nicht gerne auf den Tisch hauen. Kann mir das aus eigener Erfahrung sowas von lebhaft vorstellen. Der Satz "Ich hab's vorher gesagt" ist zu 100% sicher gefallen. Mehr als einmal.
Den Programmierern selbst würde ich keine Unfähigkeit unterstellen. Das die da so einiges überhaupt improvisiert rein bekommen haben ist schon beeindruckend. Vielleicht kann man sagen, sie haben ein wenig zu gutgläubig auf das Unity Marketing gehört und sich verzockt. Vielleicht nicht früh und drastisch genug Alarm geschlagen. Vielleicht auch erst nach der Kommunikation an uns erfahren wann irgendwelche Bürohengste releasen wollen, weil die sich nur auf die Haken in der Todo Liste konzentrieren statt mal die Entwickler zu fragen. Siehe oben - Charakter gehen, check!
Das ist alles gar nicht unüblich und traurig, weil am Ende niemand gewinnt. Die Kunden sind sauer, die Entwickler frustriert, die Manager schwitzen und die Investoren sehen keine Kohle.