none
Performance oder RAM RRS feed

  • Frage

  • Hallo zusammen!

    Ich bin gerade dabei das Spiel von Heiko Kalista weiterzuentwickeln und taufe es mal Spaceshot. In diesem Spiel geht es um ein Raumschiff, mit dem man die kommenden Asteroiden abschießen kann. Mittlerweile habe ich in mein Spiel auch Explosionen (wenn ein Asteroid getroffen wurde) eingebaut. Heiko Kalista hat die Sprites der Objekte(Asteroiden, Explosionen, Schüsse und was ich noch hinzufügen werde) immer am Anfang des Spiels geladen und am Schluss zerstört.

    Nun ist mir aber in den Sinn gekommen, dass Siedler ja zum Beispiel auch nicht alle Bilder am Anfang des Spiels laden kann, sondern da auch irgendeine Lösung gefunden haben muss(Gut, ich muss zwar bei meinem Spiel bei weitem weniger laden, aber es können ja noch viele Bilder dazukommen.

    Für dieses Problem habe ich mir eine Klasse geschrieben names StaticObject. Diese Klasse lädt das Sprite eines Objektes erst, wenn eine Instanz vom Objekt erstellt worden ist. Wenn keine Instanz mehr existiert, wird das Sprite wieder zerstört. Und immer so weiter...

    Jetzt habe ich mich gefragt, ob das nicht negative Folgen auf die Performance hat, wenn ich, sobald z.B der letzte Schuss das Spielfeld verlässt, das Sprite zerstöre und wenn das Raumschiff den ersten Schuss erzeugt, es wieder lade.

    Und jetzt weiß ich nicht mehr, ob ich es so wie Heiko machen soll, oder mit StaticObject.                                                        Bitte helft mir diese Entscheidung zu treffen.

    Danke.

    Samstag, 13. Juli 2013 19:00

Alle Antworten

  • Hallo Julian,

    also ich kenne das Spiel von Heiko Kalista nicht...

    wenn du keine performance einbussen haben willst solltest du den sprite nicht immer wieder neu von der festplatte laden sondern im RAM lassen (wenn der sprite immer der gleiche ist dann natürlich als singleton).

    Sonntag, 14. Juli 2013 10:10
  • Hallo Julian

    Ich möchte mich Brian's Aussage anschließen. Zumal ich davon ausgehe, dass im Laufe der Zeit sehr viele Objekte immer wieder mal auftauchen und verschwinden wird dich das bei Festplattenzugriffen ziemlich einbremsen (vor allem, wenn die Festplatte dummerweise gerade auch noch etwas anderes zu tun hat). Ich würde höchstens bei neuen Leveln oder Ansichten auf Festplatten zugreifen, denn da wird eine kurze Wartezeit noch toleriert, aber nicht mitten im Spiel.

    Versuch halt, die Sprites nicht zu groß, oder ggf. mit weniger Farbauflösung zu speichern, damit der Speicherverbrauch nicht allzu extrem ist (andererseits, wenn die Sprites nicht gerade riesig sind, dann bringst du schon ein paar davon auf - sagen wir mal 500MB - unter, ohne dass es Probleme machen sollte).

    Grüße

    FireHeart

    Montag, 15. Juli 2013 12:32
  • Danke, für die Antworten! Ich werde es so machen. Ich muss des Forum überhaupt mal loben, da man immer so blitzschnelle und sehr gute Antworten bekommt. Danke...
    Montag, 15. Juli 2013 18:31