Abstragetic

Abstragetic

https://music.yandex.ru/artist/23045465
Пикабушник
126 рейтинг 2 подписчика 0 подписок 5 постов 1 в горячем
6

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к подписчиков.

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

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

Выше пример 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 в месяц могут побыть шлюзом, назвав при этом даже не самый дешёвый их тариф, хотя я полностью описал, что я соло инди дев.

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

Показать полностью 8
3

The Sector

The Sector - онлайн 2D игра. (Свой 2D Freelancer)

Раздел с водой (можете скипнуть, тут просто путь)

Я долгое время увлекался фри шард серверами, линейкой, варкрафтом, дэйз, арк сурвайвал эволвед.

Иными словами держал сервера и занимался их моддингом.В последнее время (годы) руки да и функционал всё туже и туже затягивался...

Начался мой путь по созданию The Sector с момента, как платёжные агрегаторы (эквайринги) перестали работать с физическими лицами. Возникало куча гемороя в виде вебмани, киви и прочего. Становилось максимально не удобно, но я всё еще развивал свою моддинг проект на лайнейдж интерлюд...
Потом короновирус, куча ограничений и неудобств еще добавилось.

Потом в OVH, где хостились мои серверы, сайт и бэкапы случился пожар, сгорело... всё... Я просто проснулся, открыл форум и увидел жалобы от игроков, что ничего не работает. Открываю пьюти, чтобы подключиться к серверу, действительно не подключается. Почесав голову и открыв браузер - мне высветилась новость о пожаре какого-то дата центра в Страсбурге - "Да ну нет, такого не может быть" подумал изначально я, а потом открыл панель OVH и увидел надпись "денайн и номер инцидента"

Я немного отошёл от этого всего и начал хостить и заниматься играми про выживания DayZ/ARK, вторую удалось значительно замоддить и сделать действительно интересный проект и всё было неплохо и даже потихоньку развивалось до начала мировых событий. Думаю излишне расписывать все трудности с которыми пришлось разом столкнуться, от оплаты хостинга до оставшихся видов эквайринга, да и в целом рекламы. 95% Всех "фич" и наработок канули в очередной раз в нибытие.
Окей, мы же не пальцем деланные, удалось перевести всё на своё оборудование. Вместо сайта был выбран Discord и принято решение там аккумулировать всех своих игроков, завязать все фичи на дискорд. Онлайн, статистика, игровой чат, авто оповещения, вообщем красотища, но всё же не может быть хорошо правильно?

Наступает 24 год и все мои усилия, деньги в рекламму и сбор комьюнити за 2 года в очередной раз отправляются в нибытие т.к. дискорд становится не доступным для аудитории и 80% просто отваливается. Т.к. и целевая платформа заблокированна и рекламировать стало просто безсмысленно. Ещё год попыток как-то реанимировать. А после проект уже приходится закрыть - из за отсутствия онлайна. Занавес.

The Sector

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

- Почему космический сеттинг?

- Моей первой онлайн ммо игрой, еще до линейки - был Freelancer да да, тот самый легендарный фрил из 2003 года, с которого начался мой путь мододела. Именно на эту игру я сделал первые моды. (CS/HL2, конечно, тоже были в тот период, но совершенно не давали такого погружения именно в онлайн.)

- Почему 2D?

- Я считаю, что я здраво оцениваю свои силы и лучше сделать хорошую 2D игру, чем посредственную 3D.
Сама идея, изначально, была просто создать 2D игру, которой я смогу вертеть, как хочу, при этом обладая всеми правами и возможностями. (Но главным вдохновителем всё еще оставался Freelancer каким я его помню)
Первые наработки выглядели как просто треугольник с включающимися двигателями на фоне точек :)

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

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

Уже был сделан крутой фон и его подсветка от свечения корабля. Всё начинало быть похожим на игру. Но я столкнулся с штукой под названием "оптимизация". Все блоки были сделаны полигонами, в том числе и их анимация. Всё в совокупности давало огромное количество "draw call" что снижало FPS до абсурдных показателей. Как я только не тыркался, чтобы оптимизировать всё это... Если с draw calls проблему решить удалось (путём объединения конструктора в mesh), то вот с prims мои старания были безрезультатны. Всё сводилось к тому, что необходимо запекать всё в спрайт, а это ломало все анимации и всю красоту которую я так старался сделать. Что я только не перепробовал с этим строительством... И общий атлас и переиспользование одной текстуры... Даже с шейдером поверх и с картами глубин, это смотрелось так, будто бумажный вырезанный самолётик ползёт по тёмному фону. После долгих мучений было принято решение отказаться от стоительства и перейти в спрайтовую графику.

Спрайты

Спрайты мало того, что смотрелись куда сочнее, так еще и тратился всего 1 Draw Call и незначительное количество Prims на один корабль, что уже позволяло разворачивать масштабные перестрелки (Что и требовалось от производительности в моих хотелках)

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

Турели на корабле уже добавляли живости картинке

А разнообразие фракционных кораблей, всё более напоминало мне время проведённое во Freelancer.

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

Сейчас это выглядит как-то так:

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

Из уникальных фич на текущий момент реализованно:

1) Живая экономика.
Майнеры NPC привозят ресурсы (которые добываются в текущей системе) на базы. С этих же баз NPC фрейтеры развозят ресурсы по другим системам, где этих ресурсов нет. Не долетел фрейтер - покупать игроку нечего :) Какой нибудь игрок занимается пиратством и убивает майнеров - обрываются поставки. Игрок, скупил все товары со станции - их там не появится, пока не привезут майнеры или другой игрок. AI NPC построенно так, что кто-то, чем-то занимается. Трафик старался сделать максимально ГТА подобным на сколько смог.

2) Живые новости. Игрок убил другого ? - Пресса об этом написала. Сорвались поставки - пресса об этом написала. Назначили награду за голову и вот новость, уже на всех станциях сектора! Не хватает какого-то товара и об этом уже пишут! (Во фрилансере, тоже были новости, но они были больше по сюжету. Я же постарался сделать полностью адаптивное освещение событий, чтобы добавить игре глубины)

3) Какая же космо леталка и без политики? Было решено добавить механику чести (за заслуги на полях боя против вражеских фракций и участия в войнах за сектор) А так же общие выборы в лидеры фракции из кандидатов с верхушки ладдера по чести. Лидер фракции может устанавливать налоги и назначать офицеров.

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

5) Прокачка опыта, мастерство, таланты. Для каждого оружия есть 100 уровней мастерства, дольше используешь - повышаешь мастерство. Больше мастерства, больше урон. Игрок за миссии получает, не только деньги, но и опыт, повышая свой уровень. С повышением уровня открываются очки талантов, которые можно распределить в зависимости от вашего стиля игры. (Урон/Защита/Грузоподъёмность/Скорость/Прокачка перков фракций)
6) Заточка оружия. Ключевая механика, ведь в секторе все хотят стать сильнее, а улучшить оружие можно только с помощью руд добываемых при победе в войне фракций. Война фракций выглядит следующим образом: 3 раза в день в центральной системе появляются базы фракций. Та фракция, игрок которой, уничтожил базу одной из фракций (добил) получает победу и доступ к особой системе, где добывается руда для заточки.

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

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

9) Механика налогов внутри клана, автоматически отчисляющая установленный процент от полученной валюты всеми участниками клана в клановый банк.

Планируется внедрить еще множество интересного функционала, но пока-что имеем что имеем.

Спасибо всем кто дочитал, жду вас на просторах сектора.

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

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

#игры #индиигры #индидев #2dигры #games #gamedev #геймдев

Показать полностью 11
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества