Ab wie vielen Variablen bekommt der GM "probleme"

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ab wie vielen Variablen bekommt der GM "probleme"

    Hallo gm-d,
    Ich mache grad ein Spiel das warscheinlich über 5000 verschiedene Werte besitzt (Variablen, grids, lists und arrays).
    Ich hab zwar noch nicht so viele Werte aber wenn ich mit dem proggen weiter bin schon.
    Ich habe angst dass das Spiel dann bei 5000 Werten ins stocken kommt und deswegen wollte ich euch fragen wie viel der GM aushält.
    Mit Werten meine ich Variablen, Grids, Lists und Arrays. Bei Grids, Lists und Arrays meine ich natürlich jede einzelnde Zelle also ein Grid 10*3 hat 30 Werte.

    Ist es egal wie viel Werte man hat und gibt das nur Bytes dazu(Vom Spiel) oder macht das bei 5000 Werten viel aus?
    Wichtig: Die Variablen werden dann auch gespeichert! (per game_save funktion oder durch textarray weiß ich noch nicht)
    Twitter: @BytingGames
  • Also eines meiner Projekte benutzt 14 verschiedene Grids.
    Eines ist 2048x2048 und die anderen 512x512. Der Arbeitsspeicher ist
    bei circa 450-500 MB. Selbst auf meinem kleinen Laptop macht das Spiel
    keine Anstalten zu laggen. Ich wüsste auch nicht warum ein Spiel aufgrund
    der Inhalte im Arbeitsspeicher laggen sollte. (Du solltest golbale Variablen vermeiden,
    weil die etwas mehr Arbeitsspeicher reservieren)

    Wenn es 5000 Werte sind, die sich nicht jeden Step verändern, dann sollte es keine Probleme geben.
    Beim Abspeichern würde ich dir das abspeichern als Textdatei nahe legen, da ich persönlich
    das Gefühl habe, mehr Kontrolle über alles zu haben.

    Wenn der Arbeitsspeicher knapp wird, kannst du die CleanMemory DLL benutzen, um
    den verbrauchten Arbeitsspeicher zu reduzieren.
    (Das ist keine Empfehlung von mir.)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Shapow ()

  • In solch einem Fall ist es wirklich "doof" (was untertrieben ist) dass der GM nicht mehr Datentypen als real und strings kennt. Beide sind ja nicht grade speicherfreundlich.
    Trotzdem kann man mit 5000 und wahrscheinlich auch mit mehr als dem Zehnfachen an Variablen noch auf den allermeisten Geräten problemlos arbeiten.

    Allerdings... bist du dir ganz sicher dass so viele Werte nötig sind? Denn nur weil man es machen kann, heisst das noch lange nicht dass es wirklich gut ist das zu machen. Ist auf jedenfall nicht hilfreich falls man sich irgendwann mal als professioneller Coder bezeichnen will :D
    Was aber nicht heissen soll dass es nicht oftmals nötig ist.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • famous schrieb:


    Edit: Statt der ganzen Multiplatform Geschichte wär es mir lieber gewesen sie hätten mehr Typen verfügbar gemacht. Und dazu noch ein paar Speicherfunktionen und Adressen. ^^

    Naa.. ein oder zwei Typen wären genug. Vergiss nicht dass beim Game Maker immer im Vordergrund steht und stand, dass man leicht damit anfangen können soll. Da kommt die Typenunabhängigkeit sehr gelegen. Wenn du Adressen und etc. willst geh doch gleich zu C++.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Ok dann brauch ich also keine Sorgen zu haben, die dll werde ich dann wol noch lange nicht brauchen.
    Das wird n Rollenspiel, da brauch ich halt so viel Werte und das es nur 2 Datentypen gibt find ich auch dumm.
    Könnte man nicht einfach mehr Datentypen mit einer dll machen?
    Aber das wär warscheinlich ziemlich aufwendig was warscheinlich eh nicht geht.
    Twitter: @BytingGames
  • @Famous: Ich meinte du solltest ganz auf C++ oder einer anderen Sprache umsteigen.
    Aber du hast recht. Theoretisch sollte es die Möglichkeit geben auch weiterhin nur strings und reals(doubles) zu verwenden oder gar im simple-mode (wer hat den eigentlich jemals in seiner Lernlaufbahn benutzt? o-o) die anderen Typen ganz auszublenden...

    @iks deh
    Das mit eienr DLL wäre nicht sonderlich sinnvoll da dies bedeuten würde jedes mal beim Schreiben oder Lesen einer Variablen, einen Aufruf an die DLL machen zu müssen :/ Das entlastet (wenn überhaupt) den Speicher ein winziges bisschen aber um den Preis von enormen Zeitverbrauch.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)