Dusk World – Дневники разработки, часть 18:
Пять лет разработки

Ну что, не ждали новой части дневников по разработке Dusk World? Думали, забил Diablo на свою игру? Нет, ни разу не забил, хотя жизнь в последние годы и добавила геморроя.

Но давайте обо всем по порядку. Восстановим хронологию событий с момента последнего дня разработки — августа 2019 года.

 

12 августа 2019 — Выпуск предыдущего дня дневников, в котором объявляю о предварительном релизе второй демо-версии. Это не полноценный релиз демо-версии, а просто публикация текущих наработок, которые любой желающий может потрогать своими руками. И обо всех обновлениях писал там же.

5 октября 2019 — В демо-версию добавлена прокачка боевых способностей и PvP

6 ноября 2019 Добавлен личный сундук и бонусы от полных наборов определенного типа брони

11 мая 2020 Добавлена механика локаций (модуль локаций переписан полностью с нуля, на что ушло 5 месяцев) — визуально это та же одна локация, что и в первой демо-версии, но под капотом все совершенно по другому — качественней и лучше.

31 мая 2020 Добавлены уведомления и статусы постов

Июнь 2020 — К болям в пояснице, которые меня беспокоят с 2014 года, добавляются боли в шее. И надо отметить, проблем они доставляют намного больше, чем боли в пояснице, с которыми, в той или иной степени, сталкиваются многие.

14 июня 2020 Добавлена механика дропа и два новых типа эпизодов: Алхимическая лаборатория, где можно найти несколько зелий, и Магическая комната, где можно найти несколько книг заклинаний.

Июль 2020 — Боли в шее не проходят уже месяц, и начинаю ходить по врачам. Т.е. вместо того, чтобы после работы сесть за разработку Dusk World, приходится идти к врачу, и так по несколько раз в неделю. Разумеется, все это тормозит разработку.

6 июля 2020 Добавлена механика отключения возможности написания постов при низкой карме . Проект делаю таким, чтобы он был минимально завязан на ручное модерирование (хотя и оно будет).

13 июля 2020 — На двенадцатилетие сайта делаю полноценный релиз второй демо версии. Для тех, кто следил за всеми изменениями, ничего особо нового не было, только удаление всех старых персонажей и возможность еще раз побороться за первые места в рейтингах.

14 июля 2020 — Из забавного: первый пользовательский гайд о том, как положить в сундук предметов больше допустимого

29 июля 2020 Добавлены турниры; пока игроков немного — лишь самые маленькие на 8 участников. В будущем будут турниры на 16/32/64 участника с более ценными призами.

2 сентября 2020 Добавлена механика торговцев и первый NPC-алхимик. Это последнее значительное обновление демо-версии. Боли в шее так и не проходят и начинают отравлять жизнь все больше.

17 ноября 2020 — Пишу пост дела житейские в которых рассказываю, что из-за проблем со здоровьем возможности заниматься Dusk World уменьшились.

Декабрь 2020 — Черный месяц, когда я пошел в очередную клинику, занимающуюся исключительно проблемами с позвоночником (кажется, что все подобные клиники — исключительный лохотрон и развод на деньги), где я плачу 80 тысяч, хожу в течении 4 недель на процедуры, т.е. каждый будний день в 8:00 выехал на работу, а домой вернулся в 23:00, т.е. свободного времени в принципе 0, и по итогу всего этого мне стало только значительно хуже — и боли стали острее, и грыжа в шее стала больше.

В этот момент меня окончательно выбивает из процесса разработки Dusk World, и сил хватает только на работу, хождение по врачам и сон.

2 января 2021 Обновлена генерация монстров. В текущей одной локации ничего принципиально не изменилось, это изменение на будущее — когда понадобится заполнять монстрами другие локации, и когда один и тот же монстр может быть разного уровня, соответственно, нужно, чтобы характеристики прогрессировали с ростом уровня.

20 февраля 2021 — Blizzard анонсируют Diablo 2 Resurrected, и становится понятно, что надо будет обновить раздел Diablo 2 на сайте. Учитывая, что релиз анонсировали на сентябрь этого же года — заниматься обновлением надо прямо сейчас, за что и берусь. К счастью, с обновлением помогают JustNeedCoffee и Gattling.

8 марта 2021 — Параллельно с обновлением раздела Diablo 2 начинаю активно писать новый модуль боевки. Старая боевка писалась еще в 2017 году, на костылях, и добавлять в неё новые механики стало очень сложно. Плюс в ней есть плавающие хитрые баги, которые сложно отловить: например, ситуации, когда урон от атаки не наносится в принципе. Случается такой баг раз в месяц, и сколько не пробовал — даже воспроизвести его не удавалось, не говоря уже о том, чтобы исправить.

