Beiträge von Exaran

    Also deine maximale Stapelgröße darf in dem Fall natürlich nicht kleiner sein, als die Stapelgröße, die dein Rezept benötigt. Es sei denn du hast, ähnlich wie in Minecraft, einen Craftingtable, in den du größere Stacks reinpacken darfst.

    Ansonsten, nimm dein Schatteninventar zur Berechnung, welches halt nicht in Stacks aufgeteilt ist.

    Du meinst von 3x10 Eisen in 1x30 Eisen umwandeln für die Berechnung der Kosten? Dann wieder zurück in 3x10 Eisen (als Beispiel).

    Speichere doch die Gesamte Menge und nicht jeden Stapel einzeln.


    Wenn du im Widget das Inventar abfragt, kannst du die Anzahl Stapel ausrechnen und den Rest auf den letzten Stapel verteilen.


    Was doch eigentlich zählt ist die gesamtmenge.

    Bitte erneut lesen, habe es gerade in dem Augenblick bearbeitet wo du was geantwortet hast ^^

    Ne nicht so ganz wie du meinst.


    Im Rezept habe ich die Gegenstände unabhängig ihrer Stapelgröße zusammengezählt, weil das so einfacher ist.

    Rezept (benötigt Gegenstände):

    1x 10 Eisen

    1x 3 Holz

    1x 2 Leder


    ---

    Im Inventar sind die Gegenstände aufgeteilt, jeweils in ihrer bis zu maximalen Stapelgröße.

    Inventar (Vorhanden):

    5x Eisen (5/5 Stack)

    5x Eisen

    8 Holz (8/10 Stack)

    1x Leder (1/1 Stack)

    1x Leder

    1x Leder


    Es scheitert daran das die Abfrage unterschiedlich ist, Rezept braucht als Beispiel 1x10 Eisen, im Inventar sind jedoch 2x5 Eisen vorhanden.


    Das Problem ist, ich müsste die ganzen gestapelten Gegenstände im Inventar wieder zusammen zählen. Sozusagen vom Inventar 2x5 Eisen zu nun 1x 10 Eisen. Damit ich diese 1:1 mit dem Rezept verrechnen kann.



    Bin mir nicht sicher ob ich das nun falsch mache, wenn ich Z.B. 5x 10 Eisen im Inventar habe (Also 5 Gegenstände im Array), anstatt 1x50 Eisen (mit einem Gegenstand im Array.)

    Das hatte ich zuvor, aber da wollte ich dies wiederum unterteilen in die Stapelgrößen, was wiederum dazu führte, das ich das direkt im Inventar Stapeln muss. Weil diese unterschiedliche Inhalte haben können.

    Es könnten z.B. Insgesamt 50 Eisen da sein, jedoch können davon wiederum 5 Eisen in schlechter Qualität, 10 in guter Qualität usw. sein. Das muss ich ja separat stapeln. Also brauche ich sozusagen ein System (was jetzt vorhanden ist), um die ganzen Sachen zu unterteilen.


    Später sollen auch Slot-Systeme hinzukommen, wozu ich dann sowieso dieses aktuelle Systeme brauche. Nur muss ich das ganze nun Gegenrechnen. Es sei denn ich bin auf dem Holzweg mit meinem Inventar-System und man macht das in der Spieleindustrie anders?

    Ich möchte gerne die Gegenstände zum Vergleich bei der Herstellung in ihrer Anzahl vergleichen, daher muss ich diese Gegenstände zusammenzählen.

    Egal was ich mache es kommt immer das falsche raus.
    Bei dem ADD-Unique Array wird auch das falsche ausgegeben.


    Brauche dringend eure Hilfe, es ist zum verzweifeln!


    Es ist so zum kotzen mit dem ganzen Inventar System, egal wie ich das mache und drehe ich stoße später immer auf logische Fehler.


    Kann dazu kein Script posten, weil es ja falsch ist.

    Habe dazu ein Zwischenspeicher Array erstellt in diesem sind die 3 Grundmaterialien gespeichert, diese sollen nur noch mit der Anzahl addiert werden.

    Das mit dem Streaming von Objekten und anderen Dingen (was auch immer), dient hauptsächlich dazu das der Server und der Client mit den ungebrauchten Dingen entlastet wird.

    Das ist die Idee des Streamings, dass nur Dinge gebraucht werden die auch tatsächlich gebraucht werden, alles andere fliegt sozusagen raus, wird irgendwo abgespeichert und bei bedarf wieder abgerufen.


    Ich habe das hier nur angesprochen, weil auch die Gegenstände die ich verwende, auch im Spiel/Welt verwendet werden und das System also ineinander greifen muss.

    Es würde wenig Sinn machen, wenn nur nicht interaktive Dinge gestreamt werden... dann liegt quasi der ganze interaktive Müll herum und verstopft den Client + Server. Ein häufiges Problem verschiedener anderer Multiplayer Spieler. Weshalb das ganze auch häufig limitiert ist.


    Wenn man sich dieses ganzen "Wundertechniken mit 1000 Spieler gleichzeitig" anschaut, erkennt man dazu parallelen. Diese bauen exakt auf diesem Prinzip auf wie ich oben geschrieben habe. Je weniger auf dem Server und Client an ungenutzten Dingen liegt, um so mehr Spieler können als Lückenfüller einspringen. Somit kann man die Spielerzahlen nach oben schrauben (auf kosten wiederum anderer Dinge, Balancing usw.).


    Man kann sich das so wie das alte LOD (Level of Detail) System bei der Grafik anschauen. Nur eben nicht für Grafik sondern für Netzwerkkommunikation.

    Die Client basierten Grafiken laufen lokal ab und dem Server ist das egal, dieser muss nichts grafisches berechnen. Der Server muss nur den Teilnehmern sagen wo was ist.


    ---


    Achja so nebenbei, habe es wunderbar hinbekommen wie ich es wollte. Siehe Screenshot.

    Also alles was Stapelbar und nicht ist (z.B. 2x 1 Säbel) funktioniert perfekt. Auch die Munition usw mit den unterschiedlichen maximalen Stapelgrößen. Das freut mich sehr.

    Jetzt noch die anderen Systeme daran anpassen und wunderbar.



    Am Anfang hatte ich das Inventar System so:

    10 Eisenbarren = 10 Gegenstände im Inventar.


    Das war zwar praktisch aber mir ist aufgefallen das wenn zu viele Gegenstände im Array sind (Anzahl) führt es zu Delay Problemen und allgemeine Fehler. Später sind Makros nicht mehr ausgeführt worden. Als ich 250x 1 Eisenbarren einfügen wollte, Unreal Engine hat es nicht gemacht :(



    Nun habe ich wie oben im Bild eine Stapelmenge die ich selbst bestimmten kann.

    z.B. 100 Eisenbarren = 1 Gegenstand im Inventar.

    oder 5x 20 Eisenbarren = 5 Gegenstände.


    Nun sind auch die Fehlermeldungen verschwunden das dass Array empty is usw.

    Das wundert mich etwas weil das Array nicht leer ist... komische Sache.

    Darum verstehe ich nicht warum die Fehlermeldung erscheint.




    Gedacht habe ich das so das Dinge in der Welt nur auf dem Server gespeichert werden, nach dem "Object-Streaming" Prinzip.

    Dinge im Spiel werden rein und raus gestreamt wenn diese nicht oder benötigt werden.


    Der erste Schritt dafür ist die Physik der Objekte nach einer Ruhephase deaktiviert werden, um so die Performance zu verbessern. Also diese werden zu temporär Statischen Objekten und dabei sollen auch die Informationen entfernt werden, bis diese wieder gebraucht werden. Etwa wenn sich ein Spieler einem gewissen Bereich nähert.

    Ich habe noch eine zusätzliche Frage:

    Bezüglich Multiplayer und Delay.


    Wie kann man das machen das eine Übertragung von Informationen dann erfolgt wenn es möglich ist ohne den Verlust durch Ping?


    Bezüglich dem "Inventar", benutze ich das Langschwert daraus muss im anderen "Ausrüstung-Inventar" (wo es hineingeführt wird) die Widgets aktualisiert werden. Da der Transfer von Server zu Server erfolgt, können keine Lokalen Widgets durchgeführt werden (es geht allgemein nicht). Setzte ich die Aktualisierung des "Ausrüstung-Inventar" an das Ende, so das es aktualisiert werden soll wenn alles andere davor erledigt wurde, funktioniert es nicht.

    Erst wenn ich ein Delay von 0,2 Sekunden davor hänge funktioniert es.


    Aber wenn einmal der Ping/Verzögerung größer ist, tritt der gleiche Fehler auf.

    Daher meine Frage wie kann man etwas Ausführen wenn es tatsächlich ausführbar ist?

    Ich habe das ganze so gemacht das ich mich auf eine Graphen-Datenbank hinarbeite. So das ich nur für die erste Gegenstandsart eine Datenbank brauche und alles weitere wird in sich selbst gespeichert, modifiziert und angepasst vererbt usw.. Man soll die Sachen im Spiel verändern können (innerhalb einer gewissen Möglichkeit) die wiederum neue Dinge ermöglichen die die bisherigen vererben können, "Parent/Child" System aber eben erweitert. Natürlich innerhalb ihrer Zugehörigkeit (bezüglich der Inventarorientierung).


    Dabei habe ich das Inventarsystem und allgemein so gemacht das 6 Inventar-Systeme vorhanden sind; Waffen, Nahrung, Fahrzeuge usw.

    Dadurch kann ich die allgemeine Last verschieben (im späteren Verlauf kommen erst die großen Probleme), in anderen Spielen habe ich gemerkt das wenn man alles über ein System laufen lässt das die Performance darunter enorm leidet (weil ja immer alle Informationen ((auch wenn leer)) mitgeliefert werden).


    Natürlich hoffe ich das es so funktioniert wie gedacht. Muss nur noch gucken wie ich die ganzen Sachen in der Welt speichern kann (Persistenz). So kann ich z.B. gewisse Dinge deaktivieren ohne das davon alle betroffen sind. Als Beispiel wäre da die Gebäude im Spiel, dort könnte man die Informationen deaktivieren (Sleep) bis diese gebraucht werden (Awake). Es macht einen Unterschied ob ich jetzt 1000 Häuser habe die voll mit Informationen sind (weil das im Laufe der Zeit ja mehr an Informationen wird) oder 1000 Häuser bei der ich die Informationsdichte selbst regulieren kann, ohne das darin Informationen sind die nicht dazugehören (als Beispiel Fahrzeugeigenschaften usw.).


    Ich möchte das die Spieler selber Entscheidungen treffen können und dürfen legendäre Gegenstände zu erzeugen, ganz nach ihren Wünschen. Das wird genau den Nerf der Zeit treffen wenn Kreativität der Spieler gefördert wird, natürlich wird das Balancing berücksichtigt. Alles im Spiel ist endlich. Sollte eine Waffe zu übermächtig sein, kann diese wieder zerstört werden. Darum die Aufteilung weil ich so mehr Spielraum innerhalb der Bereiche habe. Falls mal was kaputt gehen sollte (was ja immer mal passieren kann) ist nur der Bereich davon betroffen und nicht alles andere. Ausgenommen das was damit zusammenhängt könnte auch etwas fehlerhaft sein.


    ---

    Zu meinem Fehlerproblem:


    Derzeit habe ich diese Fehlermeldungen (gelbe Schrift) wie kann ich das beheben? Es scheint so als ob ein Array leer ist und dann doch nicht (habe es gegengeprüft). Muss ich da einfach nur überall ein "IsValidIndex" machen oder so um das zu beheben, oder ist das harmlos?

    Es funktioniert ja alles wunderbar. Im Internet schreiben einige das es harmlose Fehler sind, trotzdem würde ich verhindern wollen das diese Fehlermeldung erscheint (um zukünftig andere Fehlermeldungen besser analysieren zu können).

    Danke für die Infos!


    Das mit Ceil... immer solche versteckten Dinger ^^


    Für welche Art von Inventarstrukturierung habt ihr euch entschieden und vor allem WARUM?


    Variante A: "Array Length: 10"

    10 x 1 Eisenbarren (oder was auch immer)


    Variante B: "Array Length: 1"

    1x 10 Eisenbarren


    oder gibt es noch eine andere Form?


    Bin derzeit bei Variante A aber mit Vorbereitung bei Variante B...

    Es ist halt bequemer wenn man ein Array nach der Anzahl durchsucht anstatt nach einzeln mit einer Anzahl als Variable darin.

    Hallo zusammen!


    Ich möchte gerne mein Inventarsystem überarbeiten und da sind mir ein paar Fehler aufgefallen.

    Es geht dabei vor allem um die stapelbaren Gegenstände!


    Habe das so gemacht das meine Gegenstände ein Struct haben und darin befindet sich die Werte; "StapelbarAktuell" für wie viele es aktuell sind und "StapelbarMax" wie groß der Stapel maximal sein kann.

    Also 10 Erz zu je 5 StapelMax = 2x 5 Erz (so sollte es dann im Inventar sein).


    Das ganze als Integer Werte, um das Komma zu vermeiden.


    Nun muss ich also 11 Erze zu je 5 Stapel in letztendlich 3 Stapel umrechnen.

    11 durch 5 = 2,2 Stapel.

    2,2 sollte zu Integer 3 gerundet werden, aber das tut die Unreal Engine nicht.

    Float 2,2 RoundToInteger ist immer 2 und nicht 3! Wie kann man das machen das IMMER aufgerundet wird?



    Dazu hätte ich noch eine allgemeine Frage:
    Macht es mehr Sinn wenn man weniger Anzahl in einem Array hat und dafür im Array (im Struct) die Werte erhöht?

    Z.B. 10 Erze sind im Array 1 Gegenstand (1x10), anstatt 10x1.

    Wobei es bei einer StapelmengeMax also 2x5 wären, wenn man nach dem System geht was ich geplant habe.


    Diese Frage bezieht sich darauf wie man die Gegenstände wieder aus dem Inventar bekommt und vor allem wie man das ganze im Inventar umgestalten kann.


    Danke für eure Infos. Ich wollte eigentlich einen Code hier einfügen aber irgendwie geht das nicht.

    So noch einmal die Bestätigung bekommen. Das würde dann auch euch alle betreffen.


    Auszug aus der Email vom19.04.2023:

    ---


    Hallo Exaran,


    mein Name ist XYZ und übernehme deinen Fall.


    Wir verstehen, dass du dir wegen des Namens "Exaran" Sorgen machst. Wir können dir bestätigen, dass den Anzeigenamen allein "Exaran" oder Variationen wie "ExaranOfficial" im Epic Games Services ohne Probleme verwendet werden können, solange niemand anderes den Namen bereits verwendet. Es ist der direkte Bezug auf die Webseite im Anzeigenamen, der das Problem verursacht, aber du musst keine Änderungen an deiner Homepage vornehmen.


    Wir hoffen, dass diese Informationen helfen, die Situation zu klären.


    Mit freundlichen Grüßen

    XXX YYY.

    ---


    Oki dann ist das Thema damit erledigt. Die Logik leuchtet mir noch nicht ein, aber sei es drum.

    Falls ihr euch auch wundert warum euer Name plötzlich geändert wurde oder sonst etwas, könnte es daran liegen.

    So ich habe jetzt endlich mal mehr Informationen erhalten, wo genau das Problem liegt.


    Aus der Email:
    "... Da die Webseite (http://www.Exaran.com) aktuell in Bearbeitung ist, können wir nicht feststellen, ob sie unseren Community Richtlinen entspricht. Im Allgemeinen sind Webseiten allerdings eher unpassender Inhalt für einen Epic Games Anzeigenamens."


    Wenn ich das richtig verstanden habe, gibt es ein Problem auf meiner Webseite, weshalb das ganze von Epic Games gesperrt wurde (also mein Name). Das ist etwas womit ich arbeiten kann um dies zu verbessern.

    Warum die das nicht gleich von Anfang an so kommuniziert haben, bzw. mich darüber Informieren das dort ein Konflikt besteht... es würde alles einfacher machen, denn so hätte ich den Fehler gleich beheben können.


    Nun habe ich auch meine Homepage überabeitet und ein paar Bilder dazu gepackt. Sieht schlimm aus aber für den Anfang muss es reichen.

    Danke dir für die Infos!


    Ich dachte das man Anschrift + Kontakt (in dem Fall Email) im Impressum mit angeben muss.


    Benutze für meine Webseite Wordpress und dort das Style "Neve", alle Funktionen für Cookies sammeln sind deaktiviert aber bezüglich Datenschutz finde ich nichts dazu. Es werden quasi keine Angaben gemacht.


    Da ich derzeit mit dem Weltenbau noch auf 5.2 Warte, kann ich nun die vorerst letzten Fehler verbessern. Bisher habe ich noch Menüs, Funktionen im Spiel usw. aber alles nicht schön gestaltet um es zu zeigen.

    Ich hatte die Website kurz online, auch mit Bildern zum Spiel aber leider fehlt mir der Datenschutz.

    Auch die Nachfrage bei meinem Webspace Anbieter bezüglich der Datenschutzinformationen für Wordpress ist mangelhaft.


    Ich weiss nicht wo ich die Informationen herkomme ich in den Datenschutzbestimmungen angeben muss, ohne das ich eine Abmahnung erhalte :(


    Das ganze ist so gigantisch unübersichtlich.


    Ich bräuchte ein Website Baukasten mit dem ich einfach nur die Inhalte füttern muss, ohne das ich das ganze rechtlich beachten muss.

    Ich erhalte ständig die gleichen Antworten. Die drehen sich komplett im Kreis.


    Hat man da mit einem Anwalt überhaupt eine Chance?


    ---

    Hallo,


    ich bin XYZ und übernehme mal eben für meinen Kollegen. Danke für deine Geduld, während wir das überprüft haben.

    Wir verstehen, dass du gerne nähere Informationen über den Verstoß erhalten möchtest. Leider sind wir aufgrund unserer Datenschutzrichtlinien jedoch nicht in der Lage, dir zu diesem Zeitpunkt genauere Informationen zu geben.

    Was wir jedoch sagen können, ist, dass der angezeigte Name zu einer Website oder einem Produkt/Dienst zu führen scheint, die gegen unsere Regeln verstoßen. Wir nehmen diese Angelegenheiten sehr ernst und sind bestrebt, eine sichere und faire Plattform für alle Nutzer zu schaffen.


    Wir danken dir für dein Verständnis in dieser Angelegenheit!

    ---

    Oh man ich kriege immer nur die gleiche Antwort:

    ---

    Hi there,


    Thank you for contacting Epic Game Support, I'm xxx and I will be assisting you on this matter.


    I understand that you are appealing the reset of your display name. Please understand that we have carefully reviewed your appeal and as of now we are not able to make changes to it.


    Please understand that Your display name must not contain any of the following:


    • Vulgarity, hate speech, offensive or derogatory language of any kind
    • Direct references to any Epic Games employee, product, service or character



    All the best,

    xxx

    ---

    Habe es nach deiner Anleitung gemacht und auch nach der wie es in manchen Videos genutzt wird.

    Als Debug erhalte ich auch die richtigen Informationen, so das dieses auf dem Server erfolgt.


    Jedoch wird der Charakter nicht in das gewünschte Level teleportiert.


    Bei mir läuft es so ab:
    Teleporter Actor Blueprint -> MyCharacter -> GameMode


    SeamlessTravel habe ich sowohl im GameMode als auch als Node noch aktiviert.


    Sowohl dmca@support@epicgames.com noch dmca@support.epicgames.com funktionieren und existieren nicht.


    Bekomme da als Fehler:


    Code
    We're writing to let you know that the group you tried to contact (dmca) may not exist, or you may not have permission to post messages to the group. A few more details on why you weren't able to post:
     * You might have spelled or formatted the group name incorrectly. * The owner of the group may have removed this group. * You may need to join the group before receiving permission to post. * This group may not be open to posting.

    Ich habe auch die Vermutung das intern ein Bot einfach die Namen kontrolliert hat und die dann zur eigenen Sicherheit (so wie du schon geschrieben hast) diesen Namen einfach sperren.

    Der Support wird auch nicht entsprechend die Gründe dafür einsehen und daher auch nichts machen können.


    Geht das auch auf deutsch oder muss die Kommunikation englisch sein?

    Hast du da eine Email von der Rechtsabteilung?
    Ich stecke im Support fest der sich weigert Informationen herausrücken zu wollen.

    Auch das ich die Patentnummer mit gereicht habe usw. das scheint die nicht zu interessieren.

    Die einzigen Antworten als Email schauen alle wie folgt aus:


    ---

    Sehr geehrter xxx,


    vielen Dank für Ihre Antwort.


    Ich verstehe, dass Sie Zweifel an der Entscheidung haben, aber die von Ihnen eingereichte Beschwerde wurde geprüft, und das Ergebnis ist, dass wir Ihnen nur dabei helfen können, den Anzeigenamen in einen anderen zu ändern, der den von uns vorgegebenen Richtlinien entspricht.


    Bitte lassen Sie mich wissen, ob Sie Hilfe beim Ändern des Anzeigenamens benötigen, und senden Sie mir den neuen Anzeigenamen, den Sie verwenden möchten.


    Mit freundlichen Grüßen

    Ilana Lovelace


    ---

    Guten Morgen lieber xxx,


    Es ist verständlich, dass du genauere Informationen bekommen möchtest, wir können dich in diesem Fall nur wieder zu unseren Nutzungsbedingungen weiterleiten und falls keine weiteren Fragen bestehen, muss ich die Unterhaltung beenden.


    Hoffentlich bist du nicht entmutigt, wir wünschen dir einen schönen Freitag noch!


    Mit freundlichen Grüßen,

    Trin ---


    Mir scheint das der Support nicht kompetent genug dafür ist.

    Komischerweise darf ich den Exaran Namen im DEV Forum weiter verwenden.