Я розробляю 2D-платформу з деякими друзями-uni. Ми базуємо його на XNA Platformer Starter Kit, який використовує .txt файли для зберігання карти плиток. Хоча це просто, але це не дає нам достатнього контролю та гнучкості при рівні дизайну. Деякі приклади: для декількох шарів вмісту потрібно кілька файлів, кожен об'єкт закріплений на сітці, не дозволяє обертати об'єкти, обмежена кількість символів і т. Д. Тож я роблю кілька досліджень, як зберігати дані про рівень і файл карти.
Це стосується лише файлової системи зберігання плиткових карт, а не структури даних, яку повинна використовувати гра під час її запуску. Карта плиток завантажується у двовимірний масив, тому це питання стосується того, з якого джерела заповнити масив.
Обґрунтування БД: З моєї точки зору, я бачу менше надмірності даних, використовуючи базу даних для зберігання даних плиток. Плитки в одному і тому ж х, у положенні з тими ж характеристиками можна повторно використовувати від рівня до рівня. Здається, було б досить просто написати метод для отримання всіх плиток, які використовуються на певному рівні з бази даних.
Обґрунтування JSON / XML: Файли, візуально редаговані, зміни можна відстежувати через SVN набагато простіше. Але є повторний зміст.
Чи мають якісь недоліки (час завантаження, час доступу, пам'ять тощо) порівняно з іншими? А що зазвичай використовується у галузі?
Наразі файл виглядає так:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - початкова точка гравця, X - рівень виходу,. - Порожній простір, # - Платформа, G - Gem