Civilization SMP: как поднять сервер наций в стиле EarthMC

Civilization SMP: как поднять сервер наций в стиле EarthMC

Civilization SMP - это не survival с друзьями и не классический PvP. Это сервер, где игроки строят города на реальной карте Земли, объединяются в нации, заключают альянсы и ведут осады. Ниже разберём как собрать такой сервер с нуля: где брать карту, какие плагины ставить, как настроить экономику и войны, и почему без анти-чита всё это рассыпется на первой неделе.

Концепция: реальная карта, нации, дипломатия

Жанр civilization SMP вырос из EarthMC, который запустился ещё в 2018 году и до сих пор держит 200-400 онлайн в прайм. Идея простая: вместо рандомного мира у вас карта Земли в масштабе 1:500 (43200 на 21600 блоков) или 1:1000 (21600 на 10800). Игроки спавнятся в реальной географии - в Сахаре будет пустыня, в Сибири тайга, в Амазонии джунгли. Это сразу даёт лор без всякого RP-канала.

Поверх карты накатывается Towny: игроки создают города, объединяют их в нации, налоги собираются автоматически, границы рисуются по чанкам. Дальше уже дипломатия: альянсы, торговые соглашения, войны через SiegeWar. На карте через BlueMap-Towny аддон видно цветные полигоны территорий, флаги столиц и границы.

Главное отличие civ SMP от обычного Towny-сервера: тут карта не случайная. Игрок понимает, где находится, и это важно для ролевой составляющей. Британец строит на Британских островах, китаец берёт Пекин, кто-то заявляет про себя Римскую империю и захватывает Италию.

Карта Земли: где взять и как поставить

Вариантов три, по убыванию усилий.

Готовая TerraMap. Самый простой путь. На GitHub есть несколько проектов под BukkitGen, генерирующих Землю в нужном масштабе. Это даёт реальный рельеф высот через цифровую модель местности (DEM) и распределение биомов через Köppen climate map. Минус: требует мода Terra или плагина TerraformGenerator и приличной памяти на пред-генерацию.

