Новости игры
2019-05-30 02:43:57 Admin
Новая система квестов ▲ в избранное
Просмотров 7582 Комментариев 1 Нравится 0 Не нравится 0
2019-05-30 02:43:57 Admin
Главным образом, изменился подход к созданию диалогов. Чтобы понять разницу, опишу, как было и как стало.
Как было: каждый диалог (кроме некоторых одинаковых, вроде коров в первом хазарском сюжетном квесте) писался в виде отдельной функции. Бесспорный плюс такого подхода: максимальное быстродействие и возможность почти неограниченного функционала, т.к. необходимый функционал всегда легко можно было дописать. Минус такого подхода - необходимость каждый раз составлять однотипные конструкции для каждого нового диалога, что отнимает немало времени, даже если использовать простое копирование с последующим редактированием.
К тому же, совсем старые диалоги, к тому же, были написаны строго под один квест (либо последовательность квестов), т.е. одного и того же персонажа нельзя было использовать одновременно в двух квестах. Этот подход был исправлен в обновлении 2.7.3, когда стало возможным в некоторых случаях использовать персонажа в нескольких квестах. Однако, новая система оказалась ещё более громоздкой, чем старая, т.к. приходилось учитывать эту самую вариативность.
И вот, наконец, я пришёл к тому, что следовало сделать ещё лет 8 назад. Новые диалоги полностью выводятся одной единственной функцией, которая отбирает необходимые реплики и ответы из заранее заполненных таблиц. Таким образом, при написании нового квеста больше нет необходимости писать новые функции, но необходимо только правильно заполнить нужные таблицы. Плюс такого подхода - это намного быстрее. Минус - такой код работает медленнее, т.к. теперь все условия записаны в виде условных команд, которые компьютеру ещё предстоит интерпретировать в код, который он сможет выполнить. Впрочем, это всё равно работает очень быстро. Для пользователя разница в несколько наносекунд ничего не решит.
Дополнительно, я использовал те же условия для отображения персонажей. Теперь, если некий персонаж по квесту должен исчезнуть (умер, ушёл) - он больше не будет отображаться (это относится только к тем персонажам, что ещё будут внедрены в игру).
Пока что набор условий и действий невелик и не охватывает весь необходимый функционал, но он легко расширяется по мере необходимости, что и будет делаться в процессе написания следующих квестов.
Тем не менее, не стоит думать, что теперь всё просто. По-прежнему, необходимо вручную рисовать карты, заполнять новых монстров, новые объекты на карты, а, самое сложное, форматировать условия квестов и не путаться в них.
Однако, если создание квеста не требует введения нового функционала, а использует только монстров, карты, персонажей и вещи, уже имеющиеся в игре, то создание такого квеста займёт совсем немного времени, главным образом потраченного на набор текста диалогов и описания квеста.
В разделОбновить
=© Created by Easy_Alek, 2017=
07:42:58 0.00615