Как создать свой сервер в Agar.io

Игровые сервера  /   /  От: Extrim25  /  3349 просмотров
Как создать свой сервер в Agar.io
5 (100%) 10 голосов

Agar.io или же в простонародье агарио — это теперь широко известная браузерная игра в наши дни. Изо дня в день количество игроков растет, и теперь данную игру можно считать таки феноменом и она по праву обрела свою вирусность. Суть игры в превращении вас в маленький шар, который может кушать шарики меньше себя, тем самым становясь все больше доминируя игровой мир и доску рекордов. Помимо этого она протестирует ваши возможности к выживанию и охоте. Собственно говоря вполне неплохо работают и публичные сервера, но если думаете как создать свой сервер в Agar.io для приватной игры с друзьями, в этом вам поможет проект Ogar о настройке которого я и постараюсь рассказать в данной статье.

Создаем сервер в Агарио

Итак, для создания сервера в Agar.io нам понадобиться:

  • Виртуальный или выделенный сервер. В целом можно запускать и на своем компьютере, но вы должны понимать, что он должен работать постоянно, ему нужна оперативная память и процессорная мощность, а так же стабильный интернет. Иначе радости от игры будет маловато из-за тормозов и зависаний. Данный туториал строиться на примере 64 битной версии Debian 7, но все пункты могут быть перенесены и в реалии других систем (Windows, Mac OS). В данной статье они рассматриваться не будут, но если кому-то очень понадобиться — я дополню гайд.
  • Выделенный IP адрес или сервис типа dydns для того, чтобы к нам могли спокойно подсоединится извне.
  • Установленный nodejs, git.
  • Скачанный дистрибьютив Ogar.
  • Желание и 10 минут времени.

Установка nodejs, git

Так как Ogar написан на Node.js, вам потребуется установить его, а так же дополнительный модуль “ws” для полноценного создания сервера. Первым делом мы обновим пакеты нашей системы, а после установим необходимую «базу»:

  • 1.
    apt-get update
  • 2.
    apt-get upgrade
  • 3.
    apt-get install build-essential git screen nano

Соглашаемся, устанавливаем. Теперь дело за Node.js:

  • 1.
    curl --silent --location https://deb.nodesource.com/setup_0.12 | bash -
  • 2.
    apt-get install --yes nodejs

Ogar Node.js Install

Скачивание и первый запуск

Нам осталось не так много и до самого сервера агар ио, но перед этим попробуем позаботиться о безопасности, а именно создадим специального пользователя, от которого и будет запускаться сервер:

  • 1.
    adduser agario

Adduser Agar IO

Придумываем ему пароль, остальную информацию можно оставить пустой. Его домашняя директория /home/agario, в нее и перейдем:

  • 1.
    cd /home/agario

Приступаем к загрузке и установке Огарио. Все это будет производиться посредством git, который мы установили ранее. Он же будет ответственный и за обновление. Вводим:

  • 1.
    npm install --save ws
  • 2.
    git clone git://github.com/OgarProject/Ogar.git Ogar

Install Git Ogar

Происходит скачивание файлов сервера Agar.io. Поздравляю. Осталось чуть-чуть. Пытаемся произвести первый запуск:

  • 1.
    nodejs Ogar

Если все хорошо, то мы увидим примерно следующее:

Запуск сервера Огар

Попробуем подсоединится к нашему серверу. Для этого в браузере наберем:

agar.io/?ip=нашIp:443

Если все успешно вы войдете на сервер и будете на нем один. В консоли сервера проверим состояние командой status:

Агарио status консоль

Как видим, все прошло успешно. Закрываем наш сервер командой exit.

Настройка сервера Агарио через gameserver.ini

Файл настроек создастся автоматически при первом запуске сервера. Ниже я напишу как отредактировать его и дам пример конфига с описаниями. Итак, для редактирования выполняем команду которая откроет текстовой редактор:

  • 1.
    nano gameserver.ini

