Civilization SMP: serwer narodów w stylu EarthMC od zera

Civilization SMP: serwer narodów w stylu EarthMC od zera

Civilization SMP to nie survival ze znajomymi i nie klasyczne PvP. To serwer, na którym gracze budują miasta na realnej mapie Ziemi, łączą się w narody, zawierają sojusze i prowadzą oblężenia. Poniżej rozłożę na czynniki pierwsze, jak zbudować taki serwer od zera: skąd wziąć mapę, jakie pluginy zainstalować, jak wyważyć ekonomię i wojny, oraz dlaczego bez porządnego anti-cheata to wszystko rozsypie się w pierwszym tygodniu.

Koncept: realna mapa, narody, dyplomacja

Gatunek civilization SMP wyrósł z EarthMC, który wystartował w 2018 i do dziś trzyma 200-400 online w prime time. Idea jest prosta: zamiast losowego świata masz mapę Ziemi w skali 1:500 (43200 na 21600 bloków) lub 1:1000 (21600 na 10800). Gracze spawnują w realnej geografii, na Saharze pustynia, na Syberii tajga, w Amazonii dżungla. To samo z siebie daje lor bez żadnego kanału RP.

Na mapę nakładasz Towny: gracze zakładają miasta, łączą je w narody, podatki zbierają się automatycznie, granice rysują się po chunkach. Dalej dyplomacja: sojusze, umowy handlowe, wojny przez SiegeWar. Na żywej mapie przez addon BlueMap-Towny widać kolorowe poligony terytoriów, flagi stolic i granice.

Główna różnica między civ SMP a zwykłym serwerem Towny: tu mapa nie jest losowa. Gracz wie, gdzie jest, i to ma znaczenie dla warstwy roleplay. Brytyjczyk buduje na Wyspach Brytyjskich, chiński gracz bierze Pekin, ktoś ogłasza Imperium Rzymskie i zagarnia Włochy.

Mapa Ziemi: skąd wziąć i jak postawić

Trzy opcje, w rosnącym wysiłku.

Gotowa TerraMap. Najprostsza droga. Na GitHubie jest kilka projektów pod BukkitGen, generujących Ziemię w odpowiedniej skali. Dostajesz realny relief przez Digital Elevation Models (DEM) i rozkład biomów przez mapę klimatu Köppena. Minus: wymaga moda Terra lub plugina TerraformGenerator i przyzwoitej ilości RAM-u na pre-generację.

