Rare Spawn System

  • Rare Spawn System

    Hallöchen,
    heute mit folgender Idee:

    Ich möchte ein System verbauen was bestimmte Items seltener Spawnen lässt, als zmb ein Messer.

    Beispiel:

    Messer: Normal
    Katana: Selten
    Colt 1911: Episch

    So...
    Das "Messer" mit der Klasse "Normal" soll öfters vorkommen, als die "Pistole" mit der Klasse "Episch".

    Ein allgemeines Spawn System kann ich bereits Bauen. Nur leider wählt dieses zufällig ein Item aus meiner Liste aus. (Ohne "Episch" zu Filtern)

    Meine Frage wäre nun, wie ihr ein solches System umsetzen würdet.


    PS: man kennt sowas ja aus spielen wie PUBG. Man findet eher eine Pistole, M4 ect als eine Sniper.

    Danke schonmal für eure Hilfe ^^
  • Die einzig wahre ANtwort? Zufallsgenerator und Zahlen.


    Erst mal musst du überlegen wie oft der Spieler Items bekommt (spawnen, gewinnen oder klauen ist da relativ - du willst es ja einfach "selten" oder "häufig).



    Sagen wir mal ein messer ist ja normal, also sollte meistens ein messer kommen. Wenn das Item kommt wenn man einen gegner umlegt dann kann man ja eine Menge items pro Stunde sammeln. Sagen wir mal so 100 Kills pro Stunde sollte der geübte Hobby Söldner hinbekommen. Gibt es nur Messer dann hat er nach 4 Stunden etwa 400 messer.

    Jetzt geht es an die interessante Frage - wie oft ist "selten"? also 1 aus 50? 1 aus 100? 1 aus 300? Das musst du dir überlegen.

    Der Zufall soll es sein, also erst mal mit "random" auseinandersetzen, es gibt verschiedene Methoden um Random number zu generieren, stichworte "RandomStream", "Random Stream seed", "random Integer".


    Ein Integer ist hier gar nicht so schlecht, also eine zufällige Zahl irgendwo zwischen 1 und 50.000. Sagen wir mal von 1 bis 49.000 ein messer, alles über 49.000 das Katana - damit hast du schon mal etwa 49 Messer und 1 Katana bei 50 spawns. Sagen wir mal alles ab 49900 eine 1911 - damit sind dann von 500 spawns in etwa 490 Messer, 9 Katanas und eine 1911.

    Du kannst das Verhältnis natürlich beliebig ändern - in dem Beispiel geht es bis 1:50.000 - was schon sehr episch ist (ich glaube ich hab noch in keinem Spiel 50.000 Items bekommen).



    Wenn du cheating vorbeugen willst dann generierst du die Nummer auf dem Server. Auf dem Client gibt es Tricks wie man die Zufallszahl etwas weniger zufällig machen kann - je nach Seed methode...
  • Klar sollte sein das es noch viele andere Waffen geben wird^^
    Das ganze soll quasi wie eine Battleroyale Runde laufen. Der Spieler Spawnt, sucht sich seine Gear zusammen und gewinnt evt^^ (alles drumherum ist noch in Planung)
    Hierbei möchte ich ein ausgewogenes Balance zwischen Nahkampf und Fernkampf haben. (Fernkampf sollte zur Ausnahme werden. Das Balance ich zmb mit sehr wenig Munition ect)

    "Random Integer" hört sich schonmal interessant an.

    So würde es bei mir aussehen zmb:

    HealPack ID0
    Messer ID1
    Katana ID2
    Pistole ID3

    Nun soll der Random wert eine Zahl zwischen 0 und Max berechnen, in meinem fall 0/3.
    Somit bekomme ich zwar einen Random wert, aber nicht das Resultat was ich mir erwünsche.
    Bin noch sehr neu in dem Ganzen Thema Games erstellen ect, daher verstehe ich vieles noch nicht. Wahrscheinlich hast du mir oben die Lösung schon genannt, nur habe ich sie nicht verstanden/falsch verstanden^^

    Danke schonmal für deine Hilfe
  • Danke "kyodai". Du hast mir mit "Random Integer" genau das richtige Sprichwort gegeben.
    Habe dieses Bild dazu gefunden:

    Hier lasse ich zmb von 0-9 nix ausführen. Bei 10 zmb Spawnt er dann mein Item.
    So sollte meine Lösung sein.
    Korregiere mich wenn was nicht stimmt, oder es zu umständlich gelöst ist^^
    Bilder
    • DsHgsvD.png

      132,13 kB, 1.335×699, 8 mal angesehen
  • Ja schon gut verstanden... Der Random Integer liefert nur ne Zahl. Damit kann man aber schon mal was anleiern. Probier doch mal klein anzufangen. Also wenn die Zahl von 1-10 ist dann alles was größer 8 ist die 1911 ansonsten messer. Zum testen ist das super... Wenn du das implementiert bekommst dann ist es super easy das ganze etwas auszuweiten und irgendwann dann "höhere Mathematik" anwenden und Sachen super selten machen. Zum testen ist es aber cool wenn die dann doch öfter spawnen um bugs auszuschliessen und so...
  • Neee, "random" ist ja zufällig, seh das wie ne Lotterie. Sagen wir mal es gibt 50.000 Lose und eins wird gezogen. Wie groß ist die chance daß deine Nummer kommt? Eben - genau eins zu fünfzigtausend. Ist schon sehr mathematisch. Daß die Nummer 8952 gezogen wird ist dann eben 50.000 zu eins. Ist das zu krass dann mach doch nummer 8952 und 8953 - dann ist es plötzlich nur noch 1: 25.000 chance... Ja und wenn du gleich 10 nummern nimmst -sagen wir mal von 8950 bis 8960 ist ein katana dann sind die chancen sofort 1 zu 5000. usw.

    Kann man lange drüber sinnieren wie cool oder dumm das ist aber ich denke mal so ungefähr machen es die meisten Spiele. Ist halt relativ billig umzusetzen.
Unreal®, Unreal Engine, the circle-U logo and the Powered by Unreal Engine logo are trademarks or registered trademarks of Epic Games, Inc. in the United States and elsewhere.