
Разработку RPG я начал в 2017 году, когда создал новый проект в Unity и начал работу над кодом системы. Однако мир игры был придуман намного раньше – в 2014 году, и с этого года я хотел бы начать.
В 2014 году о разработке игр я даже не мечтал – мне казалось, это слишком сложное дело, с которым у меня ничего не получится. Тогда я писал ориджинал фанфики, и в 2014 году мир игры родился как небольшая приключенческая история, которую я потом забросил и удалил.
Однако тогдашний интерес о том, как создаются компьютерные игры, привел меня к соответствующим запросам в Гугле, а затем к статье об игровых движках и 3D моделировании. Так я узнал о том, что игровой даижок – это не таинственная технология, а вполне обычная программа, где в зависимости от навыков разработчика можно делать разные игры. Следующий мой гугловский запрос «что такое движок» привел на статью о Unity, я установил версию Unity 4 и начал с интересом в ней копаться.
У меня осталось мало скринов с тех пор, да и смотрятся они не презентабельно, и все же из истории слов не выкинуть.
В то время Unity считался «только для мобильных игр», и все же в интернете я находил время от времени туториалы для игр на ПК, что очень радовало. Скачал разные ассеты с плагинами и начал разбираться – это мне помогло постепенно овладеть движком. В то время не было планов на будущее, я находил какую-то функцию движка и просто о ней гуглил. Тогда я точно знал, какие игры хотел бы делать, поэтому искал гайды для компьютерной разработки и, по возможности, для фэнтезийных RPG.

(Моё первое меню Unity, 2014 год)
Многие видеоуроки с тех пор я уже не найду, к тому же они давно не актуальны. Я тогда просто смотрел видео и повторял всё, что там происходило, в том числе переписывал код и пытался понять, как он работает. Многое было непонятно из-за незнания английского, но некоторые «паттерны» написания кода я усвоил. Насколько помню, эти гайды были устаревшими даже в то время, и мне приходилось искать на форумах информацию об ошибках, которые плодились в консоли, как грибы после дождя.
Я восхищался жанром MMORPG, особенно азиатскими играми, и решил начать самообучение в этом направлении. Было понятно, что создание MMORPG мне не светит, а для того чтобы создать обычную RPG, бесплатного контента из Asset Store было недостаточно. Через некоторое время самообучения стало ясно, что без знания программирования невозможно создать ту игру, которую я хотел. У меня были крупицы знаний Java, которые остались после работы над модом для Майнкрафта, но C# оказался более понятным и, скажем так, душевно поближе, поэтому начал искать уроки по C#. Так я нашел старые видеогайды и начал самообучение.
Через некоторое время мне удалось освоить азы Blender, и я смоделировал свою первую локацию – небольшую пещерку. Я разделил модель пещеры на куски, и у каждого куска была своя текстура 2048х2048 пикселей.

(Скриншот пещеры Blender, 2014 год)
Возился с этим очень долго, что не удивительно, ведь такой способ создания локации несколько извращённый. Результат меня устроил, я экспортировал все это в fbx, импортировал в движок и назначил каждому куску пещеры свой материал с текстурой. Также использовал персонажа из Standard Assets и мог свободно им бегать, смоделировал забор, камни, фонари, и разместил это всё внутри пещеры.

(Пещера в Unity, 2014 год)
Затем сделал мобов-слизней, которые спавнились при старте, и вроде как даже была простенькая система боя. Но мне это было мало, я хотел полноценную игру, а не одну локацию.
Через два года такого самообучения я создал первый вариант будущей игры. К тому времени у меня уже были какие-то базовые знания C# и Blender, плюс под рукой были хорошие туториалы, и в результате я смог сделать более-менее готовую локацию.

