История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

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

Через пару дней я решил попробовать заняться чем-то интересным просто ради развлечения и начал с выбора жанра будущей игры. Изначально выбор пал на RTS (коим фанатом жанра я являюсь) с микроменеджментом и развитыми, продуманными производственными цепочками.

Однако во время новогодних праздников я предавался ностальгии, играя в старые игры, включая серию Gothic. Тогда у меня возникла мысль: "А что, если создать игру подобного жанра, но добавить в неё элементы онлайн-игры – иммерсивный мир, расписанный день у NPC, разнообразные диалоги?"

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

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

  • Вид от третьего лица;
  • Система диалогов;
  • Отсутствие бессмысленных заданий вроде «убей 100 волков, а затем еще »;
  • Смена дня и ночи, влияющая не только на освещение, но и на поведение NPC, которые будут вести себя естественно: спать, работать, менять свои диалоги в зависимости от развития сюжета;
  • Интерактивность игрового мира: взаимодействие с мобами, NPC и объектами. Можно разжигать кузницы, сидеть на лавках, зажигать и тушить факелы, готовить еду у костра;
  • Квесты, связанные с сюжетом;
  • Поддержка многопользовательского режима.
Первые запуски движка и изучение инструментария
Первые запуски движка и изучение инструментария

Начало разработки

Я никогда не боялся трудностей и прекрасно представлял какой длинный путь предстоит. Но равно с этим необходимо ставить себе реалистичные цели,, чтобы это не превратилось в очередного “убийцу WoW”, у которого будет бесконечная стадия разработки и затем проект так и не увидит свет.

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

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

Наступила рабочая пора, праздники закончились, но азарта стало только больше. Рабочий день (основной работы + времени на разработку игры) было принято решение увеличить до 12-14 часов в сутки на протяжении первых 3х лет.

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

История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

Мультиплеер.

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

Спустя 6 месяцев изучения C++, php, sql, самого движка UE с его неотъемлемой особенностью в виде Blueprints и получения боли от потраченных нервов наконец-то были готовы:

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

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

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

Полностью рабочая авторизация из VK Play, Steam и объединение игроков из разных площадок в одну с помощью сервис EOS (Epic Games). Да, необходима небольшая регистрация на сайте эпиков, но взамен вы получаете стабильный автологин без необходимости каждый раз вводить данные и игру с друзьями стима и вк одновременно.

Продолжение разработки

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

Игру решил назвать “The Story Page”. Я не знаю почему именно так, путем перебора многих названий мне показалось данное наиболее созвучным и легко сокращаемым до “TSP”.

Что могу сказать. Это был сложный момент. Поскольку я был единственным членом команды разработчиков - пришлось делать самому буквально всё. Игру, страницу, группу, тест, изучать маркетинг и прочее. Собственно, я применил всё, что смог с трудом узнать, вместе N-ым количеством денег.

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

Итак, спустя ещё 3 года реализовано следующее:

Оптимизация.

Да, это самый первый пункт и самый важный как по мне. У меня изначально было видение выжать максимум, но из слабого железа. В основном я провожу активные тесты на Rysen 5500, GeForce GTX 1650, 16 gb ОЗУ и пытаюсь держаться отметки 40-60 фпс на средне-высокой графике. Впоследствии соберу статистику игроков, пожелания и от сюда буду исходить стоит ли наваливать крутого графона или всё же оставить как есть с небольшими косметическими изменениями, но чтобы могли играть даже на примитивных на сегодняшний день как у меня системах.

Атмосфера.

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

История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

Редактор персонажей

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

НПС и мобы с социальным поведением

Каждый НПС имеет своё имя, он для чего-то служит: будь то торговец, квестодатель, учитель и т.д. У них имеется социум: к примеру проходящий мимо наёмник не проявится “сочувствия” к обороняющемуся жителю деревни, который отбивается от случайного игрока. В то же время поможет другим наемникам в данной борьбе. Ровно как и жители деревни встанут на защиту своего соседа. Ну или разбегутся, т.к. каждый социальный кластер может делиться еще и на их поведение от трусливого и беззащитного до агрессивного по отношению к другому класстеру. Более простой пример - это лесной олень, не видящий опасности в зайце, но убежит от волка едва его увидев.

