Игры в которых можно создать свой сервер
Перейти к содержимому

Игры в которых можно создать свой сервер

  • автор:

Создание сервера для онлайн ММО игр на PHP ч.14 — Сетевая карта и задержка кадра (Latency frame) по RFC 2544 (1242)

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

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

В конце статьи будет приложена видео версия.

сетевая карта

Пропускная способность

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

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

Уменьшение размера пакета в первую очередь ?!

Например, многие полагают что при фактической скорости 10 Мб/с интернета и размере пакетов от клиентов 64 байта смогут обработать 1 250 000 таких пакетов в секунду (1 Мбит = 125 000 байт) и в первую очередь стремятся уменьшить размер пакета следующим образом:

  • Выбирают UDP протокол с не гарантированной доставкой не по порядку приходящих пакетов за счет меньшего размера заголовков (не думая об обязательных паузах между командами в играх за время которых можно тысячи раз переслать пакеты повторно в случае их потери и мучаясь с нумерацией не по порядку приходящих пакетов)
  • Используют на этапе проектирования нечитабельные (кроме самого их автора) байт — флаги в которых кроется какая-то команда (взамен использования текстовых понятных человеку команд, например в том же json)
  • Использование сжатие (которое тратит время перед отправкой пакетов и тормозит процесс)

Почему CPU важен при работе с сетью

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

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

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

Если сервер работающих в один поток не способен прочитать и 10% принятых пакетов (бывает что и 1%), то уменьшение размера пакетов (которые в играх обычно небольшие) даст лишь небольшой прирост в скорости и это выглядит не первоочередной задачей, а скорее той, которую нужно решать в самую последнюю очередь для оптимизации и уменьшения количества ядер CPU .

Задержка сетевого устройства

Для определения скорости с которой сетевое устройство может передать пакет дальше производители этих устройств публикуют в тестах выполняемых стандартом под названием RFC 2544 в разделе Latency (Frame Latency). Иногда можно встретить упоминание RFC 1242 на котором основаны методы замера.

Ниже представлена выдержка из инструкции тест-анализатора сетевого оборудования, что означает показатель Latency (задержки)

фото из инструкции Беркут-ET http://metrotek.center/files/doc/all/b3et-ug_1.2.2_ru.pdf

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

Приведу примеры таких тестов, где us — микросекунды:

https://www.albedotelecom.com/src/lib/WP-RFC2544.pdfhttps://miercom.com/pdf/reports/20121129.pdf

А вот пример теста где уже подсчитано количество пакетов (Frames) в секунду:

Согласно публичным тестам задержка (Latency) для пакетов 64 байта в среднем находится от 7 до 50 микросекунд, т.е. от 135 000 до 20 000 уже полученных устройством пакетов в секунду можно с него считать в рамках одного потока.

Это позволяет сделать вывод, что задержка достаточно серьёзная (если само устройство при скорости 10 Мбит/c способно принять 1 250 000 аналогичных пакетов).

Выводы