Bukkitowe pluginy world generator. Plugin typu Terra (https://modrinth.com/plugin/terra) potrafi w custom landscapes, są pod niego configi Ziemi. Alternatywą jest TerraformGenerator (https://www.spigotmc.org/resources/terraformgenerator.20505/) z paczką Earth.

Import gotowego świata. Na serwerach EarthMC-style często ściąga się czyjąś world-file (legalna szara strefa, lepiej zrobić własną). Na SpigotMC i Modrincie są darmowe world-files Ziemi w 1:1000.

Pod 1:500 potrzebujesz mocnej pre-generacji przez Chunky, inaczej pierwszy gracz, który pójdzie w niezbadany region, zlaguje cały serwer:

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

Na SSD i 16 wątkach to zajmie od 12 do 36 godzin. Rób to przed launchem, nie po.

Bazowy stack pluginów

Stack pod civ SMP jest sprawdzony, nie ma sensu od niego odchodzić.

Core: Paper 1.21+ (https://papermc.io/). Spigot nie wytrzyma obciążenia Towny + BlueMap + 100 online.

Miasta i narody: Towny Advanced (https://townyadvanced.github.io/). De facto standard dla civ SMP. Lands (https://www.spigotmc.org/resources/lands.53313/) też pasuje i wygląda ładniej, ale Towny łatwiej się integruje z SiegeWar i addonami BlueMap.

Wojny: SiegeWar (https://github.com/TownyAdvanced/SiegeWar) to addon do Towny dodający oblężenia miast z banerami, punktami przejęcia i timerami. Alternatywą jest FlagWar (ten sam stack), prostszy system przez przejmowanie flag w roszczeniowych chunkach.

Mapa: BlueMap (https://bluemap.bluecolored.de/) z addonem BlueMap-Towny (https://www.spigotmc.org/resources/bluemap-towny.87788/) wyświetla granice Towny jako kolorowe poligony na mapie 3D.

Bazowe komendy i spawn: EssentialsX (https://essentialsx.net/) - bez realnej alternatywy.

Permisje: LuckPerms (https://luckperms.net/) - do podziału ról admin/burmistrz/naród.

Ekonomia: Vault plus backend, zwykle EssentialsX Economy.

Anti-cheat: GrimAC (https://grim.ac/) lub Vulcan. Bez anti-cheata wojny nie mają sensu, pierwszy killaura zabija motywację legitów. Pod civ SMP od razu konfigurowałbym anti-cheat na średni-strict, bo fly/speed łamią balans oblężeń jako pierwsze.

Ochrona DDoS: civ SMP z przyzwoitym onlinem ściąga ataki od obrażonych graczy i wrogich narodów. Proxy filtrujące potrzebujesz od razu, nie po pierwszym ataku.

Konfiguracja Towny: podatki, chunki, narody

Bazowa towny.yml pod civ SMP wygląda mniej więcej tak:

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

Kluczowe punkty, na których wykładają się nowi adminowie:

Podatki za ostre. Jeśli town_upkeep to 25 przy startowym balansie 100, nowe miasto zbankrutuje w 4 dni. Daj nowicjuszom startowy bonus przez /eco give albo zjedź upkeep do 10-15.

Za mało chunków na rezydenta. Na civ SMP ludzie chcą budować zamki i pola, 8 chunków na rezydenta to rozsądne minimum. EarthMC chodzi obecnie na 16.

Odległość między miastami. min_distance_between_homeblocks na 8 chunków zapobiega siedzeniu miast jedno na drugim. Na dużej Ziemi można podciągnąć do 16.

Spawn w neutralnej lokacji

Spawn nie może być w Europie ani Ameryce Północnej, to natychmiastowy konflikt geopolityczny. EarthMC postawił spawn na Madagaskarze, bo mało kto rości do niego pretensje. Inne serwery dają spawn w Antarktydzie albo na osobnej pływającej wyspie.

Idea: spawn jest neutralny, stamtąd gracze teleportują się do każdego miasta przez /t spawn <town> (zwykle za pieniądze, żeby nie było taniego trawelu). Sam spawn ustawia się przez EssentialsX:

/setspawn
/setwarp safespawn

I chroni regionem WorldGuard (https://dev.bukkit.org/projects/worldguard) z flagami pvp deny, build deny, mob-spawning deny.

Wojny przez SiegeWar

SiegeWar to najbardziej niuansowa część. Dodaje oblężenia: atakujący stawia baner blisko miasta, startuje timer na 3-7 dni czasu rzeczywistego, w którym atakujący i obrońcy zbierają punkty na specjalnym punkcie kontrolnym. Kto zbierze więcej, ten bierze miasto.

Bazowy SiegeWar/config.yml wymaga tuningu:

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

Co zwykle psuje oblężenia:

Za krótki timer. 1 dzień jest niesprawiedliwy dla obrońców z innych stref czasowych. 7 dni za długo i nudno. 3 dni to norma.

Brak reguł co do cannonów. Działa TNT rozwalają mury obronne. Jeśli chcesz klasyczne oblężenia bez TNT, wyłącz wybuchy przez Towny explosions: false albo WorldGuard.

Sojusznicy włażą na point. Domyślnie w SiegeWar punkt mogą capture'ować tylko uczestnicy konfliktu. Sojusznicze narody dochodzą przez /n ally add i dopiero wtedy mogą bronić.

BlueMap i wizualizacja narodów

Bez BlueMap civ SMP traci pół uroku. Gracze wchodzą na stronę, widzą granice narodów jako kolorowe poligony, klikają na miasto i czytają opis. To marketing i narzędzie dyplomacji jednocześnie.

Instalacja addonu BlueMap-Towny:

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

W plugins/BlueMapTowny/config.yml ustawiasz domyślny kolor poligonu, grubość granic, wyświetlanie nazw miast i tooltipów na najechaniu. Każdy naród może wybrać swój kolor przez /n set mapcolor <hex>.

BlueMap potrzebuje serwera webowego (nginx) i otwartego portu na zewnątrz. Na dużym świecie render mapy zajmuje godziny i mocno obciąża dysk, postaw na osobny dysk albo nocne re-renderowania.

Dyplomacja: sojusze, handel, ambasady

Towny daje /n ally add <nation> i /n enemy add <nation> z pudełka. Tego mało do porządnej dyplomacji. Co zwykle się dodaje:

Umowy handlowe. Przez Quickshop-Hikari (https://www.spigotmc.org/resources/quickshop-hikari.100748/) gracze stawiają shop-bloki w dowolnym mieście. Podatek na handel w obcym mieście konfiguruje się przez Towny town_tax_rate.

Chunki ambasady. W Towny to /plot set embassy. Dowolny gracz może kupić chunk-ambasadę w obcym mieście i postawić tam teleport. Bazowa dyplomacja podróżna.

Integracja z Discordem. DiscordSRV (https://www.spigotmc.org/resources/discordsrv.18494/) łączy chat in-game z Discordem. Prywatne kanały per naród przez addon DiscordSRV-Towny.

Anty-grief i Wild rules

Wewnątrz claimowanych chunków miasta Towny chroni wszystko. Wróg nie złamie bloków w cudzym mieście bez oblężenia. Ale poza strefą claim (w "Wild") griefing jest domyślnie dozwolony.

To normalne dla civ SMP: dzikie ziemie to szara strefa, w której można budować pułapki i bazy raiderskie. Ale spawn i neutralne regiony muszą być chronione osobno przez WorldGuard.

W paper-world-defaults.yml włącz minimum:

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

Anti-xray w engine-mode 2 to obowiązek. Na civ SMP ludzie polują na diamenty i netherite, x-ray cheat psuje ekonomię szybciej niż cokolwiek innego.

Sprzęt i online

Civ SMP średnio trzyma 50-200 online przy 10-16 GB RAM. Wąskim gardłem nie jest CPU, tylko liczba załadowanych chunków. Na mapie Ziemi w 1:500 mieszkańcy rozłażą się po całej planecie i serwer musi trzymać dziesiątki tysięcy chunków w pamięci jednocześnie.

Bazowa konfiguracja pod 100 online:

  • CPU: Ryzen 7 7700X albo Intel i7-13700 (single-core performance jest krytyczny)
  • RAM: 16 GB DDR5, z czego 12 GB JVM heap
  • SSD: NVMe minimum 500 GB (BlueMap zżera 50-150 GB na pełną mapę)
  • Sieć: anti-DDoS proxy obowiązkowo

Aikar's flags pod G1GC działają dobrze do 100 online. Pod 200+ przesiadasz się na ZGC albo Folię.

FAQ

Skąd wziąć mapę Ziemi do Minecrafta

Bukkitowe Terra albo TerraformGenerator generują Ziemię w wybranej skali. Są też gotowe BlueMap world-files na SpigotMC i GitHubie. EarthMC używa custom generatora na bazie danych DEM i mapy biomów Köppena.

Czy EarthMC można zrobić na crackedzie

Technicznie tak, przez online-mode=false plus AuthMe do rejestracji. W praktyce cracked civ SMP ściąga zalew altów i cheaterów. Jeśli idziesz w cracked, ustaw GrimAC na maksimum, IP-limit połączeń i 2FA przez bota Discord.

Jak skonfigurować oblężenie miasta

W SiegeWar atakujący stawia baner w promieniu 7 chunków od miasta, startuje timer na 3-7 dni. Obie strony zbierają punkty za zabójstwa i kontrolę punktu. Config jest w plugins/SiegeWar/config.yml. Najważniejsze, żeby zbalansować długość tak, by obrońcy z każdej strefy czasowej mogli zagrać.

Towny czy Lands pod civ SMP

Towny to standard gatunku, pod niego napisano SiegeWar, BlueMap-Towny i dziesiątki innych addonów. Lands wygląda ładniej i jest prostszy dla gracza, ale ekosystem addonów mniejszy. Jeśli chcesz klasyczny EarthMC z oblężeniami i narodami, bierz Towny. Jeśli robisz lżejszy survival z systemem claimów, Lands lepszy.

Ile RAM-u na civ SMP przy 100 online

Minimum 12 GB JVM heap, polecam 16 GB. Przy 200 online jesteś na 24-32 GB. Chunki Towny ładują się i siedzą w pamięci długo, plus render BlueMap. Stawiaj na sprzęt z DDR5 i szybkim NVMe.

Jak ochronić civ SMP przed DDoS

Civ SMP z publiczną mapą i narodami szybko staje się celem. Filtracja proxy plus Cloudflare Spectrum albo dedykowany Minecraft anti-DDoS pokrywają ataki L4. Pod L7 (fake połączenia) potrzebujesz filtra z analizą behawioralną, który oddziela boty od legitów zanim zasypią serwer handshake'ami.

Co dalej

Jeśli dopiero zaczynasz, moja rada: zbuduj serwer na 1:1000 (mapa mniejsza, render szybszy), startowy online 20-30 osób z własnej community, bazowy Towny + BlueMap bez SiegeWar. Jak ludzie się zadomowią i zaczną kłócić o granice, wtedy włączasz oblężenia.

Z praktyki: civ SMP żyje na warstwie roleplay. Technicznie postawisz serwer w weekend, ale bez aktywnego community managera, serwera Discord i regularnych eventów umrze w miesiąc. Zarezerwuj czas na dyplomację graczy, nie tylko na config.


Chroń swój serwer przed atakami DDoS

Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.

Wypróbuj za darmo


Powiązane artykuły