В таких ситуациях проще написать с нуля, с хорошим ООП, с юнит-тестами, чем мучить дохлую старую лошадь.

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

27 мая 2021 Второй пост дела житейские, в котором пишу, что наконец-то нашел врача, который помог найти причину болей, и что процесс выздоровления наконец-то пошел. За год хождения по врачам было потрачено 650 тысяч, и если бы не врачи — уже на тот момент можно было увольняться, и 8-10 месяцев спокойно сидеть и целыми днями заниматься игрой.

28 октября 2021 Третий пост дела житейские, в котором рассказываю о том, что, несмотря на улучшившееся здоровье, время уходит на обновление раздела Diablo 2, написание новой боевки, и на подготовку к будущим собеседованиям. А на развитие демо-версии Dusk World времени не остается.

14 января 2022 — Глобальное обновление раздела Diablo 2 на сайте. По сути весь 21 год ушел именно на это.

 

«Спецоперация» и умерший рынок труда

Казалось бы, худшее позади, «но расслабляться погоди, ведь много ждет нас впереди» (c)

Вся разработка Dusk World шла в свободное от работы время — после работы, на выходных, на праздниках, в отпусках. Получается этакая жизнь 24/7 за компьютером и кодом. Во-первых, это изматывает, во-вторых, даже в таком режиме игра разрабатывается медленно. Решение, которое напрашивалось — это поиск новой работы с большей зарплатой и откладывание 50% зарплаты в заначку, а потом, после года такого накопления — можно будет уволиться и год жить на накопленные деньги. И именно такие планы у меня были на весну 22 года — пойти по собеседованиям и найти работу получше. Тем более, что весь 21 год из каждого утюга рассказывали, какая острая нехватка программистов на рынке труда, и как у них необоснованно растут зарплаты (и то, и другое – полная чушь, не ведитесь и не несите свои деньги в айти-курсы).

И вот в феврале 22 года все надежды на поиск лучшей работы накрылись. Вакансий стало значительно меньше, а кандидатов, наоборот, больше, т.к. многие западные компании закрывали свои филиалы в России. Стало понятно, что разработкой придется заниматься так же, как и раньше — по вечерам, на выходных.

Все это, вкупе с проблемами со здоровьем, которые пришлось пережить, демотивировало вообще чем-либо заниматься, и захотелось пожить как обычный человек, когда ты только работаешь, а в свое свободное от работы время отдыхаешь.

Вспомнил про игры. Побегал по просторам старинного Morrowind (давно строю планы сделать о нем раздел на сайте), божественного Скайрима (тешу планы как-нибудь перезапустить хроники по скайриму), вспомнил старушку Lineage 2, которая, как оказалась, несмотря на свой почти 20-летний возраст, собирает онлайн на фришках больше, чем было в нулевые годы на официальных серверах.

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

Lineage 2 — это какой-то феномен игровой индустрии, столько лет прошло, а так и не встретил никакой другой MMORPG, которая бы настолько затягивала, и где можно было бы увидеть настолько массовые сражения — замес 300 на 300 это абсолютно рядовая ситуация.

В общем, в 22 году, пока в России царили хаос и паника, я, наоборот, хорошо отдохнул и отвлекся от жизненных проблем.

Конечно, продолжал постепенно пилить новый модуль боевки, постепенно заниматься самой демо-версией, но не в таком активном темпе, как это было в период 2016-2020 годов.

 

Изменения в новой боевой системе

Я уже несколько раз упоминал о новой боевой системе. Пора рассказать о ней подробней. Визуально и концептуально она полностью как старая, и на первый взгляд может показаться, что изменений нет никаких. Но «под капотом» разница огромная, как между трактором и ламборджини.

Работа способностей полностью переделана

Если раньше были 3 способности, жестко завязанные на три характеристики: концентрацию, хитрость и ярость, то теперь способности могут активироваться при любых параметрах.

Например, если раньше пассивная способность людей «воля к победе» работала как «костыль», и просто с 20% шансом при смерти восстанавливала 50% здоровья (что визуально могло сбить нового игрока), то теперь это именно способность, и визуально персонаж вначале умирает, потом активируется способность и применяется – происходит анимация воскрешения. То же самое и с расовой способностью орков, увеличивающей урон в 2 раза при здоровье меньше 30%

