Tworzę platformówkę 2D z kilkoma przyjaciółmi z Uni. Oparliśmy go na XNA Platformer Starter Kit, który używa plików .txt do przechowywania mapy kafelków. Chociaż jest to proste, nie zapewnia nam wystarczającej kontroli i elastyczności przy projektowaniu na poziomie. Kilka przykładów: w przypadku wielu warstw treści wymaganych jest wiele plików, każdy obiekt jest przymocowany do siatki, nie pozwala na obracanie obiektów, ograniczoną liczbę znaków itp. Robię więc badania, jak przechowywać dane poziomu i plik mapy.
Dotyczy to tylko przechowywania w systemie plików map kafelków, a nie struktury danych, która ma być używana przez grę podczas jej działania. Mapa kafelków jest ładowana do tablicy 2D, więc pytanie dotyczy tego, z którego źródła należy wypełnić tablicę.
Uzasadnienie dla DB: Z mojej perspektywy widzę mniej nadmiarowości danych przy użyciu bazy danych do przechowywania danych kafelków. Płytki w tej samej pozycji x, y o tej samej charakterystyce można ponownie wykorzystywać z poziomu na poziom. Wydaje się, że napisanie metody pobierania wszystkich kafelków używanych na danym poziomie z bazy danych byłoby dość proste.
Uzasadnienie dla JSON / XML: Pliki edytowalne wizualnie, zmiany można śledzić przez SVN o wiele łatwiej. Ale jest powtarzana treść.
Czy mają jakieś wady (czasy ładowania, czasy dostępu, pamięć itp.) W porównaniu do innych? A co jest powszechnie stosowane w branży?
Obecnie plik wygląda następująco:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - Punkt początkowy gracza, X - Wyjście z poziomu,. - Puste miejsce, # - Platforma, G - Klejnot