Bukkit world generator плагины. Плагин типа Terra (https://modrinth.com/plugin/terra) умеет в кастомные ландшафты, под него есть конфиги Земли. Альтернатива - TerraformGenerator (https://www.spigotmc.org/resources/terraformgenerator.20505/) с пакетом Earth.

Импорт готового мира. На EarthMC-стиль серверах часто скачивают чужой мир-файл (legal grey area, лучше делать свой). На SpigotMC и Modrinth есть свободные world-файлы Земли в 1:1000.

Под 1:500 нужна сильная пред-генерация через Chunky, иначе первый игрок, который пойдёт в неизведанный регион, лагнет всем сервером:

/chunky world world
/chunky center 0 0
/chunky radius 21600
/chunky shape rectangle
/chunky start

На SSD и 16 потоках это займёт от 12 до 36 часов. Делайте до запуска, не после.

Базовый стек плагинов

Под civ SMP стек проверенный, отступать от него смысла мало.

Ядро: Paper 1.21+ (https://papermc.io/). Spigot не тянет нагрузку Towny + BlueMap + 100 онлайн.

Города и нации: Towny Advanced (https://townyadvanced.github.io/). Это де-факто стандарт для civ SMP. Lands (https://www.spigotmc.org/resources/lands.53313/) тоже подходит и даже красивее визуально, но Towny проще в плане совместимости с SiegeWar и BlueMap-аддонами.

Войны: SiegeWar (https://github.com/TownyAdvanced/SiegeWar) - аддон к Towny, добавляет осады городов с баннерами, точками захвата и таймерами. Альтернатива FlagWar (тот же стек) - более простая система через захват флагов в претензионных чанках.

Карта: BlueMap (https://bluemap.bluecolored.de/) с аддоном BlueMap-Towny (https://www.spigotmc.org/resources/bluemap-towny.87788/) или BlueMapAddon для отображения границ Towny цветными полигонами на 3D-карте.

Базовые команды и спавн: EssentialsX (https://essentialsx.net/) - тут особо без вариантов.

Права: LuckPerms (https://luckperms.net/) - для разделения админ/мэр/нация ролей.

Экономика: Vault + любой backend, обычно EssentialsX Economy.

Анти-чит: GrimAC (https://grim.ac/) или Vulcan. Без анти-чита войны бессмысленны - первый же killaura убьёт мотивацию у легитов. К слову, под civ SMP я бы сразу настраивал анти-чит на средний-строгий, потому что fly/speed ломают баланс осад в первую очередь.

Защита от DDoS: civ SMP с приличным онлайном собирает атаки от обиженных игроков и враждебных наций. Прокси с фильтрацией нужен сразу, не после первой атаки.

Настройка Towny: налоги, чанки, нации

Базовый towny.yml под civ SMP выглядит примерно так:

new_world_settings:
  using_towny: true
  pvp: true
  forcepvp: false
  explosions: false
  firespread: false

economy:
  enabled: true
  daily_taxes:
    new_town_min_distance_from_town_plots: 5
    town_upkeep: 25.0
    nation_upkeep: 100.0
  prices:
    price_new_town: 250.0
    price_new_nation: 1000.0
    price_claim_townblock: 25.0

town:
  max_townblocks: 16
  max_residents: 0
  max_townblocks_per_resident: 8
  min_distance_between_homeblocks: 8

nation:
  max_towns_per_nation: 100
  capital_must_be_largest_town: false

Важные моменты, на которых ломаются новые админы:

Налоги слишком жёсткие. Если town_upkeep 25 при стартовом балансе 100, новый город обанкротится за 4 дня. Дайте новичкам стартовый бонус через /eco give, или подкрутьте upkeep до 10-15.

Чанков на жителя слишком мало. На civ SMP люди хотят строить замки и поля, 8 чанков на резидента - это разумный минимум. На EarthMC сейчас 16.

Расстояние между городами. min_distance_between_homeblocks в 8 чанков - это чтобы не было городов вплотную. На большой Земле можно ставить и 16.

Спавн на нейтральной локации

Спавн нельзя ставить в Европе или Северной Америке - это сразу геополитический конфликт. EarthMC поставил спавн на Мадагаскаре, потому что мало кто заявляет на него права. Другие серверы делают спавн в Антарктиде или на отдельном острове-плоти.

Идея: спавн нейтрален, оттуда игрок телепортируется в любой город через /t spawn <town> (обычно за деньги, чтобы не было читерского трэвела). Сам спавн делается через EssentialsX:

/setspawn
/setwarp safespawn

И защищается WorldGuard регионом (https://dev.bukkit.org/projects/worldguard) с флагами pvp deny, build deny, mob-spawning deny.

Войны через SiegeWar

SiegeWar - это самая нюансная часть. Он добавляет осады: атакующий ставит баннер рядом с городом, начинается таймер на 3-7 дней реального времени, в течение которого атакующие и защитники набирают очки на специальной точке. Кто наберёт больше - тот и взял город.

Базовый конфиг SiegeWar/config.yml требует подкрутки:

war:
  siege:
    enabled: true
    minimum_townships_for_siege: 0
    max_active_sieges_per_town: 1
    siege_duration_days: 3
    siege_camp_duration_minutes: 30
    banner_to_town_max_height_deviation: 60
  battle:
    points_for_kill: 100
    points_for_banner_control_per_minute: 50

Что обычно ломает осады:

Слишком короткий таймер. 1 день - это нечестно для защитников из других тайм-зон. 7 дней - слишком долго и скучно. 3 дня - норма.

Нет правил по cannons. TNT-пушки разрушают защитные стены. Если хотите классические осады без TNT, выключите взрывы через Towny explosions: false или WorldGuard.

Союзники лезут на point control. В SiegeWar по умолчанию точку могут захватывать только участники конфликта. Нации-союзники присоединяются через /n ally add и тогда могут защищать.

BlueMap и визуализация наций

Без BlueMap civ SMP теряет половину очарования. Игроки заходят на сайт, видят границы наций цветными полигонами, кликают на город и читают описание. Это маркетинг и одновременно инструмент дипломатии.

Установка BlueMap-Towny аддона:

# в plugins/
wget https://github.com/TownyAdvanced/BlueMap-Towny/releases/download/2.6/BlueMap-Towny-2.6.jar

В plugins/BlueMapTowny/config.yml настраивается цвет полигонов по умолчанию, толщина границ, отображение названий городов и подсказок при наведении. Каждая нация может задать свой цвет через /n set mapcolor <hex>.

Под BlueMap нужен веб-сервер (nginx) и порт открытый наружу. На большом мире рендер карты занимает часы и сильно нагружает диск, ставьте на отдельный диск или ночные регенерации.

Дипломатия: альянсы, торговля, посольства

Towny из коробки даёт /n ally add <nation> и /n enemy add <nation>. Этого мало для нормальной дипломатии. Что обычно добавляют:

Торговые соглашения. Через Quickshop-Hikari (https://www.spigotmc.org/resources/quickshop-hikari.100748/) игроки ставят shop-блоки в любом городе. Налог на торговлю в чужом городе настраивается через Towny town_tax_rate.

Посольства (embassy chunks). В Towny это /plot set embassy. Любой игрок может купить чанк-посольство в чужом городе и поставить там телепорт. Это базовая дипломатия для путешествий.

Discord интеграция. DiscordSRV (https://www.spigotmc.org/resources/discordsrv.18494/) даёт чат между игрой и Дискордом. Под нации отдельные приватные каналы делаются через DiscordSRV-Towny аддон.

Анти-griff и Wild rules

Внутри claimed чанков города всё защищено Towny. Враг не может ломать блоки в чужом городе без осады. Но за пределами claim-зоны (в "Wild") по умолчанию griff разрешён.

Это нормально для civ SMP: дикие земли - это серая зона, где можно строить ловушки и базы для рейдеров. Однако спавн и нейтральные регионы должны быть защищены отдельно через WorldGuard.

В paper-world-defaults.yml включите хотя бы базовое:

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    chunk-edge-mode: true
chunks:
  prevent-moving-into-unloaded-chunks: true

Anti-xray в engine-mode 2 - это обязательно. На civ SMP люди ищут diamonds и netherite, x-ray-чит ломает экономику быстрее всего.

Железо и онлайн

Civ SMP в среднем держит 50-200 онлайн при 10-16 GB RAM. Узкое место - не CPU, а количество загруженных чанков. На карте Земли в 1:500 жители расползаются по всей планете, и сервер вынужден держать в памяти десятки тысяч чанков одновременно.

Базовая конфигурация под 100 онлайн:

  • CPU: Ryzen 7 7700X или Intel i7-13700 (1-tick performance критичен)
  • RAM: 16 GB DDR5, из них 12 GB JVM heap
  • SSD: NVMe минимум 500 GB (BlueMap съедает 50-150 GB на полную карту)
  • Сеть: анти-DDoS прокси обязательно

Aikar's flags под G1GC хорошо работают до 100 онлайн. Под 200+ переключайтесь на ZGC или Folia.

FAQ

Где взять карту Земли для Minecraft

Готовые genами Terra или TerraformGenerator (Bukkit плагины) умеют генерировать Землю в нужном масштабе. Также есть BlueMap-готовые world-файлы на SpigotMC и GitHub. EarthMC использует кастомный генератор на базе DEM-данных и Köppen карты биомов.

EarthMC можно ли сделать на крекеде

Технически да, через online-mode=false и AuthMe для регистрации. На практике крекед civ SMP получает наплыв альтов и читеров. Если делаете крекед, ставьте GrimAC на максимальную строгость, IP-лимит подключений и 2FA через Discord-бот.

Как настроить осаду города (siege)

В SiegeWar атакующий ставит баннер в радиусе 7 чанков от города, начинается таймер на 3-7 дней. Обе стороны набирают очки за убийства и контроль над точкой. Конфиг в plugins/SiegeWar/config.yml. Главное - сбалансировать длительность так, чтобы защитники из всех тайм-зон могли отыграть.

Что лучше Towny или Lands для civ SMP

Towny стандарт жанра, к нему написаны SiegeWar, BlueMap-Towny и десятки других аддонов. Lands визуально приятнее и проще для игрока, но экосистема аддонов меньше. Если хотите классический EarthMC-стиль с осадами и нациями, берите Towny. Если делаете более лёгкий survival с claim-системой, Lands лучше.

Сколько GB RAM нужно для civ SMP на 100 онлайн

Минимум 12 GB JVM heap, рекомендую 16 GB. На 200 онлайн уже 24-32 GB. Чанки от Towny загружаются и держатся в памяти долго, плюс BlueMap-рендер. Ставьте на железо с DDR5 и быстрым NVMe.

Как защитить civ SMP от DDoS

Civ SMP с публичной картой и нациями быстро становится мишенью. Прокси-фильтрация и Cloudflare Spectrum или специализированный Minecraft-anti-DDoS закрывают L4-атаки. Для L7 (фейковые подключения) нужен фильтр с поведенческим анализом, который отделяет ботов от легитов до того как они засыпали handshake'ами.

Что дальше

Если только начинаете, советую: соберите сервер на 1:1000 (карта поменьше, рендер быстрее), стартовый онлайн 20-30 человек из своего коммьюнити, базовый Towny + BlueMap без SiegeWar. Когда люди обживутся и начнут ругаться из-за границ, тогда подключайте осады.

Из практики: civ SMP живёт на ролевой составляющей. Технически сервер можно поднять за выходные, но без активного коммьюнити-менеджера, Discord-сервера и регулярных эвентов он умрёт за месяц. Заложите время на дипломатию игроков, не только на код конфигов.


Protégez votre serveur contre les attaques DDoS

Protection gratuite avec configuration en 5 minutes. 1 To de bande passante inclus.

Essayer gratuitement


Articles connexes