Warum Unreal Engine nervt

  • OK kein Post den man so ganz bierernst nehmen muss - aber nach einem wirklich schlechten Tag als Developer mal ein bisschen wehklagen und jammern.


    Angefangen hat das ganze als ich mal durch neue Youtube videos heute mal wieder UE5 ausprobieren wollte - welche ich schon von der Platte entfernt hatte. Also download launcher. Welche ist die neueste - Preview oder Early Access? Ich dachte - logisch Early Access. Weit gefehlt - die neueste heisst "Preview". Warum auch immer. Kann man logisch finden muss man nicht.


    Naja Preview 2 installiert.


    Dann heute abend in 4.27 etwas professionelleres gemacht. Viel geflucht. Bugs? DUmmheit? Man wird es nie wisen. Vielleicht einiges versaut? Dann Rollback auf die version von gestern. Und tadah! ich kann auf einmal nicht mehr casten. CastTo getippt und kommen nur noch ne handvoll default Klassen. Meine eignenen nicht mehr. Und nein - so schlau das context Häckchen rauszumachen war ich auch. Naja und noch mehr ärger, also schluss mit UE4 für heute und endlich Spass mit UE5.


    Also die UE5 auf, neues Projekt - empty und start.


    Und schon krieg ich Brechreiz weil der dumme alte Tisch mit den Stühlen da steht. Ah OK vergessen den haken bei Starter Content rauszunehmen und ein paar Hundert MB Schrott mitbekommen. Schnell gelsöcht nochmal neu, diesmal ohne Starter Content.


    Und was begrüsst mich bei meinem "empty" Projekt? Ne Wüstenlandschaft mit Bergen. Nein ich will keine Berge, versuche die zu löschen. Das geht natürlich nicht. Landscape löschen? Haha Sie Narr - wo denken Sie hin? Also neues Level, diesmal wirklich empty. Ah entspannend. Also speichern und nochmal alles zu und wieder auf. Und wieder die Berge. Ja klar warum soll UE5 nervige alte Features entfernen? Editor und game startup map sind natürlich die Schwachsinns Berge die gar nicht im project sind, aber die will wohl jeder der gerade ne neue map gemacht hat als default. Also gut project settings und maps angepasst. Jetzt geht es.


    Dann mal das Niagara Fluids Plugin und den geilen Colored Smoke. Sieht gut aus im Editor, Kamara dazu und im Level blueprint set view target with blend. Aber jetzt zeigt er im PIE die dummen roten outlines an. Das stört doch den schönen Effekt etwas. Also klar - machen wir Launch.


    Er buildet rum - und nein Visual Stuio 2019 C++ 142 oder so nicht installiert.


    Doch C++ ist installiert aber es gibt ein Update, also gut schnell installiert und weiter im Takt.


    Nochmal build und jetzt stimmt c++ - aber wieder Fehler - Fatal Error.


    Couldn't find file for package /Script/HairStrandsCore requested by async loading code. NameToLoad: /Script/HairStrandsCore


    Hair? Strands? Ich hab ne Empty map mit EINEM niagara fluid. Also in Plugins geschaut und ja es ist "grooM" drin, ein unsägliches Plugin für Haare. Brauch ich grad nicht, also raus.


    5 Warnungen welche ABhängigkeiten das alles hat, aber egal, ich will grade keine Haare also weg damit.


    Neu gestartet - jetzt muss er erst mal wieder 7000 Shader vorbereiten. Vorher musste er sie kompilieren (UE4) jetzt muss er sie vorbereiten. Toll. Das war schon immer scheisse und durchs umbenennen wurde es nicht besser. Wo kommen die Shader überhaupt her? Eine leere Map und ein Niagara Effekt. 7000 Shader. Naja ich hab ja Zeit. Warum muss er das überhaupt machen, nur weil ich Haare loswerden wollte?


    Naja nach einigen Minuten warten starte ich mal wieder. Mein Colored Smoke bleibt Schwarz. Offensichtlich hat er die Haare doch gebraucht. ich wundere mich was mit den 7000 Shadern passiert ist. Aus neugier klicke ich mein Niagara an. Zack Crash. Rauch braucht wohl doch Haare. Für heute hat mich die Lust aber verlassen.

    • Offizieller Beitrag

    kyodai

    Das kann ziemlich frustrierend sein. Die gesamte Spieleentwicklung ist halt was sie ist: Sehr komplex. Die Unreal ist ja hierbei eine Hilfe. Wie wäre das wohl wenn man eine eigene Engine entwickelt ? :)


    Neu gestartet - jetzt muss er erst mal wieder 7000 Shader vorbereiten. Vorher musste er sie kompilieren (UE4) jetzt muss er sie vorbereiten. Toll. Das war schon immer scheisse und durchs umbenennen wurde es nicht besser. Wo kommen die Shader überhaupt her? Eine leere Map und ein Niagara Effekt. 7000 Shader. Naja ich hab ja Zeit. Warum muss er das überhaupt machen, nur weil ich Haare loswerden wollte?

    So funktioniert nun mal ein Computer. Du kannst in echt auch nichts aus einer Schublade nehmen oder es anzufassen und zu wissen was sind darin befindet. Willst du etwas löschen, muss es erstmal geladen werden. Dazu gehören auch alle Shader und was sonst noch dazu gehört.

    Shader können auch von anderen Meshes genutzt werden, auch das muss abgeglichen werden.

  • Das mit dem Shader kompilieren hatte ich auch in der UE4...
    Leeres Projekt. Alles rausgelöscht. Beim neustart musste er dann trotzdem über 5000 Shader kompilieren...
    Keine Ahnung was da genau gemacht wird. Meine Vermutung war aber, da ich die Default Map behalten habe und abgespeichert habe, dass es irgendwie mit der Map zusammen hing.
    Also neue Map erstellt, die ursprungliche Map gelöscht. Dann kamen auch erstmal keine Shader mehr. Aber diese kommen auch nicht immer, wenn man diese 1x kompiliert wurden und man nichts ändert.
    Aber hatte dieses Problem bei anderen Projekten nicht. War jetzt rein zufällig, wo ich die anfangs Map nicht mit gelöscht habe, das 1. mal, daher auch diese Vermutung.

  • Übrigens - falls jemand den Colored Smoke builden will - Alembic Groom importer Plugin rein, danach geht auch kompilieren. Niagara Fluids braucht sowohl den Groom als auch den Alembic Groom importer. Fragt mich jetzt nicht was Groom mit Rauch zu tun hat... Und schön dass die Abhängigkeiten nicht einprogrammiert sind...

  • Das mit dem Shader kompilieren hatte ich auch in der UE4...
    Leeres Projekt. Alles rausgelöscht. Beim neustart musste er dann trotzdem über 5000 Shader kompilieren...
    Keine Ahnung was da genau gemacht wird.

    Die Engine compiliert alle Shader, die eventuell benötigt werden. Und dazu zählen auch Materials, die im Engine-Folder stecken. Daher dauert es ziemlich lang, wenn man das erste mal eine neue Engine Version startet, egal ob das Projekt leer ist oder nicht.

    Ein Shader ist kein Material. Ein Shader ist eher wie ein instruction-set, das zu jedem Material erstellt wird.

    In jedem Material gibt es zudem Settings, wie das material genutzt werden soll. Standardmäßig handled die Engine es selbst, aber wenn du zum ersten mal ein Material von einem Static auf ein Skeletal Mesh ziehst, müssen diese instructions neu erstellt werden und daher die Shader kompiliert werden, außer du hast die "Usage" Informationen im Material bereits bearbeitet.

    Änderst du irgendwelche Project-Settings kann es auch sein, dass alle Shader des Projekts neu erstellt werden müssen. Wenn du zum Beispiel den Haken bei "Support Atmospheric Fog" oder "Support Stationary Skylight" rausmachst, werden alle Shader neu erstellt, ohne diese Optionen. Denn sie brauchen dann weniger instructions. Daher ist auch ein neustart der Engine erforderlich um diese Shader zu kompilieren.

  • Das mit den Shadern hat bei UE4 schon sehr genervt und bei UE5 hat man dieses nervige Feature beibehalten. Danke! Warum UE die scheiss Shader nicht einfach irgendwo speichert sondern sie immer und immer wieder neu kompiliert erschliesst sich mir nicht. Zumindest die aus der Engine sollten irgendwo gespeichert werden, bei einem leeren Projekt tausende Shaders die ich überhaupt nicht verwende immer und immer wieder zu kompilieren ist lächerlich.

  • Aber das passiert doch. Installier die Engine neu, erstelle ein neues Projekt, starte .... 5000 Engine shader oder so werden kompiliert (4.25)
    erstelle ein neues projekt -> 0 shader werden kompiliert, weil die Engine Shader schon im Cache liegen.

    Wenn das immer wieder neu passiert, gibt es vielleicht probleme mit dem Cache. Vielleicht zu wenig Festplattenspeicher oder sowas in der Art. Den SharedCache manchmal zu leeren kann auch helfen. Ich glaube mein Folder war mal ca 30GB groß <_<

    Wenn man Beispielsweise einen Firmenrechner benutzt, wo so ein Antivirenprogramm bei jedem Start alles resetted, und eben auch diesen Folder, muss bei jedem Neustart alles neu berechnet werden.