The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

Вступление

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

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

Кстати о сайтах вот они (чуть позже о том почему их два):

https://thesectorgame.com

https://thesector.page.gd

Начну с поддержки инди игр.

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

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

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

Что же входит в так называемую "поддержку"

1) Вы можете зарегистрировать ИП - как вам такое? Вот можете, правда круто?

2) Вы можете платить налоги! А еще можете платить их меньше, если вы акредитованная IT компания...

3) Вы можете стать акредитованной IT компанией, если платите работникам среднюю ЗП по РФ

4) Вы можете платить страховые взносы, а еще можете платить их меньше, если вы акредитованная IT компания...

5) Вы можете не платить НДС (если вы добавитесь в реестр отечественного ПО)

N+1) Вы можете проходить экспертизы, получать вычеты, льготы и тд. (если вы выполните условия, которые уже подразумивают, что вы миллионер)

А вы что денег хотели как стартап? Нет, вы можете их дать нам, чуть меньше, но дайте!

Абсолютно каждый пункт "поддержки" направлен на то, что если у вас уже всё хорошо - можете поделиться деньгами, но чуть в меньшем объёме. Есть конечно, еще и гранты, но бороться за грант номиналом 10.000-25.000 рублей, это какое-то самоунижение/мазахизм на мой взгляд.

Напомнило платформу VK с их включением монетизации от 250к подписчиков.

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

Едем дальше, инфраструктура для сайта.

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

Выше пример OVH (Франция) и Selectel (Россия)

Я конечно всё понимаю, но вы сейчас серьёзно? Тот же самый конфиг "у нас" стоит в 11 (ОДИННАДЦАТЬ РАЗ) ДОРОЖЕ, сука! И это при том что у OVH имеется их vacuum anti-ddos система. Напомню я соло-разработчик, а не шейх из ОАЭ.

PS Если будут умники, что скажут мол есть дешевле Selectel, есть, но тут еще и вопрос безопасности, утечках, доверии, аптайме и серьёзности хостинга. Брать рандомного хостера - это игра в рулетку, до начала какой либо из проблем (ddos, нагрузка, взломы, атаки, кравлинги и тд.) Всё это я уже проходил, когда хостил сайты для ла2 и в тактику "Переждите пока закончится ddos." играть не готов.

Кстати OVH не смотря на санкции, убрали с меня VAT как с НЕ резидента EU, за что им спасибо.

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

Тут у меня еще немного покипело т.к. весь ASN OVH, весь ASN Cloudflare, весь ASN Anycast полностью в банане регулятором.

А сделать reverse-proxy зеркало, через какой нибудь хостинг-шлюз через NGINX теперь нельзя! Пришлось взять, еще один, но уже бесплатный хостинг для зеркала, доступного без танцев с бубнами для РФ. (Домен 2го уровня, но для сайта-зеркала думаю не сильно страшно, напоминаю, что я не шейх.) Ну и на всякий случай я написал нашим DDOSGUARD, чтобы узнать почём продают то что Cloudflare делает бесплатно. Они сказали, что за 28.000 в месяц могут побыть шлюзом, назвав при этом даже не самый дешёвый их тариф, хотя я полностью описал, что я соло инди дев.

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

Еще хотел прикрутить почту, но тут тоже Яндекс, предлагал заплатить за подписку на Яндекс 360, фордирование со своего домена, поэтому тоже делаем бесплатно и от Cloudflare!

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

В общем я по классике выбрал связку OVH + Тунель от Cloudflare (БЕСПЛАТНЫЙ) + Email Routing от Cloudflare (БЕСПЛАТНЫЙ)!

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

Сайт был собран довольно быстро, благо собирать лендинги сейчас одно удовольствие.

Я пока не знаю, где аккумулировать аудиторию, но скорее всего буду делать еще и свой форум т.к. не хочется повторять ошибки и терять всю аудиторию просто потому, что регулятору опять кто-то не угодит. (Это я об убитой аудитории в Discord) Но на текущем этапе хватит и лендинга.

Между делом обновил UI в игре.

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

Серверная часть

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

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

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

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

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

Конечно для огромного онлайна, даже таких решений мало и нужно будет делать, либо несколько таких систем, по примеру как это было в World of Warcraft с его реалмами. Либо еще раз разбивать на кластеры (каналы), но уже в рамках системы.

Заключение

По инфраструктуре для сервера, пока разместил "у себя", благо в своё время брал под игровые сервера машинку, I9 11900 / 64RAM, но для плейтестов должно хватить. А там уже буду думать, что делать, но с такими ценниками в РФ даже не знаю, кем надо быть чтобы хостится.

Обидно, конечно, что в инфо поле пускают одну информацию, а по факту всё оказывается "как обычно", но да ладно...

The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)
The Sector - онлайн 2D игра (Поддержка Инди | Инфраструктура | Серверная часть)

В целом, всё что хотел рассказал, спасибо всем кто дочитал мою писанину, желающих поиграть и помочь с плейтестом и поиском багов welcome! Думаю, что сделаю какой-нибудь беттерский кораблик в качестве спасибо :