Пока есть только 2 способности, завязанные не на концентрацию, хитрость и ярость, но уже нет никаких проблем добавлять новые, с самыми причудливыми условиями, вроде «здоровье меньше 50%, мана больше 50%, концентрация и ярость 100%»

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

И есть еще глобальное изменение по способностям, которое в процессе реализации – это отвязка от жесткой привязки на 3 способности завязанных на класс персонажа.

Персонаж будет просто иметь какой-то набор способностей, которые добавляются от:

  • расы
  • класса
  • предметов (да, будет механика, когда какие-то уникальные предметы будут добавлять боевые способности)

При этом способностей от класса может быть больше, чем 3, и будет возможность включать/отключать способности.

Добавлена статистика по бою

Она будет особенно интересна в боях «группа на группу» – можно будет посмотреть, кто больше урона нанес, кто больше урона принял, кто на сколько вылечил союзников и т.д.

Добавлена механика призыва новых существ на поле боя

Один класс (пока размышляю, какой) будет иметь уникальную способность призыва существ на поле боя, а также будут боссы, которые будут призывать себе слуг.

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

Добавлена механика воскрешения юнитов

Эту способность получат некоторые классы поддержки. Плюс аналогичную способность можно будет получить с редкого уникального посоха – чтобы классы, ориентированные на поддержку, но не имеющие воскрешения от класса смогли добавить себе такую способность.

Улучшена механика эффектов

Не буду расписывать технические особенности, просто скажу, что теперь можно создавать какие угодно эффекты (как ранее была расширена система эффектов от заклинаний в локациях). Хоть эффекты, которые на каждом ходу будут добавлять другие эффекты, хоть призывать каждый ход юнита – что угодно. Это не значит, что в новой боевке появится куча новых интересных эффектов, это значит, что заложен фундамент, чтобы такие способности появлялись.

Например, размышляю над новой способностью для класса берсерк:

  • Способность активируется при здоровье > 70% (т.е. активируется со старта боя)
  • Каждый ход юнит теряет здоровье
  • Каждый ход увеличивается урон и скорость атаки

Получается этакий берсерк (кэп), который сам себе наносит повреждения, но с каждым ходом становится все более опасным.

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

И таких интересных механик можно будет придумать и добавить массу.

Ну и, конечно же, классов у рас будет больше, чем сейчас по 5 штук на расу.

Добавлены особые эффекты от критических ударов с оружия

Как вы помните, каждый тип оружия имеет свои особенности. При этом у некоторых типов эта особенность проявляется при критическом ударе:

  • дробящее оружие может оглушить (одноручное – на 1 ход, двуручное – на 2 хода, тяжелое двуручное – на 3 хода)
  • кинжалы накладывают кровотечение на 3 хода
  • жезлы снимают один положительный эффект с цели (в отличие от двух предыдущих – эта механика еще в разработке)

Добавлена механика удара сразу по всем вражеским юнитам

Звучит просто, но на деле добавление такой механики заставило изрядно потрудиться. В старой боевке, написанной на костылях без юнит-тестов, её было бы практически невозможно добавить.

Что это дает на практике – возможность создавать боссов, которые будут атаковать всю группу игроков, возможность добавлять способности, которые лечат/бафают/дебафают сразу всю группу.

В будущем планирую добавить способности, которые будут применяться по всему ближнему или дальнему ряду.

Добавлена мультиязычность

Изменение на долгую перспективу, чтобы, когда проект будет запускаться на зарубежные аудитории, добавление нового языка делалось просто добавлением одного файла.

Что еще в процессе разработки:

  • Механика клонирования себя с % от исходных характеристик. Можно будет добавить уникальный класс «Иллюзионист», ультимативная способность которого будет создавать иллюзии, имеющие 15-25% характеристики хозяина. И уникального босса с аналогичной способностью.
  • Механика рефлекта урона
  • Механика снятия положительных/отрицательных эффектов
  • Есть еще идея интересной механики, когда класс суккуб сможет переманивать в свою команду вражеского юнита и заставлять несколько ходов воевать на своей стороне. Но это уже изыски, посмотрим, на сколько будет время
  • Также есть еще интересная (но сложная) механика: расширить количество сражающихся команд с 2 до любого количества. Это позволит устраивать, например, групповые бои в формате «каждый сам за себя».

