jak przechowywać mapę gry przeglądarkowej

0

Cześć, piszę grę przeglądarkową w asp.net z użyciem c# i tak się zastanawiam, gdyż w niej, w rzucie izometrycznym będę chciał wyświetlać miasto, którym gracz będzie mógł zarzadzac tylko w czym przechowywać mapę tego miasta? gdyby to byla zwykla gra desktopowa użyłbym bitmapy, ale tutaj jest ona raczej nie na miejscu. Najprościej bylo by chyba zapisac mapę do bazy danych jako tekst i potem w zależnosci od literki czy cyferki program by konstruował graficzne odwzorowanie mapki miasta. Ale czy istnieje jeszcze inny sposób jej przechowywania?;> bardziej efektywny i milszy dla oka?;>

0

Jeżeli dobrze Cię zrozumiałem to potrzebujesz czegoś co będzie przechowywało informacje o Twojej mapie. Moim zdaniem dobrym rozwiązaniem jest utworzenie pliku .xml gdzie będziesz przechowywał informacje na temat swojej mapy.
Podam przykład:

<?xml version="1.0" encoding="ISO-8859-2"?>
<map>
  <object name="budynek">
    <path>Modele//budynek1.jpg</path>
    <posx>0</posx>
    <posy>-50</posy>
    <info>jakies informacje</info>
  </object>
</map>

Gdy już utworzysz taki plik o odpowiedniej strukturze to stosujesz parser do .xml, .net swoją drogą ładnie wspiera xml'a. Plik xml będzie zawierał wszystkie informacje więc po problemie. Jeżeli potrzebowałbyś takiego parsera to pisz chętnie pomogę.
pozdr

1

Z ciekawości... robisza plemiona 2? :] albo traviana?

0

Hmm... no tylko to przechwywanie by musialo byc bardziej dynamiczne, bo naprzyklad gracz bedzie mógł budowac nowe budynki, a nie wiem czy edycja xml'a za każdym razem będzie najbardziej trafionym rozwiązaniem.

Pisze cos w rodzaju simcity z tropico :P

0

Info o mapie trzymaj oczywiście w bazie danych. Dostęp do XML będzie dużo wolniejszy, poza tym nagminnie się będzie zdarzać sytuacja, że dwóch użytkowników będzie chciało zrobić coś w tym samym momencie i będziesz musiał zarządzać dostępem do pliku. W przypadku bazy danych zablokujesz tylko jeden rekord opisujący konkretne pole na którym działa użytkownik.

0

ale jako tekst czy w jakis zmyślniejszy sposób? jako tekst bybyło najprosciej, jak pisałem z poczatku tylko czy najbardziej efektywnie?;>

0

Co to znaczy 'jako tekst'?

Jeżeli chodzi ci o to czy trzymać w bazie tekstury to oczywiście nie.

0

jak piszesz gre 2d , w ktorej naprzyklad poruszasz sie jakas postacia po miescie to musisz mape tego miasta zeby je móc wygenerować na monitorze. Najprościej jest przechowywać w postaci pliku tekstowego, ze w petli szczytujesz jeden znak z pliku i w grze generujesz mape tak, ze jak szczytasz "A" to wyswietli sie dany kafel planszy, a jak "B" to inny kafel planszy. Wszystkie kafle jak sie wyswietla stworza mape całego miasta. No i wląsnie nad tym dumam.. jak to łądnie rozwiazac, gdyż najprostrze rozwiazania nie zawsze sa najlepsze. Jak pisałem gre desktopowa to uzylem zamiast pliku tekstowego bitmapy, w ktorej w zaleznosci jaki byl kolor piksela taka grafike kafla wyswietlałem.

1

Najprościej jest przechowywać w postaci pliku tekstowego
Tu bym polemizował...

ze w petli szczytujesz
Nie będę pisał z czym mi się to skojarzyło, w każdym razie pisze się zczytujesz :P

Nie wiem właściwie jaki problem... Nie prościej w postaci tablicy byte albo int, -> zajmowałoby mniej miejsca, i mógłbyś sobie rzutować na enuma (o wiele prościej się nimi operuje).

0

ze w petli szczytujesz

Nie będę pisał z czym mi się to skojarzyło, w każdym razie pisze się zczytujesz :P

sorki za to szczytowanie:D

Nie wiem właściwie jaki problem... Nie prościej w postaci tablicy byte albo int, -> zajmowałoby mniej miejsca, i mógłbyś sobie rzutować na enuma (o wiele prościej się nimi operuje).

ąotem to moge do tablicy dac i na niej operowac, ale gdzies jakos musze ja pzrechowywać fizycznie. Jak bedziesz mial całą ta mape tylko w tablicy dowolnego typu, to jak ci wylacza kompa, to mapa zniknie bezpowrotnie. Wiem ze mozna taka mape przechowywac w pliku tekstowym bitmapie, ale czy istnieje jeszcze inny sposob biorac pod uwage ze to bedzie dzialac przez przegladarke. XML byłby dobry gdyby nie to, że ilość i rozmieszczenie obietków na mapie będzie zależna od użytkownika, że będzie dynamiczna, a nie statyczna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1