- Баллы
- 173
- Имя в Minecraft
- InterVi
Создать свой сервер не так просто, как может показаться на первый взгляд. На своем компьютере для игры с друзьями — это одно, на выделенном сервере для множества игроков — совсем другое. Нужно учитывать их потребности, возможные проблемы с защитой своих предметов и территорий, уязвимости, позволяющие эти предметы размножать и многое другое. Перед созданием сервера нужно придумать его идею: что на нем должно быть и как работать. Далее подбираются плагины. После рассчитывается приблизительная нагрузка, исходя из которой выбирается VPS или VDS с необходимыми характеристиками.
Создание команды
Без команды нагрузка будет очень большая, поэтому благоприятным условием для создания и поддержки качественного сервера является наличие команды. Это должны быть люди, которых вы знаете лично, в которых вы уверены. Нельзя набирать их из тех, кто просит, зайдя на сервер — им просто нужна красивая должность, а возраст таких просителей редко превышает 14 лет.
Подбор плагинов
У некоторых есть схожие функции, потому часто их список можно сократить, а, следовательно, нагрузку. Например, просмотр инвентаря есть в essentials, значет OpenInv не понадобится. Или установка точки спауна и варпов — это тоже есть в essentials, специализированные плагины не нужны.
Некоторые вещи работают «из коробки», такие, как сохранение карты и инвентаря, отключение урона от мобов и прочее.
Настройка плагинов
Каждый плагин создает свою папку с файлами конфигураций: в них прописываются настройки плагина. Настройка плагинов под свои нужды необходима, иначе сервер будет непригодный для игры. Например, у essentials AntiBuild по умолчанию игрокам запрещено ставить и ломать блоки.
Есть уже известные тонкости: чистка защищенных сундуков загрузочной воронкой, размножение вещей с помощью команд /cdroptransfer select, /logout и /unregister (если вторая недоступна). Они отключаются в конфигурационных файлах или через permission. Так же нужно настроить черные списки, внеся туда воронку и вагонетку с воронкой, отключить поверждения от динамита и криперов хотя бы в обычном мире.
Настройка permissions
Для удобной системы прав разных групп игроков используется плагин PermissionsEx. У каждого плагина есть свои permissions (разрешения), которые прописываются в конфигурационном файле. Через него же можно эти разрешения запретить, например, команду просмотра версии CraftBukkit и списка плагинов.
Тестирование
Не все можно учесть сразу, поэтому созданную сборку нужно сначала запустить на своем компьютере и поиграть. В процессе выяснятся недочеты в правах, настройках плагинов и прочем. Только когда все будет идеально, можно продолжать дальше.
Выбор хостинга и закачка сборки
Лучше всего брать выделенный сервер, чем покупать по слотам. Во-первых, в таком случае вы имеете полный доступ и можете делать что хотите, например, разместить несколько игровых серверов, игровой сайт, почтовый сервер. Во-вторых, проще редактировать свою сборку (у некоторых специализированных сервисов для этого надо писать в тех. поддержку).
Желательно, чтобы физически сервер располагался в той стране, для аудитории которой он создается. Тогда пинги будут заметно короче. Но это не принципиально, сервер, например, в США, имеет пинг до России 100-150ms, а по порту CraftBukkit ~300ms (связано с нагрузкой). Существенные недостатки при этом не замечены.
Выбирать мощность нужно из расчета, что простенький сервер на 2 Гб оперативной памяти с 10-30 плагинами выдерживает ~50 игроков без заметных проблем, в случае, если не нагружен дополнительно из-за плохой настройки или «тяжелых» плагинов.
Я использую этот хостинг, т.к. он не дорогой и за два с половиной месяца ни разу не подвел (недеюсь ссылку на виртуальные и выделенные сервера найдете без подсказки).
Безопасноть и отказоустойчивость
Под ней подразумевается наличие плагинов, защишающих от читеров и атаки ботов. Это — необходимый минимум, пример: NoCheatPlus и AntiBot. По желанию можно предотвратить и x-ray, но такие плагины создают сильную нагрузку. Так же нужно настроить SSH на нестандартный порт, придумать сложный пароль, правилами IPTABLES запретить его подбор и DdoS атаки. Либо использовать специализированное приложение, такое как fail2ban.
Для повышения отказоустойчивости должны быть соблюдены предыдущие условия, чтобы максимально снизить нагрузку и закрыть возможные дыры в безопасности (настройка плагинов и permissions).
В команде запуска сервера нельзя выделать под минимум всю доступную оперативную память: чанки не будут выгружаться и она быстро закончится, а сервер отключится. Команда должна выглядеть примерно так:
Чтобы сервер запускался сам в случае остановки, можно использовать цикл:
Если его нужно будет выключить, то за паузу в 10 секунд можно вполне успеть нажать CTRL+C.
Если выделенный сервер имеет свойство иногда произвольно перезагружаться, то и на этот случай можно сделать автозагрузку через скрипт с таким содержимым:
Затем нужно прописать путь до него в /etc/rc.local, чтобы он срабатывал при старте системы.
Про отказоустойчивость создавал отдельную тему.
Постройка красивого спауна
Спаун — лицо сервера. Он должен быть красив и удобен, при этом не вызывая сильную нагрузку на клиент. Это означает, что там не должно быть сложных механизмов из красной пыли, множества рамок и табличек, мобов. Приглашать игроков можно только после того, как все построено. Естественно, такое важное сооружение должно быть защищено регионом WorldGuard, с выставленными необходимыми флагами (на запрет PVP, перенос блоков эндерменом и прочее).
Постройка магазина
Он необходим, если на сервере есть экономика и плагин работ, чтобы игроки могли купить за игровые деньги то, что им нужно. Цены нельзя делать слишком маленькими или слишком высокими, желательно не делать продажу в магазин (защита от любителей размножать предметы и от сверх-доходов) и не выставлять опасные предметы (яйца призыва мобов).
Создание игрового сайта или группы в соц. сети
Игрокам нужно общаться и получать различную информацию: правила, новости проекта, цены на дополнительные услуги (если такие есть). Для начала хватит и группы, а на сайте можно поставить простенькую заглушку (на многих выделенных серверах уже сразу установлен Apache, лучше, если заглушка будет своя, а не стандартная).
Создание своего игрового клиента (лаунчера)
Его главная цель — защита от читеров. Никакой плагин не сделает это лучше. Фактически, больше он ни для чего не нужен, кроме повышение авторитета сервера.
Раскрутка
К созданию сервера не относится, но является важным пунктом. Продвигать сервер нужно тогда, когда уже все готово. Есть несколько известных способов:
Спам
Суть проста: распространять как можно большее количество заготовленных сообщений по сообществам Вконтакте. В других социальных сетях их практически нет. В день нужно проходить максимальное число групп по несколько раз, а сообщение должно быть привлекательным.
Эффективность покупки рекламы в таких группах достаточно низкая: люди устали и не обращают на нее внимания.
Подписи и сообщения на форумах
Самый известный — rubukkit. Рекламу можно добавит в подписать, а так же в соответствующий раздел. Но это не должно быть спамом, в таких местах ценят содержательность. Нужно участвовать в обсуждениях и показывать свой ум, только тогда получится обратить на себя внимание.
ТОПы
Есть специальные сайты с рейтингами серверов, имеющие высокую посещаемость. Задача в том, чтобы люди голосовали на них за ваш сервер, чтобы он поднимался все выше. На некоторых можно просто купить высокие места и выделение цветом.
Приглашения
Это самый эффективный способ, поднимающий все сервера. Сервер должен быть хорошим, чтобы игроки приглашали друзей. Придется сильно постараться вначале и быть хорошим администратором в дальнейшем.
Статьи и комментарии
Можно рекламировать сервер на тематических сайтах и блогах: где-то добавлять статьи, где-то писать в комментарии. Но делать это грамотно, чтобы не сочли за спам и не удалили.
P.S.
Статья писалась для продажи, но никак не добавляется, причем именно эта. Видимо господь велел добавить ее сюда, чтобы кому-то помочь. Возможно потом каждый пункт распишу отдельно в этой теме и сделаю ссылки на посты в шапке, тогда будет отличное руководство для новичков.
Создание команды
Без команды нагрузка будет очень большая, поэтому благоприятным условием для создания и поддержки качественного сервера является наличие команды. Это должны быть люди, которых вы знаете лично, в которых вы уверены. Нельзя набирать их из тех, кто просит, зайдя на сервер — им просто нужна красивая должность, а возраст таких просителей редко превышает 14 лет.
Подбор плагинов
У некоторых есть схожие функции, потому часто их список можно сократить, а, следовательно, нагрузку. Например, просмотр инвентаря есть в essentials, значет OpenInv не понадобится. Или установка точки спауна и варпов — это тоже есть в essentials, специализированные плагины не нужны.
Некоторые вещи работают «из коробки», такие, как сохранение карты и инвентаря, отключение урона от мобов и прочее.
Настройка плагинов
Каждый плагин создает свою папку с файлами конфигураций: в них прописываются настройки плагина. Настройка плагинов под свои нужды необходима, иначе сервер будет непригодный для игры. Например, у essentials AntiBuild по умолчанию игрокам запрещено ставить и ломать блоки.
Есть уже известные тонкости: чистка защищенных сундуков загрузочной воронкой, размножение вещей с помощью команд /cdroptransfer select, /logout и /unregister (если вторая недоступна). Они отключаются в конфигурационных файлах или через permission. Так же нужно настроить черные списки, внеся туда воронку и вагонетку с воронкой, отключить поверждения от динамита и криперов хотя бы в обычном мире.
Настройка permissions
Для удобной системы прав разных групп игроков используется плагин PermissionsEx. У каждого плагина есть свои permissions (разрешения), которые прописываются в конфигурационном файле. Через него же можно эти разрешения запретить, например, команду просмотра версии CraftBukkit и списка плагинов.
Код:
- automessage.receive.default
- essentials.signs.use.balance
- essentials.signs.use.buy
- essentials.signs.use.disposal
- essentials.signs.use.enchant
- essentials.signs.use.free
- essentials.signs.use.gamemode
- essentials.signs.use.heal
- essentials.signs.use.info
- essentials.signs.use.kit
- essentials.signs.use.kit.starter
- essentials.signs.use.kit.tools
- essentials.signs.use.mail
- essentials.signs.use.protection
- essentials.signs.use.repair
- essentials.signs.use.sell
- essentials.signs.use.spawnmob
- essentials.signs.use.time
- essentials.signs.use.trade
- essentials.signs.use.warp
- essentials.signs.use.weather
- essentials.helpop
- essentials.tpa
- essentials.build
- essentials.warp.list
- essentials.warp
- essentials.tpahere
- essentials.tpaccept
- essentials.home
- essentials.sethome
- essentials.delhome
- essentials.spawn
- essentials.suicide
- essentials.rules
- essentials.msg
- essentials.ignore
- essentials.info
- essentials.list
- essentials.mail
- essentials.mail.send
- essentials.motd
- essentials.help
- essentials.help.*
- essentials.afk
- essentials.pay
- essentials.me
- essentials.balance
- essentials.kit
- essentials.kits.starter
- essentials.kits.tools
- ChestShop.shop.*
- mobarena.use.*
- mobarena.arenas.*
- mobarena.classes.*
- mobarena.use.playerlist
- mobarena.use.arenalist
- mobarena.use.spectate
- mobarena.use.leave
- mobarena.use.join
- worldguard.region.wand
- creativegates.use
- signcolours.*
- worldguard.region.list.own
- worldedit.selection.hpos
- worldedit.selection.pos
- worldedit.wand
- worldguard.region.claim
- worldguard.region.setparent.own.*
- worldguard.region.setparent.own.*
- worldguard.region.select.own.*
- worldguard.region.select.own.*
- worldguard.region.redefine.*
- worldguard.region.addowner.own.*
- worldguard.region.removeowner.own.*
- worldguard.region.addmember.own.*
- worldguard.region.addmember.member.*
- worldguard.region.removemember.own.*
- worldguard.region.removemember.member.*
- worldguard.region.remove.own.*
- worldguard.region.info.*
- worldguard.region.info
- worldguard.region.flag.regions.own.*
- worldguard.region.flag.flags.passthrough.*
- worldguard.region.flag.flags.build.*
- worldguard.region.flag.flags.pvp.*
- worldguard.region.flag.flags.mob-damage.*
- worldguard.region.flag.flags.mob-spawning.*
- worldguard.region.flag.flags.creeper-explosion.*
- worldguard.region.flag.flags.enderman-grief.*.*
- worldguard.region.flag.flags.enderpearl.*
- worldguard.region.flag.flags.ghast-fireball.*
- worldguard.region.flag.flags.sleep.*
- worldguard.region.flag.flags.tnt.*
- worldguard.region.flag.flags.lighter.*
- worldguard.region.flag.flags.fire-spread.*
- worldguard.region.flag.flags.lava-fire.*
- worldguard.region.flag.flags.lightning.*
- worldguard.region.flag.flags.chest-access.*
- worldguard.region.flag.flags.water-flow.*
- worldguard.region.flag.flags.lava-flow.*
- worldguard.region.flag.flags.use.*
- worldguard.region.flag.flags.vehicle-place.*
- worldguard.region.flag.flags.vehicle-destroy.*
- worldguard.region.flag.flags.snow-fall.*
- worldguard.region.flag.flags.leaf-decay.*
- worldguard.region.flag.flags.invincible.*
- worldguard.region.flag.flags.entry.*
- worldguard.region.flag.flags.entry-group.*
- worldguard.region.flag.flags.exit.*
- worldguard.region.flag.flags.exit-group.*
- worldguard.region.flag.flags.greeting.*
- worldguard.region.flag.flags.farewell.*
- worldguard.region.flag.flags.deny-spawn.*
- worldguard.region.flag.flags.heal-delay.*
- worldguard.region.flag.flags.heal-amount.*
- worldguard.region.flag.flags.teleport.*
- worldguard.region.flag.flags.spawn.*
- worldguard.region.flag.flags.price.*
- worldguard.region.flag.flags.feed-min-hunger.*
- worldguard.region.flag.flags.feed-max-hunger.*
- worldguard.region.flag.flags.ice-form.*
- worldguard.region.flag.flags.ice-melt.*
- worldguard.region.flag.flags.potion-splash.*
- worldguard.region.flag.flags.pistons.*
- worldguard.region.flag.flags.item-drop.*
- worldguard.region.flag.flags.entity-painting-destroy.*
- worldguard.region.flag.flags.other-explosin.*
- worldguard.region.flag.flags.enderdragon-block-damage.*
- worldguard.region.flag.flags.invincible.*
- worldguard.region.flag.flags.exp-drops.*
- worldguard.region.flag.flags.vehicle-destroy.*
- worldguard.region.flag.flags.entity-item-frame-destroy.*
- worldguard.region.flag.flags.grass-growth.*
- worldguard.region.flag.flags.mycelium-spread.*
- iConomy.holdings
- iConomy.help
- iConomy.accounts.status
- iConomy.payment
- lwc.create
- lwc.remove
- lwc.modify
- lwc.flag.*
- jobs.join.*
- jail.usercmd.jailstick
- jail.usercmd.jailstatus
- jail.usercmd.jailpay
- mcjobs.jobsavail.all
- mcjobs.world.all
- mcjobs.jobs.all
- creativegates.use
- authme.register
- authme.login
- authme.changepassword
- -authme.unregister
- -authme.logout
- spleef.join.1
- spleef.join.2
- spleef.start
- -bukkit.command.version
- herochat.join.*
- herochat.pm
- herochat.leave.*
- herochat.speak.*
- herochat.info.global
- herochat.info.local
- herochat.info.help
- herochat.focus.*
- herochat.autojoin.*
- herochat.force.join.*
- herochat.force.leave.*
- customsay.hear
Тестирование
Не все можно учесть сразу, поэтому созданную сборку нужно сначала запустить на своем компьютере и поиграть. В процессе выяснятся недочеты в правах, настройках плагинов и прочем. Только когда все будет идеально, можно продолжать дальше.
Выбор хостинга и закачка сборки
Лучше всего брать выделенный сервер, чем покупать по слотам. Во-первых, в таком случае вы имеете полный доступ и можете делать что хотите, например, разместить несколько игровых серверов, игровой сайт, почтовый сервер. Во-вторых, проще редактировать свою сборку (у некоторых специализированных сервисов для этого надо писать в тех. поддержку).
Желательно, чтобы физически сервер располагался в той стране, для аудитории которой он создается. Тогда пинги будут заметно короче. Но это не принципиально, сервер, например, в США, имеет пинг до России 100-150ms, а по порту CraftBukkit ~300ms (связано с нагрузкой). Существенные недостатки при этом не замечены.
Выбирать мощность нужно из расчета, что простенький сервер на 2 Гб оперативной памяти с 10-30 плагинами выдерживает ~50 игроков без заметных проблем, в случае, если не нагружен дополнительно из-за плохой настройки или «тяжелых» плагинов.
Я использую этот хостинг, т.к. он не дорогой и за два с половиной месяца ни разу не подвел (недеюсь ссылку на виртуальные и выделенные сервера найдете без подсказки).
Безопасноть и отказоустойчивость
Под ней подразумевается наличие плагинов, защишающих от читеров и атаки ботов. Это — необходимый минимум, пример: NoCheatPlus и AntiBot. По желанию можно предотвратить и x-ray, но такие плагины создают сильную нагрузку. Так же нужно настроить SSH на нестандартный порт, придумать сложный пароль, правилами IPTABLES запретить его подбор и DdoS атаки. Либо использовать специализированное приложение, такое как fail2ban.
Для повышения отказоустойчивости должны быть соблюдены предыдущие условия, чтобы максимально снизить нагрузку и закрыть возможные дыры в безопасности (настройка плагинов и permissions).
В команде запуска сервера нельзя выделать под минимум всю доступную оперативную память: чанки не будут выгружаться и она быстро закончится, а сервер отключится. Команда должна выглядеть примерно так:
Код:
java -Xmx2000M -Xms512M -jar /root/craftbukkit.jar nogui.
Код:
while : ; do sleep 10 && java -Xmx2000M -Xms512M -jar /root/craftbukkit.jar nogui; done
Если выделенный сервер имеет свойство иногда произвольно перезагружаться, то и на этот случай можно сделать автозагрузку через скрипт с таким содержимым:
Код:
#!/bin/sh
screen bash -c 'while : ; do sleep 10 && java -Xmx2000M -Xms512M -jar /root/craftbukkit.jar nogui; done'
Про отказоустойчивость создавал отдельную тему.
Постройка красивого спауна
Спаун — лицо сервера. Он должен быть красив и удобен, при этом не вызывая сильную нагрузку на клиент. Это означает, что там не должно быть сложных механизмов из красной пыли, множества рамок и табличек, мобов. Приглашать игроков можно только после того, как все построено. Естественно, такое важное сооружение должно быть защищено регионом WorldGuard, с выставленными необходимыми флагами (на запрет PVP, перенос блоков эндерменом и прочее).
Постройка магазина
Он необходим, если на сервере есть экономика и плагин работ, чтобы игроки могли купить за игровые деньги то, что им нужно. Цены нельзя делать слишком маленькими или слишком высокими, желательно не делать продажу в магазин (защита от любителей размножать предметы и от сверх-доходов) и не выставлять опасные предметы (яйца призыва мобов).
Создание игрового сайта или группы в соц. сети
Игрокам нужно общаться и получать различную информацию: правила, новости проекта, цены на дополнительные услуги (если такие есть). Для начала хватит и группы, а на сайте можно поставить простенькую заглушку (на многих выделенных серверах уже сразу установлен Apache, лучше, если заглушка будет своя, а не стандартная).
Создание своего игрового клиента (лаунчера)
Его главная цель — защита от читеров. Никакой плагин не сделает это лучше. Фактически, больше он ни для чего не нужен, кроме повышение авторитета сервера.
Раскрутка
К созданию сервера не относится, но является важным пунктом. Продвигать сервер нужно тогда, когда уже все готово. Есть несколько известных способов:
Спам
Суть проста: распространять как можно большее количество заготовленных сообщений по сообществам Вконтакте. В других социальных сетях их практически нет. В день нужно проходить максимальное число групп по несколько раз, а сообщение должно быть привлекательным.
Эффективность покупки рекламы в таких группах достаточно низкая: люди устали и не обращают на нее внимания.
Подписи и сообщения на форумах
Самый известный — rubukkit. Рекламу можно добавит в подписать, а так же в соответствующий раздел. Но это не должно быть спамом, в таких местах ценят содержательность. Нужно участвовать в обсуждениях и показывать свой ум, только тогда получится обратить на себя внимание.
ТОПы
Есть специальные сайты с рейтингами серверов, имеющие высокую посещаемость. Задача в том, чтобы люди голосовали на них за ваш сервер, чтобы он поднимался все выше. На некоторых можно просто купить высокие места и выделение цветом.
Приглашения
Это самый эффективный способ, поднимающий все сервера. Сервер должен быть хорошим, чтобы игроки приглашали друзей. Придется сильно постараться вначале и быть хорошим администратором в дальнейшем.
Статьи и комментарии
Можно рекламировать сервер на тематических сайтах и блогах: где-то добавлять статьи, где-то писать в комментарии. Но делать это грамотно, чтобы не сочли за спам и не удалили.
P.S.
Статья писалась для продажи, но никак не добавляется, причем именно эта. Видимо господь велел добавить ее сюда, чтобы кому-то помочь. Возможно потом каждый пункт распишу отдельно в этой теме и сделаю ссылки на посты в шапке, тогда будет отличное руководство для новичков.
Выражайтесь Корректнее.
