Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.08.2017, 16:35

2D Draw Reihnfolge

So, wer mein Projekt noch nicht kennt, geht in Richtung Banished, in 2D, auf Exoplaneten ...

Auf jeden Fall habe ich also eine Menge Gebäude und viele viele Menschen. Jetzt ist die Frage wie ich das mit der draw Reihenfolge mache.

Für die Gebäude habe ich mich dazu entschieden mit 2 Batches zu arbeiten. Ich "zerschneide" also die Gebäude und setze erst den unteren Teil, dann die Menschen, und dann den oberen Teil auf die Karte. Problem 1 gelöst.

Problem 2 sind nun die Menschen. Aktuell wird der Mensch zuerst gezeichnet, der zu erst erstellt wurde. Die Reihenfolge der Objekte in der Tabelle nach der Y-Koordinate pro Frame anzupassen wäre (glaube ich) zu rechenintensiv...

Ideen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

18.08.2017, 16:47

Die Reihenfolge der Objekte in der Tabelle nach der Y-Koordinate pro Frame anzupassen wäre (glaube ich) zu rechenintensiv...

Nicht "glauben", sondern testen und dann wissen! Wahrscheinlich unterschätzt du, wie schnell man sortieren kann.

3

18.08.2017, 17:31

na ja .... bei 10.000 Einheiten bekomme ich nur noch 40 FPS ...

das ist wohl annehmbar :D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

18.08.2017, 17:33

Wie sortierst du denn? (Code?)

5

18.08.2017, 21:43

na ja .... bei 10.000 Einheiten bekomme ich nur noch 40 FPS ...

das ist wohl annehmbar :D

Kommt mir ein wenig viel vor. Nutzt du culling? Und in welcher Art Container liegen denn deine Einheiten?

6

19.08.2017, 08:44

Also, ich hab jetzt noch eine Funktion drum herum geschrieben, sodass die "sortieren Funktion" nur alle 10 Frames aufgerufen wird. Jetzt hab ich stabile 60 Frames bei 10000 Einheiten. Glaube aber nicht das ein Spieler das Spiel so lange und exzessiv spielen wird .... und es fehlen ja noch eine menge andere Funktionen die Rechenleistung fressen werden.

Bin zufrieden damit, danke!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

19.08.2017, 09:39

Magst du nicht trotzdem deinen Code zeigen? Es klingt nämlich so, als ob du einen „dummen“ Fehler machst, z. B. einen Vektor mit ganzen Objekten zu sortieren statt einen Vektor mit Zeigern auf Objekte. Jedes 10. Frame sortieren finde ich nicht gut, das führt dann zu „Mikro-Rucklern“.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

19.08.2017, 09:48

... und zu 9 Frames mit potentiell falscher Draw-Reihenfolge.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

19.08.2017, 15:36

Also, ich hab jetzt noch eine Funktion drum herum geschrieben, sodass die "sortieren Funktion" nur alle 10 Frames aufgerufen wird. Jetzt hab ich stabile 60 Frames bei 10000 Einheiten. Glaube aber nicht das ein Spieler das Spiel so lange und exzessiv spielen wird .... und es fehlen ja noch eine menge andere Funktionen die Rechenleistung fressen werden.

10.000 Elemente zu sortieren sollte sich so gut wie gar nicht bemerkbar machen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige