RE:NODE

Minecraft11 წუთის საკითხავი

Paper, Fabric თუ vanilla: რომელი სერვერის პროგრამა გაუშვა

რისთვის არის Minecraft-ის თითოეული სერვერის jar, plugin-ები და mod-ები, Paper-ის fork-ები, რომლებიც ღირს ცოდნად, და როგორ გადახვიდე ერთიდან მეორეზე სამყაროს დაკარგვის გარეშე.

განახლებულია

2 მკითხველი

ეს ერთი და იგივე რამის სამი ვერსია არ არის. Vanilla თამაშის საკუთარი სერვერია, უცვლელი. Paper მისი ძლიერ გადაწერილი fork-ია, შექმნილი სისწრაფისა და plugin-ებისთვის. Fabric mod loader-ია, რომელიც plugin-ებს საერთოდ არ უშვებს. მათ შორის არჩევა სინამდვილეში არჩევაა იმისა, რისი დამატება გინდა მოგვიანებით, და პრაქტიკული გამყოფი ხაზი ერთი კითხვაა: გინდა, რომ ხალხი მხოლოდ მისამართის აკრეფით შემოვიდეს და სხვა არაფრით? თუ კი, plugin-ები გჭირდება, ანუ Paper. თუ გინდა ახალი ბლოკები, მანქანები და განზომილებები, mod loader გჭირდება და ყველა pack-ს აყენებს. ქვემოთ ყველაფერი ამის დეტალებია.

სამი რამ, რომელთა შორისაც ნამდვილად არჩევ#

გენეალოგიური ხის ნახვა გვეხმარება, რადგან სახელები უფრო გასაგები ხდება, როცა იცი, რა რისგან გამოიყო.

Mojang სერვერიეტალონიCraftBukkitBukkit APIFabricmod loaderForge, NeoForgemod loaderSpigotდაფატჩული CraftBukkitPaperplugin-ები, სისწრაფეPurpur, PufferfishPaper-ის fork-ები
საიდან მოდის თითოეული სერვერის jar

მარცხენა ჯაჭვში ყველაფერი Bukkit API-ს აჩვენებს, სწორედ ამიტომ ტვირთავს ხშირად Paper დღესაც 2014 წელს CraftBukkit-ისთვის დაწერილ plugin-ს. მარჯვენა ჯაჭვში ყველაფერი თამაშის საკუთარ კოდს პირდაპირ ფატჩავს, სწორედ ამიტომ ტყდება mod-ები თამაშის ყოველ განახლებაზე, plugin-ები კი ჩვეულებრივ არა.

ერთი რამ, რაც ყველას აქვს საერთო: მთავარი tick ციკლი ერთთრედიანია. Chunk-ების გენერაცია, ფაილების ჩაწერა და ქსელი თანამედროვე ვერსიებზე მისგან გარეთ ხდება, მაგრამ თავად სიმულაცია - mob-ები, redstone, hopper-ები, ბლოკების განახლებები - vanilla-ზე, Paper-ზე, Fabric-სა და Forge-ზე ერთ thread-ზე მუშაობს. სწორედ ამიტომ არის Minecraft სერვერისთვის სიხშირე ბირთვების რაოდენობაზე მნიშვნელოვანი და ამიტომ არის "მეტი ბირთვი" lag-ის გამოსწორება იშვიათად. ერთადერთი ძირითადი გამონაკლისი Folia-ა, ქვემოთ.

Vanilla: ეტალონური იმპლემენტაცია#

Mojang-ის გამოქვეყნებული სერვერის jar. eula.txt-ში EULA-ს იღებ, უშვებ და გაქვს ზუსტად თამაში, redstone-ის თავისებურებებისა და mob-ფერმების ზღვრული შემთხვევების ჩათვლით.

bash
$ java -Xms2G -Xmx2G -jar server.jar --nogui

რისთვის არის კარგი:

  • სისწორე. თუ შენი მოთამაშეები ააგებენ მანქანებს, რომლებიც განახლების ზუსტ თანმიმდევრობაზეა დამოკიდებული, ან ამოწმებ, მუშაობს თუ არა ფერმის დიზაინი, სანამ ააშენებ, vanilla ერთადერთი პასუხია, რომელიც განსაზღვრებით სწორია.
  • Snapshot-ები და გამოშვების დღე. Vanilla ხელმისაწვდომია ვერსიის გამოშვების მომენტში. Paper და mod loader-ები დღეებიდან თვეებამდე ჩამორჩებიან.
  • Datapack-ები. Datapack ცვლის რეცეპტებს, loot table-ებს, advancement-ებს, predicate-ებსა და ფუნქციებს სერვერის პროგრამის ცვლილების გარეშე და კლიენტზე არაფრის დაყენების გარეშე. Vanilla მათ უშვებს და ამ გვერდზე ყველაფერიც. "შეგვიძლია X-ის შეცვლა" ტიპის ბევრი მოთხოვნისთვის datapack მთელი პასუხია.

რაშიც ცუდია, ის ყველაფერია, რაც community-ის მართვას ეხება. Operator-ის დონეების გარდა permission-ების სისტემა არ არის, მიწის დაცვა არ არის, ბლოკების ლოგირება არ არის, ეკონომიკა არ არის, და არ არსებობს გზა, დაინახო, ვინ რა გატეხა. და ის ყველაზე ნელია ვარიანტებიდან მასშტაბზე, რადგან არცერთი ოპტიმიზაცია, რომელიც ზღვრულ ქცევას ცვლის, არ არის გამოყენებული. Vanilla კარგი არჩევანია ოთხი მეგობრისთვის და ცუდი ორმოცი უცნობისთვის.

Paper: plugin სერვერი, რომელსაც თითქმის ყველა უშვებს#

Paper არის vanilla, სადაც ძვირი გზები გადაწერილია, ბაგების დიდი ნაკრებია გასწორებული, რამდენიმე ასეული კონფიგურაციის პარამეტრია დამატებული და Bukkit/Spigot plugin API მიმაგრებული. იმავე მოთამაშეების რაოდენობაზე იმავე სამყაროზე ის vanilla-ზე დაბალ MSPT-ს იძლევა, და ხარვეზი იზრდება, რაც entity-ების რაოდენობა იმატებს, რადგან entity-ების tick-ი, hopper-ების ქცევა, chunk-ების ჩატვირთვა და განათების გავრცელება ის ადგილებია, სადაც გადაწერის უმეტესობა მოხდა.

ის ასევე გაძლევს ერთის ნაცვლად ხუთ კონფიგურაციის ფაილს:

ფაილირა ცხოვრობს მასში
server.propertiesVanilla-ს საკუთარი პარამეტრები: port-ები, დისტანციები, სირთულე, whitelist
bukkit.ymlSpawn-ის ლიმიტები კატეგორიის მიხედვით, chunk GC, tick-ები spawn ციკლზე
spigot.ymlEntity-ების აქტივაციის რადიუსები, გაერთიანების რადიუსები, mob-ების spawn-ის რადიუსი
config/paper-global.ymlPaper-ის სერვერული პარამეტრები, unsupported-settings-ის ჩათვლით
config/paper-world-defaults.ymlPaper-ის პარამეტრები სამყაროზე, თითოეულ სამყაროზე გადასაფარი

Paper-მა საკუთარი config ამ ბოლო ორ ფაილად 1.19-ზე გაყო; ძველი გზამკვლევები, რომლებიც ერთ paper.yml-ზე საუბრობენ, მოძველებულია. Paper-ის ოპტიმიზაციის გზამკვლევი ყოველ მათგანში იმ პარამეტრებს გადის, რომლებიც რეალურად ცვლიან სურათს.

გარიგება ქცევაშია. Paper ასწორებს იმას, რასაც vanilla თავის თავისებურებად თვლის, და ზოგი ფერმა ამ თავისებურებებზეა დამოკიდებული. config/paper-global.yml-ში unsupported-settings ბლოკი სწორედ იმისთვის არსებობს, რომ რამდენიმე მათგანი უკან ჩართო - რომელ ჩანაწერებს სთავაზობს, ვერსიებს შორის იცვლება, ამიტომ წაიკითხე ფაილი, რომელიც გაქვს და არა ძველ ვერსიაზე პოსტი. Paper-ს ასევე შეუძლია redstone-ის იმპლემენტაცია გაცილებით იაფით შეცვალოს, რაც დიდი მოგებაა redstone-ით სავსე სერვერზე და ზღვრულ შემთხვევებში დახვეწილი ქცევის ცვლილება. თუ შენი community ტექნიკური მოთამაშეებითაა სავსე, უთხარი, რომელ სერვერის პროგრამას უშვებ, სანამ ისინი დიზაინზე შაბათ-კვირას დახარჯავენ.

Spigot ისევ არსებობს და Paper მისი drop-in ჩამნაცვლებელია: იგივე plugin-ები, იგივე spigot.yml, მკაცრად მეტი კონფიგურაცია და მკაცრად უკეთესი სისწრაფე. არ დარჩენილა მიზეზი, ახალ სერვერზე Spigot Paper-ს ამჯობინო.

Fabric და mod loader-ები#

Fabric არის loader mod-ებისთვის, რომლებიც თავად თამაშს ცვლიან. ესაა მთელი განსხვავება: plugin API-ს ელაპარაკება, რომელსაც სერვერი აჩვენებს, mod კი თამაშის საკუთარ class-ებს ხელახლა წერს. შედეგები მაშინვე გამომდინარეობს.

  • კლიენტებს იგივე mod-ები სჭირდებათ. ყველაფერი, რაც შინაარსს ამატებს ან წესებს ცვლის, ორივე მხარეს იმავე ვერსიაზე უნდა არსებობდეს, თორემ კლიენტი გაგდებულია ან desync-დება. მოთამაშეები pack-ს launcher-ით აყენებენ და მისამართს არ აკრეფენ.
  • Mod-ები თამაშის ყოველ განახლებაზე ტყდება და ავტორებს ელოდება. Fabric სერვერს ჩვეულებრივ შეუძლია თამაშს კვირა-ორ კვირაში გაჰყვეს; Forge ან NeoForge pack თვეების განმავლობაში სრული ვერსიით ჩამორჩება.
  • Plugin API არ არის. Fabric Bukkit plugin-ს არ ტვირთავს და კონფიგურაცია ამას ვერ შეცვლის. ზოგი ნაცნობი ხელსაწყო გადატანილია - LuckPerms-ს Fabric build აქვს და არსებობს სერვერის მხარის mod-ები ბლოკების ლოგირებისა და ჩატის ფორმატირებისთვის - მაგრამ ეკოსისტემა გაცილებით პატარაა.
  • Fabric API ცალკე mod-ია. თითქმის ყველა Fabric mod მასზეა დამოკიდებული და მისი დავიწყება პირველი გაშვების ყველაზე გავრცელებული ჩავარდნაა.

Forge და NeoForge იმავე კატეგორიაში არიან უფრო გრძელი ისტორიითა და უფრო მძიმე pack-ებით. modded სერვერი crash-ების გარეშე ფარავს pack-ის დაყენებას, Java-ს ვერსიების ცხრილს და როგორ წაიკითხო crash report, როცა ერთ-ერთი არ იწყება.

Fabric-ს ასევე აქვს ნამდვილად კარგი მიზეზი, არსებობდეს არა-modded სერვერზე: მხოლოდ სერვერის მხარის მწარმოებლურობის mod-ები. Lithium, FerriteCore და Krypton ისეთს არაფერს ცვლიან, რასაც მოთამაშე დაინახავს, კლიენტზე არაფერს მოითხოვენ და Fabric სერვერს შესამჩნევად ხდიან იაფს. vanilla-ს მაგვარი სერვერი Fabric-ზე სამი მწარმოებლურობის mod-ით რეალური ვარიანტია, თუ vanilla-ს ქცევა გინდა vanilla-ს ღირებულების გარეშე - და Paper-ისგან განსხვავებით, ზღვრულ ქცევას ინახავს.

Plugin-ები თუ mod-ები: ხაზი, რომელიც წყვეტს#

თითქმის ყველა კითხვა "რომელი გავუშვა" ამ ცხრილში გროვდება.

რა გინდაგაუშვიმოთამაშეები აყენებენ
მიწის claim-ები, permission-ები, ეკონომიკა, სახლებიPaperარაფერს
ახალი ბლოკები, მანქანები, mob-ები, განზომილებებიFabric, Forge ან NeoForgePack-ს
ზუსტი vanilla ქცევა ტესტირებისთვისVanillaარაფერს
Vanilla ქცევა, სერვერის უფრო დაბალი ღირებულებაFabric მხოლოდ სერვერის მხარის mod-ებითარაფერს
კონსოლისა და მობილურის მოთამაშეებიBedrock, ან Paper Geyser-ითარაფერს
რამდენიმე სამყარო ერთი მისამართის უკანVelocity Paper backend-ების წინარაფერს

Bedrock-ის მწკრივი ნამდვილად სხვა პროგრამაა და არა კიდევ ერთი jar - Bedrock თუ Java არის შედარება, ხოლო Geyser და Floodgate ხიდია, თუ ორივე გინდა. Velocity-ის მწკრივი ის არის, რასაც მაშინ მიმართავ, როცა ერთი სერვერი აღარ ჰყოფნის: proxy საჯარო port-ს ინახავს და მოთამაშეებს lobby, survival და minigame backend-ებზე გადასცემს, რომლებიც დამოუკიდებლად შეიძლება დაარესტარტო. Velocity ქსელის აგება ფარავს forwarding secret-ს, რაც ნაწილია, რომელსაც ხალხი არასწორად აკეთებს.

Paper-ის fork-ები, რომლებიც ღირს ცოდნად#

სამი fork მუდმივად ჩნდება და თითოეული ვიწრო პრობლემას წყვეტს.

  • Purpur არის Paper პლუს თამაშის გადამრთველების ძალიან დიდი რაოდენობა: პარამეტრები თითოეული mob-ისთვის, ამხედრებადი mob-ები, კონფიგურირებადი end-crystal-ის ქცევა, purpur.yml სავსე რამეებით, რომლებსაც vanilla არასოდეს გამოაჩენდა. იგივე plugin-ები, იგივე სისწრაფის პროფილი. აიღე, თუ ღილაკები გინდა, უგულებელყავი, თუ არა.
  • Pufferfish არის Paper უფრო მკაცრად მორგებული სისწრაფეზე, mob-ების ასინქრონული pathfinding-ით და entity AI-ის დინამიკური შეზღუდვით დისტანციის მიხედვით. ის ქცევითი სიზუსტის მცირე ნაწილს ცვლის დატვირთულ სერვერებზე tick time-ში.
  • Folia არის PaperMC-ის რეგიონებად დაყოფილი მრავალთრედიანი fork. ის სამყაროს ცალ-ცალკე tick-ად რეგიონებად ყოფს thread-ებზე, რაც ერთთრედიანი ჭერის ერთადერთი რეალური პასუხია. დაბრკოლება მძიმეა: plugin-ები სპეციალურად Folia-სთვის უნდა იყოს დაწერილი და უმეტესობა არ არის. ის შექმნილია დიდ სამყაროზე გადანაწილებული მოთამაშეების ძალიან დიდი რაოდენობისთვის და არა ორმოცდაათმოთამაშიანი SMP-სთვის, სადაც ყველა ერთ ქალაქშია.

Sponge ხსენების ღირსია, როგორც მეორე plugin პლატფორმა: საკუთარი API, ხელმისაწვდომია როგორც vanilla-სთვის, ისე Forge-ისთვის, გაცილებით მცირე plugin ეკოსისტემით. ეს გონივრული არჩევანია, თუ შენთვის საჭირო plugin-ები Sponge-ისაა, და ცუდი - სხვა შემთხვევაში.

თითქმის ყველასთვის პასუხი უბრალო Paper-ია. Fork-ები გადაწყვეტილების ოპტიმიზაციებია და არა თავად გადაწყვეტილება.

გადართვა ერთიდან მეორეზე სამყაროს დაკარგვის გარეშე#

სამყარო უმეტეს გადასვლას გადაურჩება. რასაც არ გადაურჩება, ის ყველაფერია, რაც mod-მა დაამატა, და რაც ხალხს ეჭირება, საქაღალდეების განლაგებაა.

Vanilla სამივე განზომილებას ერთ სამყაროს საქაღალდეში ინახავს: world/region, world/DIM-1/region Nether-ისთვის, world/DIM1/region End-ისთვის. Paper და ყველა Bukkit-დან წარმოშობილი სერვერი ყოფს მათ world, world_nether და world_the_end-ად ზედა დონეზე. Fabric და Forge vanilla-ს განლაგებას მისდევენ. ასე:

  1. სერვერი სწორად გააჩერე და დაელოდე save-ის დასრულებას. სამყაროს არასოდეს დააკოპირებ მომუშავე სერვერის ქვემოდან.
  2. გააკეთე backup, რომლის აღდგენაც მართლა შეგიძლია და არა ასლი იმავე საქაღალდეში. Backup-ები, რომლებიც მართლა აღდგება განმარტავს განსხვავებას, და პანელის backup-ები სწორედ ამიტომ ინახება იმ მანქანის გარეთ, რომელსაც იცავენ.
  3. Vanilla-დან ან Fabric-დან Paper-ზე გადასვლისას: შექმენი world_nether და world_the_end, გადაიტანე world/DIM-1 პირველში და world/DIM1 მეორეში, შიდა საქაღალდეების სახელების შენარჩუნებით. შემდეგ ჩააგდე Paper jar და გაუშვი.
  4. Paper-იდან უკან vanilla-ზე ან Fabric-ზე: პირიქით. ორი განზომილების საქაღალდე უკან world-ში გადაიტანე. Paper-ის დამატებითი ფაილები და plugins საქაღალდე უბრალოდ უგულებელყოფილია.
  5. გაუშვი, როცა ონლაინ არავინ არის, შემდეგ შედი და შეამოწმე კონკრეტულად Nether და End. თუ რომელიმე სრულიად ახალი სამყაროა, საქაღალდის გადატანა არასწორია და შენი ორიგინალი მონაცემები ისევ სხვა სახელით არსებობს.

Modded-იდან unmodded-ზე გადასვლა ერთადერთია, რომელიც რამეს კარგავს. Vanilla და Paper ბლოკებს, რომლებსაც არ იცნობენ, ჰაერით ცვლიან და უცნობ ნივთებს ჩუმად აგდებენ. Forge ამის ნაცვლად სამყაროს ჩატვირთვაზე უარს ამბობს, რომელსაც registry-ის ჩანაწერები აკლია, სანამ არ დაადასტურებ, რომ დანაკარგს იღებ. ორივე შემთხვევაში ჯერ backup გააკეთე და მოელოდე ხვრელებს იქ, სადაც მანქანები იყო. საპირისპირო მიმართულებით - არსებულ vanilla სამყაროს mod loader-ის დამატება - უსაფრთხოა, რადგან ჯერ არაფერი აკლია.

ვერსიის განახლებები ცალკე პრობლემაა იმავე დისციპლინით; Minecraft-ის ვერსიის განახლებები ფარავს მათ rollback-ის გარეშე გაკეთებას.

რას ვუშვებთ ჩვენ და რატომ არის ეს Paper#

აქ Minecraft-ის ხაზი აწვდის Paper-ს, Java-ს ვერსიით, რომელიც Minecraft-ის ვერსიას ემთხვევა, EULA-თი უკვე მიღებულით და სამყაროთი, რომელიც პირველ შესვლამდე გენერირებულია. ეს ნეიტრალურობა არ არის - ეს იგივე რეკომენდაციაა, რასაც ეს პოსტი იძლევა, შეფუთული. Paper არის ის, რასაც მოთამაშეების მცირე რაოდენობაზე მეტი სერვერების აბსოლუტური უმრავლესობა ბოლოს უშვებს, და სხვაგან დაწყება ნიშნავს სამუშაოთი დაწყებას.

თუ სხვა რამ გინდა, დაბლოკილი არ ხარ: file manager და SFTP შენია, დაშვებული jar-ებისა და mod-ების სია არ არსებობს და startup ცვლადები რედაქტირებადია. მაგრამ ეს შენი ინსტალაციაა. Fabric-ზე, Forge-ზე ან modpack-ზე ერთი დაწკაპუნებით გადართვა არ არსებობს და პანელმა არ იცის, რა არის .mrpack. დაუთმე საღამო, შეინახე vanilla სამყაროს backup და ჯერ წაიკითხე ორი loader-ის პოსტი.