Распорядок дня.

Раз уж я отталкиваюсь от упомянутой выше игры, то без этого разработка была бы преступлением :) В игре присутствует динамическая смена дня и ночи, смена погоды. Поверхность земли, объектов, одежды покрывается снегом или мокнет от дождя. Ночью многие НПС идут спать или занимаются иными делами отличными от дневных. У каждого из них имеется своё место пребывания.

Открытый мир

Так часто слышу это словосочетание в преимуществах проектов. Так часто он остается пустым и скучным… Здесь я стараюсь соблюсти баланс и не упираться в гигантизм масштабов, а использовать “вертикальность” мира. Сделать его более интересным для исследования, избежав при этом более 1 минуты беготни в одну точку по пустому полю. Весь мир и каждое дерево создается вручную без использования генераторов, нейросетей и вспомогательных программ. Да - это долго, но зато каждый метр становится обдуманным, хоть и не без ошибок, которые устраняются по мере их обнаружения.

Атрибуты, статы защиты\атаки

Раз уж заикнулся про жанр RPG, то конечно же каждый элемент одежды, брони, оружия должен содержать в себе защиту от урона (а это 12 типов прямого урона и 2 естественных). Нет универсальной брони и одежды, чтобы защитить от всего. Везде действует принцип: “камень-ножницы-бумага”. Тяжелая броня хорошо защищает от стрел и многих физических типов урона, но много весит и хуже воспринимает защиту от 2 естественных - это от холода и жары. В латах действительно тяжело передвигаться как по жаркой пустыне, так и во время морозной вьюги, когда броня начинает замерзать и покрываться льдом, приводя персонажу к постепенному замерзанию.

На данный момент помимо холода и жары реализованы так же такие типы урона, как: Режущий, Колющий, Дробящий, Рубящий, а так же магия данных типов: Огонь, Вода, Ветер, Земля, Свет, Тьма, Чистая магия, Магия крови.

Каждый тип может спровоцировать определенный эффект от воспламенения, до кратковременной потери видимости.

История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

Одежды персонажей учитывающая пол персонажа.

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

История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

Инвентарь и торговля

Возможность торговли с НПС и другими игроками по всем канонам мультиплеерных игр.

История о том, как я решил в соло сделать свою MMO (спойлер: уже на стадии ЗБТ)

Диалоговая система

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

Боевая система

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

Магия

Разнообразие магии. От классического Fireball, свойственного многим фэнтези играм, до метеоритных дождей, защитных куполов и сферы, замедляющей время внутри нее (да-да, аналог Faceless Void но в жанре mmorpg с открытым миром для тех кто в теме 😂).

Кулинария и крафт

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

Создание гильдий

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

Что планируется?

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

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

Итоги

Если подытожить вышесказанное, то делать свою игру в одиночку, очень тяжело и не так весело как казалось на первый взгляд, но очень интересно. Ставьте себе разумные рамки сложности выполнения и временных затрат. Если собираетесь делать крупный проект в одиночку, то трижды подумайте хватит ли вам сил, денег и терпения. И, конечно же, если начали, то доводите дело до конца! Пробуйте запускать ваш прототип для тестов со своими друзьями, но не прислушивайтесь к хейтерам :) Со стороны лежа на диване всегда “виднее” как должно быть.

На этом все! Спасибо, что прочитали мою историю. Буду рад, если вы поддержите The Story Page добавив её в список желаемого, лайком в новостях, да или просто добрым словом. С удовольствием отвечу на вопросы, если они у вас возникли. Всем добра!

Видео о том, как всё происходило:

Rutube | Youtube | VK Video кому как удобнее.

P.S.: Пользуясь случаем, если вы дошли до этого места, я был бы благодарен вам за добавление моей игры в списки желаемого и подписку в группы ВК и ТГ 🙂

Телеграмм канал: https://t.me/the_story_page

Страница VKPlay: https://vkplay.ru/play/game/tsp/

P.P.S.: Это мой первый пост на DTF. Если вдруг в нем что-то не так - пожалуйста, скажите, чтобы я исправился).

16
2
11
26 комментариев