Hi Entwicklers,
ich grübele gerade über ein neues Konzept eines Strategie-Browsergames. Darin möchte ich gern eine Karte haben, auf der es den "Fog of War" gibt.
D.h. die Karte soll an den Stellen schwarz sein, die der Spieler noch nicht besucht hat und grau-transparent an den Stellen, die er irgendwann einmal erkundet hat und jetzt nicht mehr in seinem Sichtbereich liegen.
Der Fog of War soll sowohl Gebäuden, als auch von Einheiten beeinflusst werden und ändert sich deshalb unter Umständen alle paar Minuten.
Vor ein paar Jahren habe ich so etwas schon einmal versucht in mein damaliges Spiel zu integrieren. Jedoch war die damalige Methode (erkundete und sichtbare Felder in der Datenbank halten) alles andere als performant.
Vielleicht hat ja jemand von euch das Problem schon gelöst oder ist daran zugrunde gegangen? (So wie ich damals... ;-))
Ich suche eine Lösung, die auch für sehr große Karten funktioniert. Meine Denkansätze gehen bisher in folgende Richtungen:
- für jeden Spieler eine Bitmap speichern, die Werte [0,1,2] speichert für alle Felder der Karte (vielleicht nicht viel performanter als Datenbankansatz, da Bilder so groß wie Karte sind)
- "Fragmente" in der DB speichern: Pfade, die Einheiten zurückgelegt haben oder Punkte, an denen Gebäude stehen. Die Sichtbarkeit eines Feldes wird dann dynamisch beim Laden berechnet.
Hat noch jemand andere Ideen? Bzw. gibt es Browserspiele, wo so etwas realisiert wurde?