Одним из самых первых и важных решений при разработке сервера — это обеспечение его работы в многопоточном режиме, т.е. что бы ваш сервис представлял собой несколько потоков (они могут делить между собой память как в языке C#, использовать каналы Channel как я языке Go или PHP или даже быть разными процессами обмен данных между которых можно наладить например установив TCP соединение между, использовать сокет (фаил) для обмена информации и т.д.).

Этот подход можно заметить и в WEB серверах (apache, nginx) и менеджерах процессов PHP — FPM где нужно вручную указать количество этих параллельных потоков (процессов) — они называются в них workers. Имейте в виду, что помимо обработки пакетов сервером для работы ОС нужно оставлять свободными (в зависимости от того что на ней еще работает, например база данных).

Помимо того что бы сервер работал в многопоточном режиме на физической «машине» (железе) должно быть достаточное количество нитей (thread) у ядер CPU что бы ваши потоки (процессы) находились на разных нитях и действительно работали параллельно (в ОС есть встроенный балансировщик на который как я полагаю можно положиться как минимум на первых порах разработки).

В заключение

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

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

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

Видео версия данной статьи:

Создаем игровой сервер: гайд по играм и техническим требованиям

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

Команда is*hosting 13 июн 2023 6 мин

Создаем игровой сервер: гайд по играм и техническим требованиям

  • Что такое игровой сервер?
  • Плюсы и минусы выделенного игрового сервера
  • Жанры игр, для которых пригодится собственный сервер
  • Как настроить игровой сервер вместе со Steam через SteamCMD
  • Популярные игры Steam и их требования к серверу
    • Counter-Strike: Global Offensive
    • Minecraft
    • Team Fortress 2
    • ARK: Survival Evolved
    • Terraria
    • Rust

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

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

    Что такое игровой сервер?

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

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

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

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

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

    24/7 Поддержка

    is*hosting придет на помощь в любое время дня и ночи. Задавайте вопросы, обращайтесь с трудностями — мы ответим.

    Плюсы и минусы выделенного игрового сервера

    Плюсы и минусы выделенного игрового сервера

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

    • Выделенные игровые серверы обеспечивают более высокую производительность и стабильность по сравнению с общим или одноранговым хостингом для игр. Благодаря выделенным ресурсам сервер может справляться с требованиями игры, что приводит к более плавному игровому процессу, уменьшению задержек и улучшению общего впечатления от игры.
    • Запуск собственного игрового сервера дает вам полный контроль над игровой средой. Вы можете настраивать параметры игры, применять моды или плагины и создавать уникальный опыт, соответствующий вашим предпочтениям и потребностям сообщества.
    • Для обеспечения более безопасного игрового процесса можно использовать свой сервер. Вы контролируете доступ пользователей, можете применять надежные меры безопасности и минимизировать риск мошенничества или взлома.
    • Хостинг выделенного игрового сервера позволяет вам найти или создать сообщество геймеров-единомышленников. Приглашайте друзей и создайте частный виртуальный сервер для определенной группы. Это помогает создать чувство товарищества и способствует социальному взаимодействию между игроками.
    • Выделенные игровые серверы обеспечивают масштабируемость, позволяя вам играть с растущей базой игроков. Вы можете модернизировать оборудование сервера, увеличить его мощность и обрабатывать больше одновременных подключений по мере расширения сообщества.
    • Что касается минусов, то можно смело говорить про стоимость собственного сервера. Это можно решить посредством аренды выделенного сервера, а не сбора собственного оборудования. Все, что нужно сделать, — это найти проверенного хостинг-провайдера и подобрать конфигурацию сервера под требования игры.

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

    Жанры видеоигр, для которых пригодится собственный сервер

    Жанры игр, для которых пригодится собственный сервер

    В ММО обычно участвует большое количество игроков, взаимодействующих в постоянном виртуальном мире. Выделенные серверы обеспечивают централизованность и стабильность виртуального мира, в котором игроки могут проводить исследования, выполнять задания и участвовать в боях «игрок против игрока». Примерами MMO, которые в значительной степени полагаются на выделенные серверы, являются World of Warcraft, Final Fantasy XIV, EVE Online и Guild Wars 2.

    Игры FPS часто выигрывают от использования выделенных серверов, поскольку они обеспечивают более низкую задержку и более равные условия для всех игроков. Выделенные игровые серверы также позволяют лучше контролировать настройки игры, такие как режимы игры, карты и ограничения игроков. Популярные игры FPS, в которых обычно используются выделенные серверы, включают Counter-Strike: Global Offensive, Call of Duty, Battlefield и Team Fortress 2.

    Игры на выживание обычно предполагают исследование открытого мира, сбор ресурсов, ремесло и взаимодействие игроков. В купе с выделенным сервером игроки получают стабильную игровую среду, в которой можно сотрудничать или соревноваться. В таких играх, как Minecraft, ARK: Survival Evolved, Rust и 7 Days to Die, есть опции выделенных серверов, которые позволяют игрокам создавать свои собственные миры, к которым могут присоединиться другие игроки.

    Строительные” игры предоставляют игрокам инструменты и свободу для создания и проектирования своих виртуальных миров. С выделенным сервером игроки могут сотрудничать над большими проектами, делиться своими творениями и наслаждаться созданным миром. Например, Garry’s Mod, Terraria, Space Engineers и Factorio.

    Ролевые игры (RPG) с многопользовательскими компонентами, такими как кооперативный геймплей или бои «игрок против игрока», могут выиграть от использования выделенных серверов. В качестве примеров можно привести Diablo 4, Path of Exile, Divinity: Original Sin 2 и The Elder Scrolls Online.

    Спортивные и гоночные игры часто включают многопользовательские режимы, в которых игроки могут соревноваться друг с другом. Выделенные серверы обеспечивают справедливую и последовательную среду для матчей, уменьшая задержки и поддерживая синхронизацию между игроками. Сюда относятся FIFA, NBA 2K, Rocket League и iRacing.

    Как настроить игровой сервер вместе со Steam через SteamCMD

    Как настроить игровой сервер вместе со Steam через SteamCMD

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

    1. Скачайте и установите SteamCMD, который является инструментом командной строки Valve для работы с игровыми серверами. Его можно загрузить с официального сайта SteamCMD.
    2. Создайте новую папку на вашем компьютере, в которую вы хотите установить игровой сервер.
    3. Откройте SteamCMD, запустив файл «steamcmd.exe».
    4. Войдите в систему через консоль SteamCMD посредством команд:
      login anonymous (для анонимного входа в систему) force_install_dir (укажите путь к созданной вами папке) app_update validate (замените на конкретный AppID игрового сервера, который вы хотите установить, например, 740 для Counter-Strike: Global Offensive)
    5. После установки игрового сервера перейдите в папку сервера и найдите файлы конфигурации (часто они находятся в папке «cfg» или «config»). Откройте эти файлы с помощью текстового редактора или Терминала и измените настройки сервера в соответствии со своими предпочтениями (например, режим игры, лимиты игроков и др.).
    6. Чтобы запустить игровой сервер, вернитесь в консоль SteamCMD и введите команду: app_run -console (замените на конкретный AppID игрового сервера).
    7. Настройте маршрутизатор так, чтобы он перенаправлял необходимые порты на IP-адрес компьютера, на котором запущен игровой сервер. Необходимые порты указаны в документации или на официальном сайте игры. Затем установите параметры брандмауэра так, чтобы разрешить входящие соединения по указанным портам.

    Популярные игры Steam и их требования к серверу

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

    Counter-Strike: Global Offensive Counter-Strike: Global Offensive

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

    Минимальные требования к выделенному серверу для CS:GO:

    • 2.8 GHz процессор (64-bit)
    • 2 GB RAM
    • 50 GB диск

    Minecraft minecraft

    AppID: 4020 (Minecraft Dedicated Server)

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

    Кстати, более подробно о настройке сервера для игры Minecraft мы описали в этой статье. Дисковое пространство стоит выбирать в зависимости от размера мира, который планируется создать. Минимальные требования к выделенному серверу для Minecraft:

    • 3 GHz процессор
    • 5 GB RAM
    • 18 GB диск

    Team Fortress 2 Team Fortress 2

    TF2 представляет собой командный многопользовательский шутер от первого лица, разработанный компанией Valve. Она отличается уникальным художественным стилем и разнообразием классов персонажей с различными способностями и игровыми стилями. Игроки могут участвовать в таких режимах игры, как «Захват флага» и «Контрольная точка». TF2 известна своей красочной эстетикой, быстрым темпом игры и акцентом на командную работу.

    Минимальные требования к выделенному серверу для Team Fortress 2:

    • 1.7 GHz процессор
    • 1 GB RAM
    • 15 GB диск
    Выделенный сервер

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

    ARK: Survival Evolved ARK: Survival Evolved

    Игра на выживание с открытым миром, действие которой происходит в доисторической среде, наполненной динозаврами и другими доисторическими существами. Речь идет об ARK: Survival Evolved, где ради выживания игроки должны собирать ресурсы, создавать оружие, строить убежища, приручать динозавров или охотиться на них. Игра предлагает как однопользовательский, так и многопользовательский режимы, с возможностью кооперативного и соревновательного геймплея. Уже виден потенциал вместе со своим игровым сервером!

    Минимальные требования к выделенному серверу для ARK: Survival Evolved:

    • 3 GHz процессор
    • 8 GB RAM
    • 30 GB диск

    Terraria Terraria

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

    Игра не требует много дискового пространства. Минимальные требования к выделенному серверу для Terraria:

    • 2 GHz процессор
    • 2 GB RAM
    • 1 GB диск (примерно 10 игроков)

    Rust rust

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

    Минимальные требования к выделенному серверу для Rust:

    • 3 GHz процессор
    • 8 GB RAM
    • 10 GB диск

    Как настроить игровой сервер для игр вне Steam

    Как настроить игровой сервер для игр вне Steam

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

    1. На официальном сайте или форумах игры найдите файлы выделенного сервера для загрузки. Разработчик или сообщество обычно предоставляют инструкции по настройке сервера.
    2. Распакуйте скачанные файлы сервера в нужное место на вашем компьютере. Лучше всего создать для этого отдельную папку. Следуйте прилагаемой документации (инструкциям), чтобы настроить параметры сервера.
    3. Как и в случае с игровыми серверами Steam, настройте перенаправление портов на маршрутизаторе и отрегулируйте параметры брандмауэра, чтобы разрешить входящие соединения на необходимых для игры портах.
    4. После завершения настроек, запустите файл сервера или скрипт запуска. Для более подробной информации по администрированию серера, добавлении плагинов и других функций стоит изучить официальную документацию или обратиться за помощью к другим игрокам, например, на специализированных форумах.

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

    Создание сервера для онлайн ММО игр на PHP ч. 1 — Введение

    В большинстве своей при создании онлайн взаимодействия (не пошаговые, не где сервер — это один из клиентов, и не PVP, а прям ММО) в мобильных играх (да и не только) есть несколько путей:

    • использовать игровой движок в качестве экземпляра сервера (типа тот же UNITY в качестве сервера из коробки или с плагинами типа Mirror) — нужно когда у тебя есть OFFLINE версия игры параллельно (тогда да, иначе никак)
    • писать свое (те не универсальный, заточенный под игру)
    • использовать сервис типа https://www.photonengine.com/ (аналог которого я и делаю)

    Как было бы здорово если был бы простенький сервис с API , да что и написан был на простом языке типа РНР да и что бы к нему была админ панель, куда можно было бы добавлять карты, предметы, анимации, создавать квесты, редактировать баланс. И что бы это это работало с мобильными приложениями на Android , IOS и игры были прям реалтайм рпг, где все друг друга видят и взаимодействуют, что бы не требовало много ресурсов сервера и работало быстро

    Подумал я

    Каким образом?

    Посмотрев информацию в интернете (найдя лишь эту https://habr.com/ru/company/vk/blog/220359/ старую статью) про то как строится архитектура программы — сервера (не путайте с клиентами, как делать сами игры статей множество) , открыв русскоязычный youtube (где все пересказывают либо эту статью, либо используют игровой движок как сервер) я полез в англо-саксонский 🙂

    Вот пример Человек делал несколько лет на С# но в итоге все работало настолько медленно что он снял эмоциональное видео «Я ненавижу это!»

    Исторически сложилось что такие вещи пишутся на том же языке что сделан клиент (и теми же людьми), те обычно на С#, C++ . более редко мне кажется на Nodejs (может для браузерок) и Golang (знал бы его — писал на нем).

    Что вроде как код должен компилироваться, что все остальное — медленное для пошаговых и однотипных браузеров и не компилируемые языки — не годятся ! C чем я не согласен и вот вам видео почему 🙂

    Получится ли написать сервис на PHP ?

    Какие есть технологии на рынке? Мне известен западный сервис https://www.photonengine.com/ , со сложной документацией, с серьезной работой в клиенте с глубокими познаниями в C# как мне кажется.

    Да, язык PHP не компилируется , но это капля в море по скорости что забирает сервер (остальное — базы, кеширование, асинхронность, канал связи и тп) . А с php 7.4 (и далее 8) появились такие вещи как opcache, JIT компиляция ..

    В добавок используются такие технологии как Redis, Websocket (UDP / TCP) и сервис предполагается для 2Д мобильных игр

    Я считаю что человеку разрабатывающему клиент для онлайн не должен разбираться в хитросплетениях работы сервера : библиотеки для установления соединения с сервером и API список методов с принимаемыми и возвращаемыми параметрами — достаточно. А Вы ?

    В добавок дать разработчикам легкий и понятный интерфейс для работы с игровым миром, например загрузка карт (отрисованные, например, в программе Tiled https://www.mapeditor.org/) как в видео

    Есть ли результат?

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

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

    Рекомендую прочитать вторую часть серии статей про создание онлайн сервера для игрового проекта

    Подписывайтесь на мой профиль что бы не пропустить новые статьи

    Свой игровой сервер, опыт ⁠ ⁠

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

    Я не буду рекламировать свой проект, поэтому никаких названий и ссылок не будет. Статья носит информационный характер. Лишь скажу, что игровыми серверами занимаюсь с 2013 года. Изначально как и у всех, это был любительский сервер кс 1.6. =) Конечно, речи о заработке тогда и в мыслях не было. Просто хотел посмотреть что такое быть админом. Игроки были, месяца 2 сервер держался, жил конечно на личном компе. Затем я перешёл на Day of defeat source, т.к. был фанатом этой игры, а в кс я сам никогда не играл до открытия сервера, и не любитель этой игры, не зашла. Появился и сервер. Игроки тоже были, но игра уже потяжелее и было трудно играть и одновременно держать сервер на одном компе. Сервер просуществовал так около 3-4 месяцев, но с частыми ночными выключениями (гудящий комп ночью не слабонервных).

    После долгого перерыва, я решил в 2015 запустить свой сервер по игре Ark survival evolved. Да, как вы поняли, я был любитель этой игры, наиграв в ней тогда примерно 1500 часов. Думал ещё про RUST, единственный популярный аналог Арку, но меня отпугнул более скудный контент игры, и то, что там сплошное мессиво, как в Арке надо думать и огромные возможности строительства, в чём даже Раст сильно уступает. Причиной открытия сервера стало то, что я хотел создать максимально лучший и комфортный сервер по Арку в RU сегменте, о донате я даже не думал. Я никак не мог найти для себя, как игроку, подходящий сервер. Или это были вечные лаги, или частые краши, или неадекватность админов, или кривые настройки. Набрав немалый опыт и понимание тонкостей, я запустил свой сервер на личном компе, устранив большую часть проблем других проектов. Мне удалось. В то время русских серверов было очень мало в силу того, что игровой сервер по Арку ну очень требователен к железу и не каждый может его запустить. Игровых хостингов тогда не было по Арку, вернее они только зарождались. Игровой опыт дал свои плоды: я быстро набрал игроков в первый же вечер и без рекламы: одна карта, 16 игроков из 100 слотов.

    Мой комп страдал, но мне был интересен этот эксперимент. В первую же неделю мне пошли запросы по донату, хотя я и не думал что-либо продавать. Суммы были небольшие, но всё равно приятные. Онлайн рос как на дрожжах, поэтому я принял решение перейти на игровой хостинг под Арк, что в последствии оказалось моей чудовищной ошибкой. Хостинг предлагал мне возможность использовать одну карту в 70 слотов за 2000р в месяц, а сервер давали виртуальный конечно, i7, 8гб ОЗУ. Донат шёл так, что я без труда выходил в ноль, поэтому проект для меня затратным не был. Вот только когда онлайн достигал 20 игроков и выше, начинались лаги, не свойственные по тем временам для характеристик даже виртуального сервера, я понял, что меня с характеристиками наиапали. Пошли краши, частые отключения иногда по 1-5 дней. Я периодически то терял онлайн, то получал опять приток. На хостинге я был 6 месяцев и моё терпение просто лопнуло — проект не мог расти, тупик. С тех пор я поставил табу на игровых хостингах, и больше никогда с ними не связываюсь.

    Передо мной стал выбор: переходить на хостинг в виде выделенного сервера или придумать что-то своё. Выделенный сервер это очень. нет ОЧЕНЬ дорогое занятие. Тем более, для игры тогда вышли ещё и другие карты, которые обязательно должны работать. Подходящий на те времена выделенный сервер стоил от 15 до 35 т.р. в месяц и это самый простой ещё, который хоть как способен потянуть Арк на 2 карты, а 3 были под сомнениями. Мне эти суммы показались неадекватными для игрового проекта, поэтому я купил свой сервер за 35 000р, заплатив эту сумму лишь разово, а не ежемесячно, как требуют хостинги. Старый, бу, но свой и на те времена относительно мощный для Арка. Уточнил всё у провайдера, договорился, получил выделенный ip, более широкий канал и разрешение использования сервера (тогда провайдеры это мониторили, типа тонкости подключения серверов с целью заработка, много формальностей чтобы у закона к тебе потом не было претензий, сейчас такого практически уже нет, всё проще).

    Сервер был на базе самого первого процессора i7, но с серверной матерью, оперативкой. Пришлось его дорабатывать в плане БП и охлаждения (башня), SSD, чтобы исключить технические риски. Тут я и решил все проблемы. Купил продвинутый роутер с мощным фаерволом, настроил: мне же не нужны те, кто будут пытаться штурмовать мой личный IP адрес и получать доступ к личному компу. Несколько карт, моды, всё летает, всё почти без лагов. Онлайн несколько лет был 40-80 игроков (из 100 на карту), что очень и очень высокий показатель, и снова — без рекламы (я в ней вообще не силён). Вёл сообщество, конкурсы, ивенты. Времени такой проект отбирает ну очень много, иногда выматывало. Я работаю сам на себя, поэтому время находить мне не так сложно. Арк имеет самую отвратительную оптимизацию из всех игр, которые я только видел что для клиента, что для сервера. Поэтому 50% времени админства это тупо исправление багов модов, и настроек, чтобы игра не крашилась. Плюс, игроки постоянно находили лазейки в багах, что нужно было быстро устранять.

    По доходности, такой проект приносил 5 000-20 00р в месяц. Изредка выше. Оборот был легальный, подключён интернет-магазин с официальной регистрацией, который выступал посредником. Часть средств шло на оплату электроэнергии, ремонт сервера (он иногда ломается). Часть, конечно, на иные расходы. Как небольшой пассивный заработок это было очень неплохо. Конкуренты меня ненавидели, потому ставил самые низкие цены, что успешно работало для привлечения игроков, т.к. я не ставил цел зарабатывать на этом миллионы =) Это хобби.

    Всё пошло по одному месту, когда разработчики стали пачками выпускать новые карты, и на каждой свой неповторимый, уникальный контент, важный для общего гемплея. Игроки стали рассредотачиваться по разным картам, что уменьшило онлайн на каждой отдельной. А чем меньше онлайн, тем скучнее играть. Затем, со слов игроков, появление такого большого количество карт начинало многих путать, особенно новичков. Они приходят поиграть и хорошо провести время, а не страдать пытаясь понять что и как делать на этих 100500 картах, и торчать в ну очень долгих загрузках при переходах между картами (кластер). Пошёл отток игроков вообще из Арка. Дальше стало ещё хуже. Как админу, было в разы сложнее заниматься сервером, одно дело 1-3 карты, на которых кучкуются игроки, а другое, когда 6-7 карт, по которым вечно они прыгают. Плюс, на каждой карте свои технические проблемы, в основном несовместимость модов. Меня банально на всё не хватало. Конечно, я брал и других админов, но они не справлялись и делали гадости за моей спиной: раздавали шмот друзьям, вмешивались в рейды, играли как игроки, что в совокупности тоже понижало онлайн. Игроки злились, раздражались, срывали агрессию на мне виня во всех грехах, часто угрожали лично, что отбивало у меня заниматься Арком вообще и я стал «пропадать» на дни и недели. Доход уже тогда был никакой, копейки.

    Дальше выходили и выходят сейчас новые карты, но мой сервер уже технически не способен запустить столько карт, он работает на износ, достиг предела. Появились конкуренты, запустили мощные сервера, которые всё это способны выдержать, да ещё и по несколько кластеров (пакеты карт по 12 шт). Я до сих пор гадаю на каком альтруизме они их арендовали или купили, т.к. окупить такие мощности практически невозможно. Я общался с одним админом топового проекта, он хвалился, что платит за аренду сервера 65 000р в месяц и то по знакомству, а доход с него около 35 000. Он владеет сервером для души, т.к. зарабатывает очень прилично, и эти расходы для него мелочи. Ну, если человек может себе позволить, почему бы и нет. Я так не могу.

    Я стал проигрывать конкуренцию, дохода больше нет, онлайн умер практически в ноль. В 2021-23гг, пошли другие проблемы: сам Арк начал умирать. Его сложность отпугивала новичков. Вес игры с допами занимает около 700 гб, что не каждый захочет себе ставить, особенно с медленным интернетом. Кто-нибудь знает ещё такую игру, вес которой почти терабайт? Другие топовые конкуренты тоже имеют очень низкий онлайн, в лучшем случае 18-25 игроков на топовую карту (остальные обычно простаивают, особенность Арка). Средние и маленькие проекты закрываются в течении 2х лет просто пачками, осталось лишь несколько крупных и ну очень мало средних, как мой. Я пытаюсь оживить свой проект, но думаю это бесполезно. Отчасти потому, что Арк сильно устарел, хоть и является лучшим многопользовательским выживастиком в мире. Отчасти игру убило то, что разработчики создали слишком много тяжёлого, сложного контента (сейчас 12 карт), что тяжело тянуть как админам, так и игрокам. Арк пока жив, но будущее его уже видно, и оно плачевно. Хоть и анонсирован Арк 2, ни я, ни игроки не видят в нём перспективы. В зарубежном сегменте (вне стран СНГ) Арк всё ещё популярен, но запускать на него смысла нет из-за высокой разницы в пинге.

    Я планирую двигаться дальше, история с Арком заканчивается, и перейти на другие игры: либо сервер по майнкрафту, что удивительно, такие до сих пор очень популярны. Либо на старичок wow, пока пытаюсь понять мёртв он или есть ли в нём смысл. Других толковых вариантов я не вижу. Зачем мне это всё? Да просто интересно, мне в кайф.

    Резюмируя скажу, что владеть серверами это очень интересное занятие. Здорово прокачивает технически навыки, социальные, лидерские качества, ответственность. Это всё нужно в жизни, в любой её сфере. Можно зарабатывать больше, чем я, если думать об игровых серверах как об полноценном бизнесе и много вкладываться в рекламу. Я же не считаю что в РФ на таких проектах можно серьёзно зарабатывать, и исключения есть, очень редки. Одна из самых прибыльных игр для этого — wow, но там нужно понимать, что сервера по ней незаконны, и современности игры в 2023 году под большим вопросом. Арк юридически позволяет содержать людям неофициальные сервера и делать на них что угодно. Но открывать сейчас с нуля сервер по Арку пустая трата времени, по крайней мере в RU сегменте спрос на Арк очень сильно просел и проседает каждый год.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *