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

Madman

Frischling

  • »Madman« ist der Autor dieses Themas

Beiträge: 18

Wohnort: Wiesbaden

Beruf: Anwendungsentwickler

  • Private Nachricht senden

1

23.08.2011, 09:01

2D - Fog of War - Speicherung / Konzept

Hallo zusammen,

ich hoffe man kann mir hier helfen. Zuerst einmal hoffe ich ich bin hier richtig. Es geht um folgendes:

Mein BG hat eine Karte, die der Spieler aufdecken kann. ( Aufgeteilt in 12 x 12 Inseln a 20 x 20 Felder )
Der Spieler kann jetzt durch die Gegend rennen (auch mit mehreren Einheiten) und die Karte aufdecken.
Ich will die Daten in einer MySQL-DB speichern (Es sei denn, jemand hat eine bessere Idee ;) )
Derzeit wird jede Insel für jeden Spieler konvertiert in einen String welcher anzeigt ob das Feld sichtbar ist oder nicht.
Also: 00010000100001000011110010101010101 [...]
Die DB enthält nun:
SpielerID - X - Y - Viewmap (Also der String)

Nun die Frage:

Wie geht ihr mit solchen "Fog of War" - Geschichten um? Hat hier jemand Erfahrung? Wie könnte man das verbessern? Ich bin nicht so ganz zufrieden, denn die Karte wird zwar weggespeichert aber es treten ständig Probleme auf. Immer mal wieder fehlt eine komplette Insell für einen Spieler. Ich denke da ist irgendwo ein Problem bei: Karte laden -> Neue Werte eintragen -> Karte speichern. Nur finde ich nicht raus wo oder wann, da der Fehler nur sehr selten auftritt. :(

Das ganze läuft auf Java / Tomcat, aber es geht mir erst mal um die allgemeine Konzeptionierung. Ich würde mich über Ideen freuen.

Grüße
Madman

// Edit, hab noch mal einen Screen angehängt, damit man evtl. sieht was ich meine :)
»Madman« hat folgendes Bild angehängt:
  • screen.JPG

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

2

23.08.2011, 16:06

Der ansatz an sich ist nicht falsch, wenn auchbei weitem nicht Optimal. Speicherst du einen STRING? Das ist definitiv nicht richtig ;) Du verschwendest unmengen an speicherplatz.

Mache dich mit bit-weisem lesen/schreiben vertraut ;)

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

Madman

Frischling

  • »Madman« ist der Autor dieses Themas

Beiträge: 18

Wohnort: Wiesbaden

Beruf: Anwendungsentwickler

  • Private Nachricht senden

3

26.08.2011, 08:30

Jawoll, vielen Dank erst mal. Ich hab das direkt am nächsten Tag umgesetzt und es scheint auch schon zu funktionieren.

Wer Interesse hat, wie es gelöst wurde darf mich gerne anschreiben, ich kann dann die Klasse zur Ansicht zur Verfügung stellen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

26.08.2011, 08:47

@Madman:
Du hast scheinbar nicht ganz verstanden... auch wenn Du nur 0 und 1 speicherst, sind das noch immer 8 Bit pro Zeichen, obwohl eins reichen würde. Also eigentlich totale Vergeudung.

@CBenni:O:
Wenn man allerdings in Betracht zieht, dass es eh nicht mal 1kb sind, die da insgesamt benutzt werden... wen juckt's?
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]

Madman

Frischling

  • »Madman« ist der Autor dieses Themas

Beiträge: 18

Wohnort: Wiesbaden

Beruf: Anwendungsentwickler

  • Private Nachricht senden

5

09.09.2011, 08:24

Nee sind es nicht, ich hab es schon als BitSet gespeichert. :D

Das ganze juckt dann, wenn man mal 200 - 300 Spieler hat, die jeweils ein komplettes Set haben. Das macht sich schon bemerkbar. Und ob ich das jetzt optimiere oder irgendwann anpassen müsste, ist es so besser. Ausserdem ist dann weniger DB-Traffic, da die Anwendung ja auch irgendwie die Daten aus einem (irgendwann evtl. seperat stehendem) Server ziehen muss. Oder?

Werbeanzeige