(Первый заброшенный проект, 2016 год)
В этом проекте народились зачатки будущей системы. Самым сложным для меня было создать ячеичный инвентарь – кажется, тогда еще не было UI и весь интерфейс был написан кодом с помощью GUILayout. Хоть на инвентарь я потратил четыре месяца, некоторые баги исправить все равно не мог. Плюс у GUILayout были проблемы с масштабированием на разном разрешении экрана, да и взаимодействие с интерфейсом было неудобным.
Также тяжело далась система навыков, которые можно было изучать и прокачивать. В следующих проектах пришлось удалить её: я просто не умел делать анимации, а такая система требует много уникальных анимаций. В результате остались только пассивные скиллы, которые изучались один раз и без прокачки.

(Первый заброшенный проект, 2016 год)
Качество меня не устраивало, к тому же на тот момент я узнавал много нового как о движке, так и о программировании, уже чаще заглядывал в справку Microsoft, а не на форумы, и в принципе некоторые вещи мог делать сам. Было решено удалить проект и создать новый. Так, в 2017 году я создал второй «вариант» будущей игры. Чем больше изучал C#, тем меньше мне нравился мой код, поэтому новый проект я создал с нуля и полностью переписал игровую систему.

(Второй заброшенный проект, 2017 год)
Графику решил делать в реализме, что меня тогда устраивало. В этой версии я долго возился со скриптом кастомизации, который подгружал модельки брони на персонажа. Не помню, сколько на это ушло времени – кажется, месяца два – и все же с помощью кучи пролистаных форумов удалось найти решение. Но это все равно была не та игра, в которую я хотел играть. Поэтому я бросил этот проект и создал третий вариант будущей игры. Было решено делать его полностью в hand-painted стиле, к тому же у меня оставалась рабочая система из предыдущего проекта. Выглядел он так:

(Третий заброшенный проект, 2017 год)
Система игры постепенно развивалась. Пришлось отказаться от инвентаря, написанного с GUILayout, и переделать его с нуля, используя UI. Также я добавил торговлю с NPC и квестовую систему. Через некоторое время была даже готова небольшая сюжетка с убийством босса в конце, но после долгих раздумий я пришел к выводу, что это все равно не та игра, в которую я хочу играть. В результате забросил её и создал последний проект, над которым работал с 2017 по 2020 год – Silver Cats.
Приобретая новые навыки, я понимал, что если серьезно этим займусь, то через некоторое время смогу довести работу до конца. Планировалось делать игру один год, и я не подозревал, что разработка затянется на три года. Я перенес систему игры в новый проект, немного переписав код, после чего начал делать начальную локацию.

(Начало работы над локацией «Долина шахтёров», Silver Cats, 2017 год)
Было решено делать окружение в hand-painted стиле, а персонажей в реализме. Болванки персонажей, созданные в Makehuman, были достаточно хорошего качества для инди игры, а делать персонажей с нуля было бы слишком долго.
С каждым месяцем игра разрасталась все больше. Я написал систему крафта, бартера, заточки, инкрустации, гравировки, а также переработал интерфейс. Когда количество AI на локации перевалило за 500, я на удивление заметил, что игра может виснуть не только от графики, но и от кода. Пришлось научиться использовать профайлер, где было видно, сколько памяти отнимает тот или иной процесс – мои скрипты загружали оперативку почти полностью. Пришлось долго думать, как оптимизировать AI, но это дало свои плоды. На старом ноутбуке, где я тестировал игру, раньше можно было играть только на минималках, но после оптимизации скриптов он стал тянуть её на средних. С того момента я учитывал это при написании кода.

(Долина шахтёров, Silver Cats, 2020 год)
Unity, Krita и Blender к тому времени уже имели все необходимые для работы функции. Моделировать, программировать и рисовать текстуры я умел, только с анимацией и партиклами были проблемы. Болванки персонажей делал в Makehuman, затем редактировал их в Blender, моделировал одежду и делал LOD меши для оптимизации. Asset Store здорово помог с анимациями и партиклами, которые я делать не умел: там нашёл почти все анимации, которые были нужны. Но некоторые анимации все равно пришлось делать самому.

(Гильдейский лес, Silver Cats, 2020 год)
В августе 2020 я закончил разработку игры, а 18.12.2020 она вышла в релиз.