Пример конфигурационного файла:

  • 1.
    // Ogar файл конфигурации
  • 2.
    // Линии которые начинаются со слешей не читаются сервером.
  • 3.
    // [Сервер]
  • 4.
    // serverGamemode: 0 = свободная для всех (Free for all), 1 = Командная, 2 = Экспериментальная (например 6/13/15),   10 = Соревнование, 11 = Голодные игры, 12 = Зомби мод, 13 = Команда Z, 14 = Команда X, 20 = радужный FFA (использовать вместе с setAcid(true))
  • 5.
    // serverBots: Количество ботов, которые спаунятся (Экспериментальная опция)
  • 6.
    // serverViewBase: Базовая дистанция, которую игроки видят. Внимание: большое значение может вызывать лаги.
  • 7.
    // serverStatsPort: Порт для статистики сервера. Негативное значение отключает статистику.
  • 8.
    // serverStatsUpdate: Количество секунд перед обновлениями статистики сервера.
  • 9.
    // serverLogLevel: Уровень логирования сервера. 0 = Без логов, 1 = Логи только в консоле, 2 = Логи в консоли и IP соединениях.
  • 10.
    // serverScrambleCoords: Включает перемешивание координат. 0 = Без перемешивания, 1 = перемешивать. По-умолчанию 1.
  • 11.
    serverMaxConnections = 64
  • 12.
    serverPort = 443
  • 13.
    serverGamemode = 0
  • 14.
    serverBots = 0
  • 15.
    serverViewBaseX = 1024
  • 16.
    serverViewBaseY = 592
  • 17.
    serverStatsPort = 88
  • 18.
    serverStatsUpdate = 60
  • 19.
    serverLogLevel = 1
  • 20.
    serverScrambleCoords = 1
  • 21.
    // [Границы]
  • 22.
    // Устанавливает границы карты (По-умолчанию значения для левой стороны/верха = 0, правой стороны/низа = 11180.3398875)
  • 23.
    borderLeft = 0
  • 24.
    borderRight = 6000
  • 25.
    borderTop = 0
  • 26.
    borderBottom = 6000
  • 27.
    // [Спаун]
  • 28.
    // Каждый интервал равняется одному тику (50 мс)
  • 29.
    spawnInterval = 20
  • 30.
    foodSpawnAmount = 10
  • 31.
    foodStartAmount = 100
  • 32.
    foodMaxAmount = 500
  • 33.
    foodMass = 1
  • 34.
    foodMassGrow = 1
  • 35.
    foodMassGrowPossiblity = 50
  • 36.
    foodMassLimit = 5
  • 37.
    foodMassTimeout = 120
  • 38.
    virusMinAmount = 10
  • 39.
    virusMaxAmount = 50
  • 40.
    virusStartMass = 100
  • 41.
    virusFeedAmount = 7
  • 42.
    // [Выплюнутая масса]
  • 43.
    // ejectMass: Масса выплюнутых шаров
  • 44.
    // ejectMassCooldown: Время, пока игрок может собрать выплюнутые шары (мс)
  • 45.
    // ejectMassLoss: Потеря массы при выплевывании шаров
  • 46.
    // ejectSpeed: Начальная скорость выплюнутых шаров
  • 47.
    // ejectSpawnPlayer: Шанс игрока заспаунится с выплюнутых шаров
  • 48.
    ejectMass = 12
  • 49.
    ejectMassCooldown = 200
  • 50.
    ejectMassLoss = 16
  • 51.
    ejectSpeed = 160
  • 52.
    ejectSpawnPlayer = 50
  • 53.
    // [Игрок]
  • 54.
    playerStartMass = 10
  • 55.
    playerMaxMass = 22500
  • 56.
    playerMinMassEject = 32
  • 57.
    playerMinMassSplit = 36
  • 58.
    playerMaxCells = 16
  • 59.
    playerRecombineTime = 30
  • 60.
    playerMassDecayRate = .002
  • 61.
    playerMinMassDecay = 9
  • 62.
    playerMaxNickLength = 15
  • 63.
    playerSpeed = 30
  • 64.
    playerDisconnectTime = 60
  • 65.
    // [Гейммод]
  • 66.
    // Произвольные настройки гейммода
  • 67.
    // tourneyTimeLimit: Время лимита игры, в минутах.
  • 68.
    // tourneyAutoFill:  Если установлено значение больше 0, матч будет автоматически заполнен ботами после старта.
  • 69.
    // tourneyAutoFillPlayers: Время старта, после которого сервер агарио будет заполнен ботами, перед тем как игроки подключаться.
  • 70.
    tourneyMaxPlayers = 12
  • 71.
    tourneyPrepTime = 10
  • 72.
    tourneyEndTime = 30
  • 73.
    tourneyTimeLimit = 20
  • 74.
    tourneyAutoFill = 0
  • 75.
    tourneyAutoFillPlayers = 1

