Okay, ich bin da schon wieder raus. Pointlight ist Pointligt in der Unreal Engine. Was soll das für ein Preset sein? Und dann noch in Klammern dahinter schreiben, dass du das gerade erlogen hast. Wie soll man da bitte versuchen das nachzuverfolgen und Vorschläge zu machen? Wahrscheinlich hast du wieder irgendwelche Tutorials geschaut, nicht verstanden, aber sahen toll aus. Aber dann musst du den Ersteller von dem Tutorial fragen, weil sonst reden wir hier ständig von unterschiedlichen Dingen.
KI
- cleanTron
- Erledigt
-
-
Okay, ich bin da schon wieder raus. Pointlight ist Pointligt in der Unreal Engine. Was soll das für ein Preset sein? Und dann noch in Klammern dahinter schreiben, dass du das gerade erlogen hast. Wie soll man da bitte versuchen das nachzuverfolgen und Vorschläge zu machen? Wahrscheinlich hast du wieder irgendwelche Tutorials geschaut, nicht verstanden, aber sahen toll aus. Aber dann musst du den Ersteller von dem Tutorial fragen, weil sonst reden wir hier ständig von unterschiedlichen Dingen.
Ich denke auch nicht das das wirklich Sinn ergibt, wenn man keinen Ratschlag annehmen kann. Es ist halt nervenaufreibend wenn man sich die Zeit nimmt und jemanden versucht zu helfen und dann läuft es nur ins Leere. Spar dir deine Energie. Und Cleantron kann sich ja mal überlegen ob er wirklich Rat möchte welchen er Umsetzen möchte, ansonsten gibt es ja genug Bereiche hier wo man einfach zeigen kann was man gemacht hat. Ich denke das wäre sinnvoller.
-
Mhhh, ich hatte auch einen Kommentar geschrieben und dir darauf geantwortet, worauf du leider überhaupt nicht eingegangen bist. Vielleicht ist der Kommentar einfach untergegangen? Ein kurzes Feedback wäre auf jeden Fall schön gewesen.
Pointlights sollte man meiner Meinung nach niemals als Hauptlichtquelle einsetzen. Es ist zwar erstmal naheliegend, ein Pointlight als Sonne oder Glühbirne zu verwenden, aber sie haben einen entscheidenden Nachteil gegenüber Spotlights: Ihre Lichtquelle ist theoretisch unendlich klein.
Bei der Sonne oder einer Glühbirne werden die Strahlen jedoch nicht aus einem unendlich kleinen Punkt ausgesendet, sondern von einer Fläche.
Für den Schattenwurf ist das ein enormer Unterschied.
Daher würde ich Pointlights immer – ohne Ausnahme – ohne Schatten verwenden.
Pointlights nutzt man in der Regel eher, um gezielt Bereiche künstlich aufzuhellen. Dabei sollte man aber immer darauf achten, dass es auch eine nachvollziehbare Lichtquelle gibt: Sonne, Kerze, Glühbirne, Lava – was auch immer.
Willst du einfach Licht „hinmogeln“, dann nimm ein Pointlight.
Willst du realistische Schatten, dann nutze eine Kombination aus Pointlight (ohne Schatten) und einem Spotlight, Area Light oder Directional Light (mit Schatten).
Der größte Fehler, den du machen kannst, ist, die Szene mit Pointlights vollzuhauen. So ein Lichtsetup sieht in der Regel nie gut aus.
-
Pointlights sollte man meiner Meinung nach niemals als Hauptlichtquelle einsetzen. Es ist zwar erstmal naheliegend, ein Pointlight als Sonne oder Glühbirne zu verwenden, aber sie haben einen entscheidenden Nachteil gegenüber Spotlights: Ihre Lichtquelle ist theoretisch unendlich klein.
Kommt halt drauf an, wofür man das Light einsetzt. Lustigerweise ist ausgerechnet dein Beispiel mit der Sonne kein Pointlight, sondern ein directional Light (der Winkel bestimmt dann auch ob Tag oder Nacht ist). Für die Munition hätte es schon einen Sinn ergeben, weil wenn da ein Laserpunkt gefeuert wird, dann leuchtet er halt in alle Richtungen. Nicht z hell, soll ja nicht blenden, nur ein paar Licht- und Schattenreflexionen.
Bei der Sonne oder einer Glühbirne werden die Strahlen jedoch nicht aus einem unendlich kleinen Punkt ausgesendet, sondern von einer Fläche.
Nich ganz. Ein Lichtstrahl ist ein Photon. Man sieht es nur, wenn es reflektiert wird. Was du in einer Glühbirne siehst, oder als Sonne, ist halt nur die Oberfläche die diese Photonen emittiert. Ganz so funktioniert es in einer Simulation aber nicht. Du hast zwar einmal die Möglichkeit emissive Materialien zu erstellen, aber das ist sehr rechenintensiv und funktioniert mit RTX usw. eher nicht ganz so gut, gerade wenn es um Reflexionen in der Umgebung geht. Deswegen eine Mischung aus beidem, einmal die Lichtquelle, Pointlight, um ein sehr gutes Ergebnis beim Raytracing zu bekommen und gute Schatten und Reflexionen und nur ein wenig emissives Material, um den Schuss sichtbar zu machen, sodass er auch leuchtend aussieht. So eine feste rote Kugel würde halt auch nicht passen.
-
Ja, das ist richtig – wir reden von unterschiedlichen Dingen.
Es ist korrekt: Ein Lichtstrahl wird von einer Quelle ausgesendet, physikalisch gesprochen ein Photon. Damit hast du völlig recht, auch mit allem, was danach passiert. Mir geht es um den Startpunkt, also die Quelle dieser Strahlen.
Mir ging es hier speziell um das Pointlight und warum das problematisch sein kann.
Ich mache mal ein Beispiel:
Wenn du eine Sonne darstellen willst, ist sie praktisch gesehen eine Kugel mit einer leuchtenden Oberfläche.
Wenn du ein Pointlight verwendest, ist das hingegen ein unendlich kleiner Punkt innerhalb des „Sonnenkörpers“, von dem aus die Strahlen in alle Richtungen ausgesendet werden. Hat diese Sonne einen Durchmesser von 65000km hast du eine enorme Streuung und du brauchst seher viele Strahlen die sehr Dicht auf das Ziel Objekt geschossen werden. Sonst kommen am Ziel nur noch alle 10km ein Ray an.
Das Beispiel ist bewusst überspitzt dargestellt.
Da der Startpunkt ein unendlich kleiner Punkt ist, ergibt sich ein anderer Winkelverlauf, als wenn du z. B. ein Spotlight oder ein Directional Light verwendest.
Technisch gesehen gilt also:
- Ein Pointlight ist ein Punkt, von dem aus viele Strahlen in alle Richtungen ausgesendet werden. (Punkt)
- Ein Spotlight ist ebenfalls ein Punkt, von dem aus Licht kegelförmig in eine bestimmte Richtung ausgesendet wird. (Punkt)
- Ein Directional Light entspricht einer (gedachten) unendlich großen Fläche, von der aus parallele Strahlen in eine Richtung kommen. (Fläche)
- Ein Area Light ist ähnlich, nur dass die Fläche begrenzt ist. (Fläche)
Der Winkel und die Verteilung der Strahlen hängen also stark vom Ursprung ab. Beim Pointlight entsteht eine Streuung, die man in vielen Fällen so gar nicht haben möchte.
Für die Munition hätte es schon einen Sinn ergeben, weil wenn da ein Laserpunkt gefeuert wird, dann leuchtet er halt in alle Richtungen. Nicht z hell, soll ja nicht blenden, nur ein paar Licht- und Schattenreflexionen.
Ja, das kann man machen, und es ist natürlich auch nicht falsch. Genauso gut kannst du aber mehrere Spotlights verwenden, die in verschiedene Richtungen strahlen. Der entstehende Schatten sieht dabei komplett anders aus als bei einem Pointlight.
Ich persöhnlich bin kein Fan von Pointlights aus diesem Grund.
-
Aber wozu mehrere Spotlights, das verstehe ich jetzt nicht so ganz. Denn die Munition würde ja rundherum leuchten.
Wenn ich jetzt zum Beispiel eine Deckenlampe darstelle, die nach unten strahlt, dann ja, Directional Ligt. Aber bei einer Kuggel oder einem Strahl, der sich frei im Raum bewegt, wozu da mehrere Directional Lights? Weil jede Quelle verlangt auch wieder Berechnungen und entsprechende GPU/CPU-Leistung, plus das Risiko, dass die Lichtquellen sich überschneiden ab einer gewissen Entfernung, oder eben halt auch Lücken bilden.
Kommt mir persönlich jetzt schwieriger vor, als ein einziges Point Light da mit dem Strahl mitzuschicken. -
Auf die Performance wirkt sich das auf jeden Fall aus. Du kannst Licht aber auch baken, dann hast du nur den initialen Aufwand.
Das Problem ist wie gesagt:
- Licht kommt aus einem unendlich kleinen Punkt
- Licht strahlt in alle Richtungen (360°)
- Schatten werden von genau diesem unendlich kleinen Punkt berechnet
Das ist unrealistisch, weil:
Eine Glühbirne hat eine Fläche und ist kein Punkt.
Du bekommst immer harte Schatten, weil ein Pointlight keine Größe hat.
Mit einem Spotlight kannst du Soft Shadows erzeugen, mit einem Pointlight nicht.
Unterschätze Pointlights nicht:
Du hast eine Lichtquelle, die in alle Richtungen strahlt – das kostet ebenfalls Performance.
Was nun besser ist, kann man pauschal nicht sagen.
Was bei einem Spotlight zusätzlich von Vorteil ist:
Du hast immer einen inneren und einen äußeren Kegel. Über diesen Bereich wird der weiche Übergang (Soft Shadow) gesteuert. So etwas hast du beim Pointlight nicht.
Beispiel: Nachttischlampe
Du kannst du eine Glühbirne modellieren – lassen wir den Polycount und die Performance einmal außen vor.
Lichtsetup mit Pointlight
Du hast diese Nachttischlampe und platzierst ein Pointlight in der Mitte der Glühbirne.
Wie sieht wohl der Schatten aus?
Lichtsetup mit Spotlights:
Du platzierst ein Spotlight unterhalb der Glühbirne, das nach oben leuchtet.
Es wirft den Schatten der Birne und des Lampenschirms an die Decke.
Dann platzierst du ein weiteres Spotlight oberhalb der Lampe und richtest es nach unten.
Dieses Spotlight wirft die Schatten der Birne, des Schirms und des Gestells nach unten.
Anschließend platzierst du mehrere Spotlights um die Lampe herum, die in verschiedene Richtungen strahlen.
Hier kannst du gezielt harte oder weiche Schatten einstellen.
Du kannst das Ganze anschließend baken und hast kaum Performanceprobleme, da alles statisch ist.
Ich sage nicht das Spotlights besser sind wie Pointlights. Aber das Ergebnis ist bei Pointlights deffintiv besser.
Vielleicht nicht performanter vielleicht auch doch aber auf jedenfalls besser.Wie gesagt Spotlight die in alle Richtungen Licht schmeißen kosten auch Performance.
-
Aber Directional Lights haben in der Software auch keine Fläche, es strahlt halt nur in eine Richtung. Und, wenn du dann 4 Directional Lights nimmst, statt einem Pointlight, ich weiß nicht so recht, ob es da nicht von der Performance her besser ist nur ein Licht zu verwenden. Ich weiß halt nicht, wie die Engine das im Hintergrund abarbeitet, wenn mehrere Lichtquellen vorhanden sind, denn mit dem Sourcecode, da hatte ich nun wirklich noch keine Lust mir den anzusehen. Er benutzt ja Raytracing, da baked man Lichter eigentlich nicht, denn es ist ja Echtzeitberechnung.
Das ist ja das, was ich meine. In der Software hat kein Licht eine Fläche, sie alle gehen von einem Punkt aus. Flächen haben eigentlich nur Modelle, die mit einem Emissiv-Material verbunden werden. -
Aber Directional Lights haben in der Software auch keine Fläche
Das ist ja das, was ich meine. In der Software hat kein Licht eine Fläche, sie alle gehen von einem Punkt aus.
Keine sichtbare Fläche und keine Fläche, die man direkt einstellen kann. Im Grunde ist ein Directional Light jedoch eine unsichtbare Ebene mit unendlicher Breite und Länge, von der aus Strahlen in eine Richtung ausgesendet werden.
Das ist auch eine Frage der Einstellungen: wie viele Strahlen von der Quelle ausgehen, wie oft sie reflektiert werden und wie viel Energie sie bei jedem Aufprall verlieren.
Beim Raytracing passiert genau das in Echtzeit, beim Baken hingegen nur einmal im Voraus. Mehr Strahlen und mehr Bounces bedeuten aber nicht automatisch ein besseres Ergebnis.
Was man in der Regel erreichen möchte, ist indirektes Licht aus vielen Quellen – eher schwach und tendenziell etwas zu dunkel als zu hell. Die Proportionen müssen stimmen. Danach kann man die Szene im Post-Processing problemlos aufhellen.
Wie gesagt das ist nun auch nur ein Vorschlag oder eine Idee. Letztlich muss man testen ob die Performance das mitmacht.
Ich hab aber schon oft sehr viele Pointlights in einer Szene gesehen und das ist auch nicht gut.
Zumal man in den Reflektionen zb in Chrome die Spiegelungen der Lichtquellen häufig sehen kann. Da gibts dann sowas wie 20 Sonnen am Himmel in der Reflektion.
-
Nicht ganz. Directional Ligt geht quasi von einem unendlich weit entfernten Punkt aus. Deswegen kannst du es für den Laser auch nicht benutzen, denn nur die Richtung ist entscheidend und leuchtet die ganze Szene komplett gleich aus, also mit Schattenwurf natürlich. Deswegen auch für die Umgebungsbeleuchtung für Tag/Nacht. Die Position von Directional Lights ist absolut unwichtig, es wird immer die gesamte Szene ausgeleuchtet, auch, wenn du sie in ein Objekt einbaust.
Dann gibt es ja noch das Spotlight, ich glaube, das meinte ich ursprünglich, dies strahlt aber nur Kegelförmig in eine Richtung, hat also wieder einen Ursprungspunkt, keine Fläche.
Naja, und ich bleibe halt dabei, ein einziges Pointlight beste Wahl, denn diese Quelle hat bereits, ohne Vervielfältigung/Mehrfachnutzung, alle Aspekte, die nötig sind und ist billiger als 4 oder mehr Spotlights, oder was auch immer. Kurze Reichweite, ohne Schattenwurf, perfekt und schnell zu berechnen. -
Mhhh, ich hatte auch einen Kommentar geschrieben und dir darauf geantwortet, worauf du leider überhaupt nicht eingegangen bist. Vielleicht ist der Kommentar einfach untergegangen? Ein kurzes Feedback wäre auf jeden Fall schön gewesen.
Nein der ist nicht untergegangen sondern hat mich zum nachdenken angeregt. Verlink besser nochmal den Kommentar weil evetuell mein ich doch was Anderes.
Ich hab das versucht grafisch umzusetzen und praktisch hat das einen Effekt auf die ingame framerate.
-
Nicht ganz. Directional Ligt geht quasi von einem unendlich weit entfernten Punkt aus. Deswegen kannst du es für den Laser auch nicht benutzen, denn nur die Richtung ist entscheidend und leuchtet die ganze Szene komplett gleich aus, also mit Schattenwurf natürlich. Deswegen auch für die Umgebungsbeleuchtung für Tag/Nacht. Die Position von Directional Lights ist absolut unwichtig, es wird immer die gesamte Szene ausgeleuchtet, auch, wenn du sie in ein Objekt einbaust.
Dann gibt es ja noch das Spotlight, ich glaube, das meinte ich ursprünglich, dies strahlt aber nur Kegelförmig in eine Richtung, hat also wieder einen Ursprungspunkt, keine Fläche.
Naja, und ich bleibe halt dabei, ein einziges Pointlight beste Wahl, denn diese Quelle hat bereits, ohne Vervielfältigung/Mehrfachnutzung, alle Aspekte, die nötig sind und ist billiger als 4 oder mehr Spotlights, oder was auch immer. Kurze Reichweite, ohne Schattenwurf, perfekt und schnell zu berechnen.Es ärgert mich so sehr das ihr Recht hattet. Ich mein Unrecht hatte ich ja nicht, Recht aber auch nicht.
-
"Beispiel: Nachttischlampe"
"Du kannst du eine Glühbirne modellieren – lassen wir den Polycount und die Performance einmal außen vor."
Das können wir uns nicht erlauben selbst wenn wir den Polycount und die Performace außen vor lassen. Selbst wenn ich wollte könnte ich nicht, mein Auftrag ist und besteht.
-
Es ärgert mich so sehr das ihr Recht hattet. Ich mein Unrecht hatte ich ja nicht, Recht aber auch nicht.
Für mich gibt es aber eigentlich kein klares „richtig“ oder „falsch“. Jeder bringt seine eigene Sichtweise und Erfahrung mit, und daraus entsteht das, was sich für einen selbst stimmig anfühlt.
Gerade deshalb ist so ein Forum wertvoll. Auch jemand mit viel Erfahrung kann an einen Punkt kommen, an dem er nicht weiterkommt – und genau da setzt der Austausch an. Es geht nicht darum, wer recht hat, sondern darum, voneinander zu lernen.
Ich selbst probiere Dinge oft erstmal alleine aus, bevor ich mir Tutorials anschaue. Aber wenn ich merke, dass ich feststecke, frage ich gezielt Menschen, die diesen Weg schon gegangen sind. Und genau das ist für mich der große Vorteil hier: Man kann auf Erfahrung zugreifen, die man selbst noch nicht hat.
Am Ende ist es ein Kreislauf. Die, die dir heute helfen, standen früher an einem ähnlichen Punkt. Und irgendwann bist du selbst derjenige, der anderen weiterhilft – was du ja auch schon gemacht hast.
Vielleicht hilft es, das Ganze mehr als offenen Austausch zu sehen und weniger als richtig oder falsch. Dann fühlt sich Weiterentwicklung auch nicht wie ein Kampf an, sondern eher wie ein natürlicher Prozess.
-
Für mich gibt es aber eigentlich kein klares „richtig“ oder „falsch“.
Na die Diskussion geht ja nicht um richtig oder falsch. Gerade beim Programmieren gibt es sehr viele Wege etwas umzusetzen. Die Frage ist immer nur, wie sehr versucht man etwas zu optimieren. Gibt es Schleifen, die vielleicht sinnlos durchlaufen werden, gibt es eine Möglichkeit einen Effekt zu erzeugen, der vielleicht weniger Rechenpower benötigt, oder auch besser aussieht, oder auch leichter zu handhaben ist, oder läuft eine Abfrage vielleicht ins Leere, obwohl es so aussieht, als wenn es funktioniert.
Was ich schade finde, ist, heutige Rechner sind so schnell und haben so viel Speicher, dass der Code meistens nicht noch einmal überprüft wird. Selbst große Firmen, die AAA-Titel rausbringen lassen lieber alten Schrottcode in ihren Spielen, weil es einfach nur funktioniert, weil die FPS stimmen ja aufgrund der Rechenpower trotzdem, alles gut. Vielleicht ist das bei einzelnen Projekten auch okay, wenn man es erstmal zum Laufen bringt. Das Problem dabei sit nur, man gewöhnt sich so schnell daran, es irgendwann immer wieder nicht zu optimieren, dass irgendwann auch der Erkenntnisgewinn durch Verbesserung wegfällt. -
Na die Diskussion geht ja nicht um richtig oder falsch. Gerade beim Programmieren gibt es sehr viele Wege etwas umzusetzen. Die Frage ist immer nur, wie sehr versucht man etwas zu optimieren. Gibt es Schleifen, die vielleicht sinnlos durchlaufen werden, gibt es eine Möglichkeit einen Effekt zu erzeugen, der vielleicht weniger Rechenpower benötigt, oder auch besser aussieht, oder auch leichter zu handhaben ist, oder läuft eine Abfrage vielleicht ins Leere, obwohl es so aussieht, als wenn es funktioniert.
Was ich schade finde, ist, heutige Rechner sind so schnell und haben so viel Speicher, dass der Code meistens nicht noch einmal überprüft wird. Selbst große Firmen, die AAA-Titel rausbringen lassen lieber alten Schrottcode in ihren Spielen, weil es einfach nur funktioniert, weil die FPS stimmen ja aufgrund der Rechenpower trotzdem, alles gut. Vielleicht ist das bei einzelnen Projekten auch okay, wenn man es erstmal zum Laufen bringt. Das Problem dabei sit nur, man gewöhnt sich so schnell daran, es irgendwann immer wieder nicht zu optimieren, dass irgendwann auch der Erkenntnisgewinn durch Verbesserung wegfällt.Die Schleifen sind wohl die größte Gefahr. Das Manches immer und immer wieder berechnet wird obwohl es gar keine Relevanz mehr hat. Ein Schuss und das Geschoss fliegt so lange im Speicher rum, jeden Tick wird die Kollisionsabfrage durchlaufen. Das muss man natürlich begrenzen, bei meinem 2D Spiel ist das leicht, 2 Sekunden Lebensdauer dann automatisch löschen. Bei 3D Shootern ist das theoretisch komplexer, wobei es da sicher ähnlich gemacht wird. So richtig weiss ich auch nicht wie man der UE sagt das sie den Speicher auch wieder frei machen soll. Manchmal lad ich nen Level bei dem ich Performance Probleme hab und wenn ich danach nen Level lade der eigentlich fluffig läuft hab ich da doch die selben Performance Probleme. Das ist schon eigenartig. Die Schleifen aus dem anderen Level laufen da wohl im Hintergrund weiter weil es keinen auto stop/ clear gibt.
Ich hab übrigens noch die selben Probleme mit 2 Level, der eine Level ist gedreht zum Spielmodus und lässt sich nicht anpassen und beim anderen wird der Player Start vollkommen ignoriert.
-
Deprimierend, unnatürlich, fehlerhaft aber wenn ich dann wieder sehe wie das Wasser in Echtzeit fliesst denk ich wow.
Ey Tomarr den Kaze Emanuar YT Channel wollt ich Dir empfehlen, das ist so Projekt Reality/ N64 demo szene.
Also so pre Voodoo Zeit aber erstaunlich was die heute aus der alten Kiste raus holen.
-
Die Schleifen sind wohl die größte Gefahr. Das Manches immer und immer wieder berechnet wird obwohl es gar keine Relevanz mehr hat. Ein Schuss und das Geschoss fliegt so lange im Speicher rum, jeden Tick wird die Kollisionsabfrage durchlaufen. Das muss man natürlich begrenzen, bei meinem 2D Spiel ist das leicht, 2 Sekunden Lebensdauer dann automatisch löschen. Bei 3D Shootern ist das theoretisch komplexer, wobei es da sicher ähnlich gemacht wird. So richtig weiss ich auch nicht wie man der UE sagt das sie den Speicher auch wieder frei machen soll. Manchmal lad ich nen Level bei dem ich Performance Probleme hab und wenn ich danach nen Level lade der eigentlich fluffig läuft hab ich da doch die selben Performance Probleme. Das ist schon eigenartig. Die Schleifen aus dem anderen Level laufen da wohl im Hintergrund weiter weil es keinen auto stop/ clear gibt.
Ich hab übrigens noch die selben Probleme mit 2 Level, der eine Level ist gedreht zum Spielmodus und lässt sich nicht anpassen und beim anderen wird der Player Start vollkommen ignoriert.
Gerade, wenn du immer wieder etwas änderst passiert das absolut schnell mal. Bestes Beispiel ist mein Lieblingsbeispiel in deinem BP, wo ein Branch einfach nur auf True gestellt war, keine Variable als Input, somit auch immer nur der Zweig True ausgeführt wurde. Logisch, das wird deine FPS jetzt nicht ins bodenlose ziehen, das sind winzige Bruchteile einer Sekunde, die diese Abfrage ins Leere läuft. Aber, stell dir Mal vor, das wird jetzt 1000 Mal pro Minute aufgerufen. Du spielst das Spiel jetzt 30 Minuten, das sind 30.000 sinnlose Abfragen. Mag vielleicht ein wenig autistisch von mir klingen, aber der Gedanke alleine, ist nicht schön.
Deswegen, unbedingt immer möglichst sämtliche Möglichkeiten der objektorientierten Möglichkeiten der Unreal Engine nutzen: Man muss sich eigentlich schon echt Mühe geben nicht objektorientiert in den Unreal Blueprints unterwegs zu sein. Aber auch ich schaffe das immer wieder, gerade, wenn ich etwas ausprobiere. Und, das bringt einen sehr schnell in Schwierigkeiten, wenn du dann nach einer Woche mal wieder in den Code schaust, selbst, wenn du ihn kommentierst, du wirst nicht mehr genau wissen, was du da gemacht hast.
Also, Grundregel, immer schön objektorientiert bleiben. Weil dann kannst du auch kleine Codeteile ändern. Dir reicht dann halt, was benötigt die Funktion als Input, was liefert sie als Output. Der neue Code muss halt dasselbe liefern und gut ist.
Und das ist halt, um mal beim Eingangsthema zu bleiben, das Problem mit KIs. Wie du ja mitbekommen hast, derzeit experimentiere ich sehr mit lokalen KIs und LLMs. Eine KI kann dier vielleicht eine Lösung anbieten, was du machen kannst. Aber sogar das derzeit beste KI-Modell für Coding und Bugfinding, Opus 4.6, liefert dir absolut keinen sauberen Code. Es funktioniert, ja, aber lesbar, sauber, in gekapselten Funktionen und Bereichen, nein, das kriegen die einfach noch immer nicht hin. -
-
Das ist auch so eine Sache. Ein Tick ist eine Berechnung die Innerhalb eines Frames statt finden. Bestimmte Abfragen müssen in jedem Frame passieren aber auch manche Abfragen kann man auch verzichten.
Generell sollte man auf Ticks grundsätzlich verzichten. Zumindest in den Actoren. Kollisionen sind Events. Spart auch wieder zig Zyklen pro Sekunde.