Почему инди MMORPG — приговор

в 6:16, , рубрики: Gamedev, indie, mmorpg

Привет! Меня зовут TrashPony и я делаю свою MMORPG. Увидел статью, решил тоже поделиться.

Мы — команда из одного человека и нескольких личностей. У нас нет крупных (никаких) бюджетов, нет издателя, но есть идеи (они противоречат друг другу), которые мы хотим воплотить в жизнь.

Почему инди MMORPG — приговор - 1

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

Я не делаю «убийцу World of Warcraft» — я делаю «убийцу EVE Online».

Почему инди MMORPG — приговор - 2

Об игре

Veliri: Planet of Machines — это 2D MMORPG с открытым и живым миром, где игроки управляют машинками, выполняют задания, торгуют, воюют с пиратами и участвуют во фракционных войнах.

Особенности игры:

  • Живой мир: боты активно участвуют в торговле, войнах и формируют динамичный рынок.

  • Игровая экономика: почти полностью управляется игроками, с минимальным влиянием ботов (ну или полным влиянием ботов, т. к. игроков там нет).

  • Хардкорный геймплей: низкий TTK, full loot и главное - не ты решаешь будет сегодня PvP или нет.

  • Динамичные конфликты: постоянная война за территории и влияние между фракциями.

  • Нон-таргет система: с френдли фаером и ковровыми бомбардировками.

  • Открытый мир: исследование, торговля и борьба за выживание.

  • Можно грабить «караваны», можно быть «караваном» — и тебя будут грабить.

В демку уже можно поиграть, буду рад любым отзывам :-)

https://store.steampowered.com/app/3100340/Veliri_Planet_of_Machines_Demo/

Видео с геймплеем:

Стек технологий:

  • Backend: полностью написан на Go, база данных — PostgreSQL (использую свой сетевой движок: GitHub).

  • Frontend: JavaScript (Phaser3/Vue2), клиент в Steam обернут в Electron.js.

  • Сетевые протоколы: WebSocket/HTTP.

Почему такой странный стек? Изначально я просто учился программировать, но мой учебный проект вышел из-под контроля. Вот и получилось то, что получилось. Исходный код сетевого «движка» можно посмотреть на GitHub. Там есть даже минимальная документация и тонны говнокода для любителей. Код изрядно устарел, но основные принципы всё ещё используются.

Почему инди MMORPG — приговор - 3

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

На какой онлайн рассчитана игра?

Пока что у нас один админ на десяти аккаунтах, пара игроков, которые играют уже полгода (зачем они это делают, я не знаю!), и 1300 ботов, которые постоянно творят какую-то дичь в мире игры.

Сейчас игра работает на четырёх домашних машинах уровня AMD Ryzen 2700x и отдельном сервере для базы данных. Этого хватит ещё на 500–1000 человек: в среднем серверы загружены на 30%, а треть процессорного времени уходит на расчёт поиска пути для ботов.

Есть ограничение на количество машинок в одном секторе — примерно 128. Дальше начинаются лаги. Всё из-за алгоритма обзора в тумане войны, который имеет довольно высокую сложность. Но чтобы это произошло надо иметь довольно высокий онлайн.

Почему инди MMORPG — приговор - 4

О ботах

Я отказался от идеи «мобов», которые просто стоят на карте и ждут, пока их убьют. Каждый бот в игре — это полноценный «игрок» по всем системам, кроме сетевого трафика. У них есть несколько ролей: торговец, агент, пират, воин, шахтёр.

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

Система не такая уж сложная, но она неплохо справляется с задачей эмуляции «живого» мира.

Наши планы

Почему инди MMORPG — приговор - 5

Немного о разработке

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

Так как я работаю над игрой в свободное время, часто бывают большие перерывы в разработке. Иногда я пишу в студии и издателям с просьбой рассмотреть мою игру на любых условиях, но пока никто не ответил :-) (неправда, тебе сказали, что ты чорт)

Звуки, музыку, графику и даже тексты заказываю на фрилансе, но, конечно, всё это пока не очень выглядит🙂

Трудности разработки

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

  • Поиск пути. Сам по себе А* прост, но когда тебе надо не только найти путь, но и оптимизировать его под управление твоей машинки, которая не умеет поворачивать моментально, а ещё её заносит, начинаются трудности. Недавно я научил ботов ходить преимущественно по дорогам — очень радостно.

  • Обзор. В моей игре используется туман войны, и каждый бот или игрок имеет свою область обзора. Правильно обновлять объекты на фронте — это уже непростая задача, а оптимизация этого сделает тебе больно.

  • Это браузерная игра на JavaScript, и там огромная проблема с оптимизацией. Ну или всё дело в моих руках. х)

Интересные задачи были связаны с ИИ, созданием экосистемы мира, заданиями, диалогами, инвентарём, но 99% времени — это рутина. Унылая, скучная, бесконечная рутина.

Приговор

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

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

Почему инди MMORPG — приговор - 6

Автор: Trashpony

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js