Сохраняем данные настройки командой Ctrl — X соглашаясь перезаписать файл.

Консольные команды сервера

Данные команды можно вводить прямо в консоль сервера при запуске.

  • Addbot [число]
    • Добавляет определенно количество ботов на сервер. Если число не определено — добавляет 1 бота
  • Board [Полоса 1] [Полоса 2] [Полоса 3] …
    • Текст в таблице рекордов будет заменен следующими строчками
  • Boardreset
    • Сбрасывает ранние рекорды игроков и отображает актуальную информацию на текущий момент
  • Change [Параметр конфига] [Значение]
    • Параметр конфигурации будет замен на соответствующее значение, например “change serverMaxConnections 32″ поменяет значение MaxConnections на 32.
  • Clear
    • Очищает весь текст консоли
  • Color [ID Игрока] [Red] [Green] [Blue]
    • Меняет цвет указанного игрока
  • Exit
    • Выключает сервер
  • Food [X координата] [Y координата] [Масса]
    • Создает шар с едой в указанных координатах. Если значение не указано, берет его с параметра “foodStartMass” сервера
  • Gamemode [Id]
    • Смена гейммода сервера
  • Kick [ID Игрока]
    • Указанный игрок будет кикнут с сервера
  • Kill [ID Игрока]
    • Игрок и все его шары будут убиты
  • Killall
    • Убивает всех игроков и их шары
  • Mass [ID Игрока] [Значение]
    • Масса всех шаров игрока будет установлена в соответствующее значение
  • Name [ID Игрока] [Новое имя]
    • Меняет имя игрока на новое
  • Playerlist
    • Отображает список, в котором видны все присоединенные игроки, их IP, ID, количество шаров, масса и локацию
  • Pause
    • Ставит на паузу игру
  • Reload
    • Конфигурационный файл будет перезагружен. Параметры вроде serverPort, serverGamemode, serverBots, serverStatsPort, serverStatsUpdate изменяться только после перезагрузки сервера целиком.
  • Status
    • Отображает количество игроков, которые присоединены сейчас, время, использование памяти, гейммод
  • Tp [ID Игрока] [X координата] [Y координата]
    • Изменяет позицию игрока на указанная немедленно
  • Virus [X координата] [Y координата] [Масса]
    • Генерирует вирусный шар в заданной координате. Если масса не указана, использует серверный параметр “virusStartMass”.

Запуск сервера в фоновом режиме

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

  • 1.
    screen -mdS agario nodejs Ogar

Приватный агарио сервер

Для того чтобы попасть в консоль:

  • 1.
    screen -r agario

Чтобы выйти с консоли, нажимаем одновременно комбинацию Ctrl — a+d, а чтобы выключить сервер используем:

  • 1.
    screen -XS agario quit

Обновление сервера Огарио

И тут все просто. Для этого заходим в домашней директории в директорию Ogar и через нее перепроверяем ГИТом не обновился ли код сервера:

  • 1.
    cd Ogar
  • 2.
    git pull
  • 3.
    cd ..

Если патчей не выходило, мы увидим сообщение «Already up-to-date«.

Заключение

Надеюсь данная статья помогла вам разобраться и базово настроить сервер игры Agar.io на вашем хосте. Если у вас возникают проблемы, прошу в комментарии. Чем смогу — помогу. Stay tuned.

ОБРАТИТЕ ВНИМАНИЕ

...

...

...

  • jhytvg mgv

    на сегодняшний день инструкция актальна?

    • суть сохраняется

  • Сергей

    не работает