Ich weiß, dass Effizienz der Schlüssel zur Spielprogrammierung ist, und ich habe einige Erfahrungen mit dem Rendern einer "Karte" früher gemacht, aber wahrscheinlich nicht auf die beste Weise.
Für ein 2D-TopDown-Spiel: (Rendern Sie einfach die Texturen / Kacheln der Welt, sonst nichts)
Angenommen, Sie haben eine Karte von 1000 x 1000 (Kacheln oder was auch immer). Wenn sich die Kachel nicht in der Ansicht der Kamera befindet, sollte sie nicht gerendert werden - so einfach ist das. Sie müssen keine Kachel rendern, die nicht angezeigt wird. Da Ihre Karte jedoch 1000 x 1000 Objekte enthält oder weniger, möchten Sie wahrscheinlich nicht alle 1000 * 1000 Kacheln durchlaufen, um zu sehen, ob sie gerendert werden sollen oder nicht.
Frage: Wie lässt sich diese Effizienz am besten umsetzen? Damit es "schnell / schneller" bestimmen kann, welche Kacheln gerendert werden sollen?
Außerdem baue ich mein Spiel nicht um Kacheln, die mit einem SpriteBatch gerendert wurden, sodass es keine Rechtecke gibt. Die Formen können unterschiedliche Größen haben und mehrere Punkte haben, z. B. ein gekrümmtes Objekt mit 10 Punkten und eine Textur innerhalb dieser Form.
Frage: Wie stellen Sie fest, ob sich diese Art von Objekten "in" der Ansicht der Kamera befindet?
Mit einem 48x48-Rechteck ist das ganz einfach. Sehen Sie nur, ob sich X + Breite oder Y + Höhe in der Ansicht der Kamera befindet. Anders mit mehreren Punkten.
Einfach ausgedrückt, wie Sie den Code und die Daten effizient verwalten können, um nicht gleichzeitig eine Million Objekte durchlaufen / durchlaufen zu müssen.