Также есть вещи, которые существуют в старой боевой системе, но пока не реализованы в новой:

  • Все 150 способностей классов
  • Расовая способность эльфов уклонения от любой атаки/заклинания с шансом 20% (никак не зависящая от меткости атакующего)
  • Добавление способностям требование по типу оружия
  • Рандомизатор урона
  • Увеличение урона в долгих боях
  • Механика активации способностей через хитрость
 

Планы на будущее

Разработка идет уже 6 год, а конца-края не видно. Очевидно, что-то с этим надо делать, и очевидно, что – убирать часть запланированного функционала, оставляя его на обновление уже после релиза.

Еще мотивирует к скорейшему релизу то, что даже в текущий супер-урезанный функционал демо-версии несколько человек задротили месяцами. Tieru так и вовсе сделал что-то невозможное и взял максимально возможный уровень. Напрашивается вывод – просто улучши то, что уже есть, просто добавь локаций, просто добавь игроков (для этого даже в рекламу вкладываться не нужно – просто перенести функционал на diablo1.ru) – и будет уже сильно веселее.

К тому же я сам давно уже хочу публиковать новости через простой редактор на сайте, без необходимости делать физические странички с html-разметкой и загружать их на сервер – и геморройно, и долго, и подход такой устарел больше, чем говно мамонтов.

И все, кто помогает с наполнением контента, также просят добавить уже какой-то редактор на сайт.

В общем, надо безжалостно резать запланированный функционал и запускать то, что есть, но с доработками.

Итак, от чего принято решение отказаться:

От открытого мира

C массой разнообразных зон и локаций, которые, мало того, запланированы в различных климатических зонах – леса, степи, пустыни, тундры, тропики, скалы и т.д.

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

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

Но была запланирована еще одна небольшая сюжетная линия, в которой игрок выяснял, как же так произошло, что в целом процветающий мир оказался на грани уничтожения.

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

От замков, осад, контроля над территорией и королей рас

Если отказаться от открытого большого мира на старте, то автоматически нужно убрать замки, их осады, механика контроля над территорией и механика выбора королей рас, которые могут управлять осадами и замками.

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

От механик темного и светлого эфира

Одна из ключевых и уникальных механик проекта, которая позволяет конвертировать карму от постов и комментариев в полезные игровые предметы, также будет отложена на будущее, чтобы не тормозить релиз.

Но будет максимально быстро добавлена после, т.к. это все же интересная и ключевая механика.

От турниров

Да, казалось бы, уже работающие турниры тоже нужно будет отложить, потому что сбалансированное пвп также требует доработок.

От крафта предметов и добычи ресурсов

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

Может быть, дроп ресурсов добавлю, чтобы можно было заранее начинать их копить на будущий крафт.

От более сложных версий подземелий

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

От навороченной системы спутников

Изначально планировалась очень навороченная система NPC и спутников, когда, например, вы можете помогать и улучшать отношения с обычным торговцем в городе, потом, при определенном уровне прокачанности отношений он становится вам доступен как спутник (на ограниченное количество локаций, потом ему нужно будет «отдохнуть»), и потом его еще можно прокачивать – усиливать его характеристики.

Все это пока откладывается. Останутся только случайные спутники, которые могут присоединиться в локации.

 

Что же будет? Кажется, что удаляется просто все

В том-то и дело, что даже то, что есть сейчас в демо-версии требует значительных доработок. И разрываться на добавление новых механик и доработку старых можно бесконечно.

Пройдемся также по пунктам:

Регистрация

Казалось бы, ну просто регистрация, уже же сделана и работает. Но это только на первый взгляд. Нужно дорабатывать:

  • Капчу, чтобы ограничить регистрацию новых пользователей простым скриптом
  • Подтверждение регистрации через email. Самая простая и элементарная защита от регистрации твинков
  • Защита аккаунтов от перебора паролей
  • Восстановление пароля
  • Система для выявления твинков и борьбы с ними

Как видите – даже элементарный и уже работающий функционал требует доработок. Идем дальше.

Посты и комментарии

Их также необходимо доработать:

  • Редактирование постов
  • Редактирование комментариев
  • Возможность добавления картинок в комментариях
  • Возможность анонимных комментариев (все текущие комментарии на сайте будут перенесены на новый движок как анонимные)
  • Систему тегов: возможность добавление постам тегов, поиск постов по тегам
  • (может быть) Черновик – когда можно написать пост, сохранить его как черновик и позже вернуться к дописыванию. Если не на релизе, то потом так и так нужно будет делать такую механику

Прочий «сайтовый» функционал

