Я реализовал большую часть своей игровой логики прямо сейчас, но все же создаю свои карты с неприятными циклами «на лету», чтобы иметь возможность работать с чем-то. Теперь я хотел бы продолжить и провести некоторое исследование о том, как (не) сериализовать эти данные. (Я не ищу редактор карт - я говорю о самом файле карты)
Сейчас я ищу предложения и ресурсы, как реализовать собственный формат файла для моих карт, который должен обеспечивать следующие функциональные возможности (основанные на методе MoSCoW):
- Должен иметь
- Расширяемость и обратная совместимость
- Обработка разных слоев
- Метаданные о том, является ли плитка твердой или может быть передана
- Специальная сериализация объектов / триггеров со связанными свойствами / метаданными
- Мог бы иметь
- Какой-то вид включения набора плиток, чтобы предотвратить разброс файлов / наборов плиток
Я занимаюсь разработкой с C ++ (используя SDL) и ориентируюсь только на Windows. Любая полезная помощь, советы, предложения, ... будет принята с благодарностью!
Результат обсуждения ниже
Я разрабатывал формат файла моей карты последние несколько часов и придумал скелет (пока что содержит только слои - я оставляю все остальное для всех, кто разрабатывает свой собственный формат), которым я хотел бы поделиться со всеми заинтересованными - если у вас такие же намерения, что вы можете получить какое-то вдохновение. Полный скриншот можно скачать на Imgur .
источник
Ответы:
Лично я больше поклонник бинарных форматов с разделами (например, Windows PE, просто намного проще). Их также легче анализировать (но это только мое мнение .... Я работал с XML достаточно, чтобы вызывать головную боль, проверяя, вернул ли getElementByName одно значение или список значений ... тьфу). Итак, на вашем месте я бы сделал это примерно так:
,
Преимущества:
Недостатки:
Но самое лучшее в этом подходе, на мой взгляд, - это сделать все самостоятельно. Много проб и ошибок, но в конце вы многому научитесь.
источник
Вы можете использовать формат карты TMX, используемый Tiled- редактором (а также несколькими другими редакторами карт).
Даже если вы сами не используете Tiled, формат TMX поддерживает все функции, которые вы упомянули, и имеет несколько существующих загрузчиков / анализаторов для различных языков. Также очень легко понять формат и расширить его для вашей собственной игры.
источник