Silent Throne "Безмолвный трон"
Давненько не было вестей из полей разработки моего пиксельного Action-RPG слэшера Silent Throne. Буду честен: разработка затягивается. Последние недели я провёл в самом настоящем программистском аду, перерабатывая под корень систему квестов и диалогов.
Делюсь болью и тем, к чему в итоге пришёл.
Как было (и почему это сдохло)
Изначально диалоги я писал на коленке, используя громоздкие массивы и конструкторы. Всё это завязывалось на динамические инжекторы, которые пытались подменять текст кнопок прямо на лету (например, менять кнопку «У тебя есть работа?» на «Я убил Некроманта!», когда триггер квеста переключался в памяти).
Итог — классический капкан синтаксиса и Scope-баги (области видимости) в GameMaker. Стоило добавить NPC одну новую реплику, как вся игра ломалась как карточный домик: индексы съезжали, квесты зависали намертво в состоянии 0/1, а прямоугольные кнопки интерфейса сжимали длинный текст в нечитаемую кашу.
В общем, я понял, что динамические костыли — это тупик, выпил кофейку и решил переписать всё с чистого листа.
Я оставил старую, уже отлаженную квестовую систему в покое, но полностью перестроил архитектуру общения с NPC. (НО И СИСТЕМУ КВЕСТОВ ПОЗЖЕ ТОЖЕ ПЕРЕДЕЛАЮ).
Теперь система диалогов построена на статичных switch-case блоках и уникальных текстовых ID-ключах вместо цифр.
И в итоге я придумал название игры! Silent Throne "Безмолвный трон"



Рекламный ролик и реальный геймплей.