Categories:

Паттерны и антипаттерны

По мотивам https://kvisaz.livejournal.com/949348.html

Тоже как-то задумывался, что было б неплохо, если существовали мануалы (подобно паттернам проектирования), описывающие типичные шаблоны корректной организации вариантных диалогов и квестов в РПГ-подобных играх. Как можно делать правильно, и, ещё, важнее, как делать неправильно (провоцируя лазейки для багов). В идеале - формализованная полуавтоматическая система проверки движка на распростанённые ошибки... Интересно, существует ли нечто подобное хотя бы в зародыше?

Конечно, подобное можно распространить и на другие структурные элементы, например, организацию главного игрового меню, меню сохранений...

Лирическое отступление: кажется, на подобные мысли натолкнула попытка полного прохождения второй Готики ("Ночь Ворона"). Однажды (лет десять назад) выдалось свободное время, решил полностью пройти с начала до конца на хардкоре, не теряя экспы, предвидев, что другой возможности может и не представиться. И верно, руки так и не дошли...
Готика.jpgКарта трав Хориниса.jpg
Был там, например, баг: при определённой последовательности выполнения квестов ключевая строка в диалоге не появлялась, не давая выйти в следующие главы. Этого избежать удалось. Зато подвели сохранения...

Вроде бы ясно, что изменений в уже записанном сейве быть не должно. Но сумрачный германский гений из каких-то непонятных соображений решил иначе.
Так, перезагружаясь после неудачной охоты, можно было видеть на земле стрелы, выпущенные во время прошлой попытки, что выглядело достаточно крипово 0_0
И в какой-то момент запоролись, отказываясь загружаться, как помню, сразу два последних сейва. Так что потеряно было много часов игры, и в итоге просто плюнул :(
Этому способствовало и достаточно спорное решение выделения конечного количества слотов для сохранения...

Обобщая идею:

вот, к сожалению, многие игры, даже от лидеров геймдева, выходят сырыми, недоделаннынми или бажными. Было бы круто, если б для основных игровых элементов существовал некоторый минимальный стандарт (что-то типа RFC), определяющий набор опций, доступных игроку и "хороший стиль" их реализации. Т.е. некоторый список требований, на основе которых хоть как-то можно формально вывести оценку качеству реализации игры. Понятно, что стандарты могут постепенно бесконечно уточняться и дополняться (и понятно, что в первую очередь могут быть выведены для мейнстримных жанров). И разработчикам, и тестерам, и потребителям бы помогло.

Ещё обобщая: конечно, применимо не только к играм, но и к утилитам различного характера, выполняющим определённый круг задач.