Еще есть то, чего в демо-версии нет вообще, но нужно будет сделать уже в релизной части:

  • Сообщества
  • Базу по играм (которая будет завязана на механику сообществ)

Игровая часть

Здесь еще куча работы:

  • Механика диалогов с NPC
  • Механика заданий
  • Локация города, его торговцы и сюжетные NPC
  • Одно глубокое подземелье будет состоять из 3-4 визуально разных подземелий и суммарно состоять из 8-10 локаций. Сделать такое количество подземелий в сотню раз проще, чем сделать целый открытый мир, но все равно это немалый объем работы
  • Доработать механику генерации предметов
  • Добавить больше различных заклинаний
  • Добавить больше монстров и боссов
  • Добавить несколько заданий – одно основное и несколько побочных
  • Доделать и интегрировать новую боевую систему

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

Но и это не все (вы еще не устали читать, да?)

После релиза будет большой объем работы, который никак не связан ни с добавлением нового функционала, ни с доработкой старого, а будет связан с необходимостью переносить старые страницы на «новый движок», т.е. в страницы, которые можно будет лайкать, нормально комментировать, которые смогут отображаться в сообществах. А на старых статичных страницах добавлять редиректы на новые страницы.

А так как старых страниц тысячи – это очень немаленький объем работы.

При этом можно было бы заморочиться и написать сложный парсер, который все старые страницы разом переделает в новые, но все такие глобальные переделки сайтов чреваты тем, что поисковые системы могут «глюкнуть» и подумать, что по старому домену теперь расположен новый сайт (пусть и с похожим содержимым), и, соответственно, все его позиции в запросах нужно рассчитать по-новой. А «по-новой» – это значит, что текущие позиции в топе по запросам просто исчезнут.

В общем, чтобы посещаемость с поисковых систем внезапно не исчезла – нужно делать это постепенно, в полуручном режиме.

 

Но…

Реалистичные планы на перспективу построены, мотивации делать (доделать) Dusk World вагон, но вы же не думали, что не будет никакого подвоха?

Не бывает так, чтобы без подвоха...

А подвох заключается в том, что через 3 месяца релиз Diablo 4, и в первую очередь мне нужно сделать раздел по этой игре на сайте. И все ближайшие 3 месяца уйдут на это. И в начале лета, если все сложится, смогу активно вернуться к разработке Dusk World.

 

Разбавим скепсис

- Ну вот опять! Еще десять лет ждать будем! А потом и вовсе забьет! (кто-то из читателей)

В заключение давайте разбавлю скепсис, что разработка может затянуться еще очень надолго или вообще быть заброшена.

И дело здесь даже не в какой-то суперидейности или супермотивации (хотя и это тоже есть) и даже не в том, что мне проект по-прежнему нравится, и нравится им заниматься.

А в том, что просто нет другого варианта:

Например, я хочу получать больше денег. Банальное такое желание. Но на хорошие и оплачиваемые позиции большая конкуренция. Чтобы выделиться среди кандидатов, хочу сделать свой блог о программировании. И изучая что-то новое из программирования, не просто запоминать это в голове, а сразу оформлять в виде новых статей в этом блоге. А что нужно для создания блога? Регистрация, посты, комментарии – в общем, базовый функционал. Т.е. мне так и так нужен проект, который я смогу использовать как фундамент для создания любых других сайтов.

К тому же, что diablo1.ru, что Dusk World, что блог о программировании – это не единственные сайты, которыми хочется заниматься. Есть идеи и других проектов, и везде мне понадобится базовый функционал.

Поэтому, как ни крути, даже если я вдруг (вдруг!) потеряю интерес к Dusk World – мне так и так нужно будет доделывать эту регистрацию, посты, комментарии, теги, сообщества.

А сделав это, останется доделать еще немного (немного здесь должно быть в жирных кавычках) – и вот уже урезанная, но релизная версия Dusk World.

Так что все будет.

Опубликовано: 9.03.23 – 18:30

Автор: Diablo




Комментарии

Mexz 2024-07-09 12:32:18
Шикарно ждём 2 новых класса: Механилоид(Робото-подобный) и Зверь(Что то на подобии зергов) или погодь. .а эти двое вообще в тематику хотя можно объяснить лором откуда они.

Ответить
? 0 ?
JustNeedCoffee 2023-03-08 18:56:56
обязательно на день рождения подарю томик Розенталя!

Ответить
? +6 ?
Страницы:

Ваше имя
Комментарий



Реклама:

Наша командаРазработка глобального обновления

При поддержке Сил Преисподней
2008-2024