რასაც არ უნდა უშვებდე, რამდენი RAM სჭირდება Minecraft სერვერს უცვლელად მოქმედებს - jar tick-ის ღირებულებას მეხსიერების კვალზე ბევრად მეტად ცვლის.

FAQ#

Paper Spigot-ზე უკეთესია?

დიახ, რეალური დათქმის გარეშე. Paper Spigot-ის fork-ია, რომელიც იგივე plugin API-ს ინახავს, რამდენიმე ასეულ კონფიგურაციის პარამეტრს ამატებს და tick-ის ძვირ ნაწილებს გადაწერს. Spigot-ის ყველა plugin Paper-ზე მუშაობს. არ დარჩენილა სცენარი, სადაც ახალმა სერვერმა Spigot უნდა აირჩიოს.

შემიძლია plugin-ების გაშვება Fabric-ზე?

არა. Plugin-ები Bukkit API-ს მიემართებიან, რომელსაც Fabric არ ახორციელებს. ზოგ ცნობილ ხელსაწყოს Fabric პორტი აქვს - მათ შორის LuckPerms - და Fabric-ს საკუთარი სერვერის მხარის mod-ები აქვს ლოგირებისა და ჩატისთვის, მაგრამ კატალოგი გაცილებით მცირეა. ფენები, რომლებიც აცხადებენ, რომ Bukkit plugin-ებს Fabric-ზე უშვებენ, არსებობს და საიმედო არ არის.

Paper-ზე გადასვლა შლის ჩემს სამყაროს?

არა, მაგრამ აწყობს თავიდან. Paper Nether-სა და End-ს ცალკე ზედა დონის საქაღალდეებად ყოფს, ამიტომ ეს ორი განზომილება ცარიელი ჩანს, სანამ DIM-1-სა და DIM1-ს world_nether-სა და world_the_end-ში არ გადაიტან. Overworld შეხების გარეშე გადადის. დაწყებამდე გააკეთე backup და შემდეგ ორივე განზომილება შეამოწმე.

შეამჩნევენ ჩემი მოთამაშეები განსხვავებას Paper-სა და vanilla-ს შორის?

უმეტესობა ვერა. ტექნიკური მოთამაშეები კი: Paper ცვლის განახლების თანმიმდევრობის ზოგ ზღვრულ შემთხვევას და ასწორებს ბაგებს, რომლებზეც გარკვეული ფერმის დიზაინები არის დამოკიდებული. თუ შენი community მანქანებს აშენებს, წინასწარ თქვი, რომელ სერვერის პროგრამას უშვებ, და რამის დაპირებამდე წაიკითხე unsupported-settings ბლოკი config/paper-global.yml-ში.

რომელი უნდა გამოიყენოს პატარა მეგობრების სერვერმა?

Paper, თითქმის ყოველთვის. ის vanilla-ზე სწრაფია, გაშვება არაფერი ღირს და კარს ღიას ტოვებს მიწის claim-ებისა და permission-ებისთვის მოგვიანებით, მიგრაციის გარეშე. Vanilla აირჩიე მხოლოდ თუ ზუსტი ქცევა ხელსაწყოებზე მნიშვნელოვანია, ხოლო mod loader - მხოლოდ თუ ყველას ერთი modpack გინდათ.

რაც შეეხება Folia-ს დიდი სერვერისთვის?

მხოლოდ თუ შენი მოთამაშეების რაოდენობა ნამდვილად დიდია და გადანაწილებულია, და მხოლოდ თუ plugin-ებს, რომლებზეც დამოკიდებული ხარ, მხარს უჭერენ. Folia-ს რეგიონული threading ერთთრედიანი ჭერის ნამდვილი პასუხია, მაგრამ Paper-ისთვის დაწერილი plugin მასზე უცვლელად არ იმუშავებს, და ხალხმრავალი spawn რეგიონებისგან სარგებელს არ იღებს.


კომენტარები

სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.

0/2000