Comments 12
Я когда-то для этих целей написал библиотеку и тулзу позволяющую конвертировать YAML в бинарный файл, а потом получать к этому доступ в рантайме. Хотя и появляется дополнительный этап конвертации данных, у такого подхода есть преимущества. Например, минимальная фрагментация памяти, т.к. все загружается одним блоком и больше никогда не меняется. Скорость загрузки тоже заметно возрастает — всего один read. В играх это все актуально. На большом количестве файлов yaml-cpp заметно тормозил. Ну и доступ был достаточно удобный:
Код лежит тут, если интересно: https://github.com/detunized/rodb
rodb::Database db("config.rodb");
rodb::Value root = db.root();
float x = root["ball"]["start_position"]["x"];
float y = root["ball"]["start_position"]["y"];
Код лежит тут, если интересно: https://github.com/detunized/rodb
+2
И почему же вы не показываете нам лаконичность YAML, а вместо этого yaml-парсером парсите json? Я люблю yaml, и как-то грустно видеть такое его использование. Вот, например, лаконичная запись вашего уровня на валидном YAML.
+6
Целиком поддерживаю, все эти скобки и непонятная вложенность в примере в статье на корню убивают «понятный человеку и легко редактируемый вид».
0
Согласен, критика вполне объективна. Дело в том, что мне не очень нравятся языки со значимыми отступами (но это просто мои тараканы). Что касается сравнения лаконичности YAML и JSON, тема вполне раскрыта на Wiki, каждый волен выбирать тот вариант, который ему больше нравится. Главное, что выбор этот есть.
0
Стоит добавить, что, в отличие от XML и JSON, YAML не поддерживается Android «из коробки», поэтому придётся подтягивать сторонние библиотеки в любом случае.
0
DispFixRot=FixedPortrait не всегда работает правильно на Анроиде. Лучше в main.cpp пропишите
s3eSurfaceSetInt(S3E_SURFACE_DEVICE_ORIENTATION_LOCK, S3E_SURFACE_PORTRAIT_FIXED);
s3eSurfaceSetInt(S3E_SURFACE_DEVICE_ORIENTATION_LOCK, S3E_SURFACE_PORTRAIT_FIXED);
+1
Sign up to leave a comment.
Articles
Change theme settings
Маленький отважный арканоид (часть 2 — YAML)