Hallo,
ich habe mal wieder ein Problem. Ich versuche gerade alle meine dynamic Entitys zu verwalten, in meinem 2D Spiel.
Momentan speichere ich jedes Entity in einer ArrayList und jedes Entity wird immer gerendert und geupdatet. Da es momentan nur den Spieler als Entity gibt. Außerdem werden zum Beispiel bei Collisions Abfragen zwischen einem Entity und den anderen Entitys alle Entitys durchlaufen und die Collision Abfrage wird für jedes Entity gemacht.
Nun habe ich überlegt die Entitys meiner Welt in Chunks aufzuteilen. Also zum Beispiel ist meine Welt 6000 * 100 Blöcke groß. Nun habe ich Chunks die 100 * 100 groß sind dann hätte ich 60 Chunks. Jeder Chunk hat dann eine Liste mit Entitys die sich momentan in dem Chunk aufhalten. Nun habe ich aber ein paar Probleme was passiert wenn sich ein Entity zum Beispiel im ersten Chunk also in den Koordinaten 0, 0 bis 100, 100 aufhält und dann sich bewegt und zu 150, 90 geht und somit im zweiten Chunk wäre müsste ich dann jedes mal alle Chunks durchgehen und dann jedes Entity und abfragen in welchem Chunk es sich befinden müsste und wenn es nötig ist den Chunk ändern ? Außerdem haben meine Entitys 2 Methoden Update und Render. Update verändert die Daten und Render zeichnet. Jetzt könnte ich alle Entitys eines Chunks nehmen in dem sich der Spieler befindet und nur die in der Umgebung rendern aber ich muss ja theoretisch alle Entitys updaten die sich in der ganzen Welt befinden ?
Oder gibt es noch andere Systeme die vllt. effizenter sind ?
Lg Alex
ich habe mal wieder ein Problem. Ich versuche gerade alle meine dynamic Entitys zu verwalten, in meinem 2D Spiel.
Momentan speichere ich jedes Entity in einer ArrayList und jedes Entity wird immer gerendert und geupdatet. Da es momentan nur den Spieler als Entity gibt. Außerdem werden zum Beispiel bei Collisions Abfragen zwischen einem Entity und den anderen Entitys alle Entitys durchlaufen und die Collision Abfrage wird für jedes Entity gemacht.
Nun habe ich überlegt die Entitys meiner Welt in Chunks aufzuteilen. Also zum Beispiel ist meine Welt 6000 * 100 Blöcke groß. Nun habe ich Chunks die 100 * 100 groß sind dann hätte ich 60 Chunks. Jeder Chunk hat dann eine Liste mit Entitys die sich momentan in dem Chunk aufhalten. Nun habe ich aber ein paar Probleme was passiert wenn sich ein Entity zum Beispiel im ersten Chunk also in den Koordinaten 0, 0 bis 100, 100 aufhält und dann sich bewegt und zu 150, 90 geht und somit im zweiten Chunk wäre müsste ich dann jedes mal alle Chunks durchgehen und dann jedes Entity und abfragen in welchem Chunk es sich befinden müsste und wenn es nötig ist den Chunk ändern ? Außerdem haben meine Entitys 2 Methoden Update und Render. Update verändert die Daten und Render zeichnet. Jetzt könnte ich alle Entitys eines Chunks nehmen in dem sich der Spieler befindet und nur die in der Umgebung rendern aber ich muss ja theoretisch alle Entitys updaten die sich in der ganzen Welt befinden ?
Oder gibt es noch andere Systeme die vllt. effizenter sind ?
Lg Alex