RE:NODE

სახელმძღვანელოები14 წუთის საკითხავი

Don't Starve Together სერვერი: cluster, გამოქვაბულები და მოდები

როგორ დააყენო DST-ის dedicated cluster სწორად: Klei token, cluster.ini და server.ini, Master და Caves shard-ები, პორტები, ადმინები, rollback-ები და workshop მოდები.

0 მკითხველი

Don't Starve Together-ის dedicated სერვერი ერთი პროგრამა არ არის. ეს cluster-ია: საერთო კონფიგურაციის საქაღალდე და თითო სერვერული პროცესი ყოველ სამყაროზე. თითქმის ყველას ორი სჭირდება - Forest, როგორც Master shard, და Caves, როგორც მეორადი shard - და სწორედ ეს ერთი ფაქტი განასხვავებს DST-ის ჰოსტინგს ამ ბლოგზე აღწერილი ყველა სხვა თამაშისგან. ორი პროცესი, ორი პორტი, ორი მოდების ნაკრები, ერთი save. დაუმატე უფასო Klei cluster token, რომელსაც შენ მაგივრად ვერავინ შექმნის, და მთელი სურათი გაქვს. ეს გზამკვლევი გადის ყველა ფაილს, ყველა პარამეტრს და იმ შეცდომებს, რის გამოც ადამიანები უყურებენ სერვერს, რომელიც ირთვება და სიაში მაინც არ ჩნდება.

რა არის cluster: shard-ები, Master და Caves#

shard არის ერთი სერვერული პროცესი, რომელიც ერთ სამყაროს უშვებს. cluster არის shard-ების ერთობლიობა, რომლებსაც აქვთ საერთო სახელი, პაროლი, ადმინების სია და save. ზუსტად ერთი shard არის Master; დანარჩენები მას უერთდებიან. პირობითად, Master უშვებს Forest-ს, ხოლო ერთი მეორადი shard - Caves-ს, ამიტომ საქაღალდეებს ჩვეულებრივ Master და Caves ჰქვია.

როცა მოთამაშე ჩაყრილში ეშვება, ის იმავე სამყაროს ახალ ადგილს არ ტვირთავს. ის ერთ სერვერულ პროცესს წყდება და მეორეს უერთდება, პერსონაჟი კი shard-ებს შორის კავშირით გადაეცემა. ეს DST-ის ბევრ თავისებურებას ხსნის:

  • Caves-ს აქვს საკუთარი დღეების მრიცხველი, სეზონის საკუთარი მდგომარეობა და სამყაროს საკუთარი პარამეტრები.
  • Caves shard სულ მუშაობს, ქვემოთ ვინმე არის თუ არა.
  • თუ Caves-ის პროცესი მკვდარია, ჩაყრილები გამოქვაბულების მიუწვდომლობას აცხადებს, Forest კი სრულიად მშვიდად განაგრძობს მუშაობას.
  • rollback თითო shard-ზე ცალ-ცალკეა, სანამ ორივეს ერთად არ დააბრუნებ - ასე ხვდებიან ადამიანები Forest-ში 210-ე დღეზე და Caves-ში 195-ე დღეზე.
joinUDP 10889autosaveautosaveმოთამაშეებიერთი მისამართი, ორი სამყაროMaster shardForest, UDP 10999Caves shardCaves, UDP 10998Cluster savesession საქაღალდე
cluster არის ორი სერვერული პროცესი ერთ save-ზე

შეგიძლია Forest-ზე დაფუძნებული cluster გაუშვა და ის კარგად იმუშავებს; Caves shard არჩევითია. მაგრამ თამაშის გვიანდელი ნაწილის დიდი ნაწილი სწორედ იქაა, ამიტომ მიიჩნიე ის სტანდარტად და თავიდანვე ორი პროცესისთვის გათვალე რესურსები.

მოთხოვნები და რესურსების მოხმარება#

თითოეული shard ცალკე, ძირითადად ერთნაკადიანი პროცესია. ამიტომ ორ shard-ს ერთი სწრაფი ბირთვის ნაცვლად ორი ბირთვი უნდა - ეს უმეტესი გადარჩენის თამაშების რჩევის საპირისპიროა.

კონფიგურაციაRAMCPUშენიშვნები
მხოლოდ Forest, 1-4 მოთამაშე1 GB0.75-1 ბირთვიერთი პროცესი, პატარა სამყარო
Forest და Caves, 6-მდე2 GB1-1.5 ბირთვიჩვეულებრივი შემთხვევა
Forest და Caves, 8-10, რამდენიმე მოდი3-4 GB2 ბირთვიორივე shard ერთდროულად დატვირთულია
გრძელი სამყარო, 500+ დღე, მძიმე მოდები4-6 GB2+ ბირთვიობიექტების რაოდენობა იზრდება ყველაფერთან ერთად, რასაც აშენებ
  • მეხსიერება shard-ებს შორის ნაწილდება, დახვეწილ სამყაროში დაახლოებით თანაბრად. მხოლოდ Forest shard-ს დასაწყისში 512-700 MB კომფორტულად ჰყოფნის და იზრდება, რაც რუკა შეისწავლება და შენდება.
  • CPU იხარჯება ობიექტების სიმულაციაზე, ხოლო DST-ის სამყაროები ობიექტებს დაუნდობლად აგროვებენ - ყოველი დაგდებული ნივთი, ყოველი დარგული ხე, ყოველი ნავი. მესამე ზაფხულში მყოფი სამყარო შესამჩნევად უფრო ძვირი ჯდება, ვიდრე ახალი.
  • დისკი მცირეა. ინსტალაცია რამდენიმე გიგაბაიტია, save-ის მონაცემები კი მეგაბაიტებია და არა გიგაბაიტები.
  • ქსელი ზომიერია და tick_rate-სა და მოთამაშეების რაოდენობასთან ერთად იზრდება.

pause_when_empty = true არის პარამეტრი, რომელიც პატარა გეგმებს სიცოცხლისუნარიანს ხდის: როცა არავინ არის დაკავშირებული, სიმულაცია ჩერდება და ორივე shard თითქმის არაფერს ხარჯავს.

ინსტალაცია, Klei token და საქაღალდეების სტრუქტურა#

dedicated სერვერი უფასო ანონიმური SteamCMD ჩამოტვირთვაა, app id 343050. თამაში იმ ანგარიშზე გჭირდება, რომლითაც აყენებ, აუცილებელი არ არის.

bash
$ steamcmd +force_install_dir /home/dst/server +login anonymous \    +app_update 343050 validate +quit

შესრულებადი ფაილებია bin64/dontstarve_dedicated_server_nullrenderer_x64 და 32-ბიტიანი bin/dontstarve_dedicated_server_nullrenderer. ისინი საკუთარი საქაღალდიდან უნდა გაეშვას.

კონფიგურაცია ინსტალაციასთან არ ცხოვრობს. ის cluster-ის საქაღალდეშია, მომხმარებლის Klei დირექტორიაში:

code
~/.klei/DoNotStarveTogether/MyDediServer/  cluster.ini              settings shared by every shard  cluster_token.txt        your Klei token, nothing else in the file  adminlist.txt            one Klei user id per line  whitelist.txt  blocklist.txt  Master/    server.ini    worldgenoverride.lua    modoverrides.lua    save/  Caves/    server.ini    worldgenoverride.lua    modoverrides.lua    save/

token არის ნაწილი, რომლის გამოტოვებაც არ შეიძლება. შედი Klei-ს ანგარიშების საიტზე, გახსენი Don't Starve Together-ის სერვერების განყოფილება, დაამატე სერვერი და დააკოპირე გაცემული token. ჩასვი ის cluster_token.txt-ში, როგორც ფაილის ერთადერთი შიგთავსი - ბრჭყალების და ბოლოში დამატებითი ტექსტის გარეშე. ის უფასოა, შენს Klei ანგარიშზეა მიბმული და Klei უარყოფს ყველა token-ს, რომელიც მან არ გასცა, სწორედ ამიტომ ვერც ერთი ჰოსტი ვერ შექმნის მას შენთვის. ერთი token-ით ორი ცოცხალი cluster-ის გაშვება ერთ-ერთს გათიშავს, ამიტომ ყოველ სერვერზე ცალკე token შექმენი.

RE:NODE ამას ინსტალაციის დაწყებამდე ითხოვს: Don't Starve Together ერთ-ერთია იმ მცირე რაოდენობის თამაშიდან, რომელსაც შენი საკუთარი credential სჭირდება; თავად სერვერი იქმნება, როგორც კი გადახდა დასრულდება, ინსტალაცია კი Setup ჩანართში ელოდება, სანამ token-ს ჩასვამ.

შემდეგ გაუშვი ორივე shard. შენს საკუთარ მანქანაზე ეს ორი ბრძანებაა, ჩვეულებრივ ორი სერვისი:

bash
$ cd /home/dst/server/bin64$ ./dontstarve_dedicated_server_nullrenderer_x64 \    -console -cluster MyDediServer -shard Master$ ./dontstarve_dedicated_server_nullrenderer_x64 \    -console -cluster MyDediServer -shard Caves

სასარგებლო flag-ები: -console რთავს კონსოლის შეყვანას, -cluster ირჩევს cluster-ის საქაღალდეს, -shard ირჩევს shard-ის საქაღალდეს მის შიგნით, -persistent_storage_root მთელ Klei დირექტორიას სხვაგან გადააქვს, ხოლო -monitor_parent_process shard-ს აჩერებს, როცა მისი ზედამხედველი გაჩერდება - ეს ბრმად დარჩენილ Caves პროცესებს აჩერებს.

Caves shard-ს უნდა ეთქვას, რომ ახალი ტყის ნაცვლად გამოქვაბულების სამყარო შექმნას. ამას Caves საქაღალდეში მდებარე worldgenoverride.lua აკეთებს:

Caves/worldgenoverride.lua
return {  override_enabled = true,  preset = "DST_CAVE",}

Master-ის ექვივალენტი იყენებს preset = "SURVIVAL_TOGETHER"-ს. თუ აქ შეცდები, გექნება cluster ორი ტყით და გამოქვაბულების გარეშე, რასაც Caves სამყაროს თავიდან გენერაციის გარეშე ვერ გამოასწორებ.

cluster.ini, პარამეტრი პარამეტრზე#

ერთი ფაილი, ოთხი-ხუთი სექცია, საერთო cluster-ის ყველა shard-ისთვის.

cluster.ini
[GAMEPLAY]game_mode = survivalmax_players = 6pvp = falsepause_when_empty = truevote_enabled = true[NETWORK]cluster_name = The Long Wintercluster_description = Cooperative, mods on, no griefingcluster_password = hollow-stalagmitecluster_intention = cooperativelan_only_cluster = falseoffline_cluster = falsetick_rate = 15whitelist_slots = 0autosaver_enabled = true[MISC]console_enabled = truemax_snapshots = 6[SHARD]shard_enabled = truebind_ip = 127.0.0.1master_ip = 127.0.0.1master_port = 10889cluster_key = a-long-random-string[STEAM]steam_group_only = falsesteam_group_id = 0steam_group_admins = false
პარამეტრინაგულისხმევირას აკეთებს
game_modesurvivalsurvival, endless ან wilderness
max_players6ჯამში მთელ cluster-ზე და არა თითო shard-ზე
pvpfalseმოთამაშეების დაზიანება
pause_when_emptyfalseჩერდება სიმულაცია, როცა არავინაა ონლაინ
vote_enabledtrueთამაშში kick და rollback კენჭისყრა
cluster_intention-cooperative, social, competitive ან madness
cluster_password-ცარიელი ნიშნავს, რომ ყველას შეუძლია შემოსვლა
offline_clusterfalseKlei სერვისების, ბრაუზერში ჩვენების და მოდების გარეშე
lan_only_clusterfalseმხოლოდ ლოკალური ქსელი
tick_rate15სერვერის განახლება წამში
whitelist_slots0whitelist-ში მყოფი მოთამაშეებისთვის დაცული ადგილები
autosaver_enabledtruesave ყოველ დაღამებაზე
console_enabledtrueრთავს თამაშის და სერვერის კონსოლს
max_snapshots6რამდენი rollback წერტილი ინახება
shard_enabledfalseორ-shard-იანი cluster-ისთვის უნდა იყოს true
master_port10889shard-იდან shard-მდე კავშირი და არა მოთამაშეების პორტი
cluster_key-საერთო საიდუმლო shard-ებს შორის, ნებისმიერი სტრიქონი

ამათგან ოთხი თითო წინადადებას იმსახურებს.

`shard_enabled`. თუ ის false-ია, Caves shard ჩაირთვება, Master-ს ვერ იპოვის და ადგილზე დარჩება. ეს ყველაზე გავრცელებული მიზეზია, როცა Caves-ის პროცესი მუშაობს, ჩაყრილები კი მაინც ამბობს, რომ გამოქვაბულები მიუწვდომელია.

`cluster_key` და `master_port`. shard-ები ერთმანეთს გასაღებით ამოიცნობენ და master_ip-ზე master_port-ით საუბრობენ. როცა ორივე shard ერთ მანქანაზეა, დატოვე ისინი 127.0.0.1-სა და 10889-ზე; ეს ტრაფიკი მანქანის გარეთ არასოდეს უნდა გავიდეს და გამოაშკარავებული არ უნდა იყოს.

`tick_rate`. თხუთმეტი ნაგულისხმევია და კოოპერატიული ჯგუფისთვის კარგია. 30-მდე ამაღლება ბრძოლას უფრო მკვეთრს ხდის და დაახლოებით ორჯერ ზრდის როგორც CPU-ს ხარჯს მოთამაშეზე, ისე გამტარუნარიანობას. პატარა გეგმაზე ეს გაცვლა ჩვეულებრივ არ ღირს.

`offline_cluster`. მისი true-ზე დაყენება cluster-ს Klei-სგან სრულად წყვეტს - token არ სჭირდება, სერვერების ბრაუზერში ჩანაწერი არ იქნება და workshop მოდებიც არ იმუშავებს. ეს LAN party-ისთვისაა და არა სერვერისთვის, რომელიც გინდა, რომ ხალხმა იპოვოს.

server.ini და პორტები, რომლებიც თითო shard-ს სჭირდება#

თითოეულ shard-ის საქაღალდეს საკუთარი server.ini აქვს და მნიშვნელობები shard-ებს შორის განსხვავებული უნდა იყოს:

Master/server.ini
[NETWORK]server_port = 10999[SHARD]is_master = true[STEAM]master_server_port = 27018authentication_port = 8768[ACCOUNT]encode_user_path = true
Caves/server.ini
[NETWORK]server_port = 10998[SHARD]is_master = falsename = Cavesid = 2[STEAM]master_server_port = 27019authentication_port = 8769[ACCOUNT]encode_user_path = true
პორტიპროტოკოლიდანიშნულება
10999UDPMaster shard, პორტი, რომელსაც მოთამაშეები უერთდებიან
10998UDPCaves shard
27018 / 27019UDPSteam master server, თითო shard-ზე ერთი
8768 / 8769UDPSteam authentication, თითო shard-ზე ერთი
10889UDPshard-ებს შორის კავშირი, მხოლოდ loopback

DST-ის ყველაფერი UDP-ზეა. თითოეულ shard-ს სჭირდება საკუთარი server_port, საკუთარი master_server_port და საკუთარი authentication_port, სხვა ყველა shard-ისგან განსხვავებული - ამ სამიდან რომელიმეს გაზიარება არის მიზეზი, რის გამოც ერთი shard ირთვება, მეორე კი ჩუმად არა. თუ გინდა, რომ LAN აღმოჩენა იმუშავოს, დატოვე server_port 10998-11018 დიაპაზონში; ინტერნეტ თამაშისთვის ნებისმიერი თავისუფალი პორტი კარგია. იმის მიზეზები, თუ რატომ არსებობს საერთოდ query ტიპის პორტები, აღწერილია პოსტში გეიმ სერვერის პორტები ახსნილი.

is_master არის ის, რაც shard-ს Master-ად აქცევს. ერთ cluster-ში ორი shard is_master = true-ით cluster-ია, რომელიც არ დაუკავშირდება. id თითო shard-ზე უნიკალური უნდა იყოს, ხოლო name არის იარლიყი, რომელსაც თამაში ამ სამყაროსთვის აჩვენებს.

პანელზე ამათ ხელით იმდენად ხშირად არ ცვლი, როგორც ფიქრობ - პორტები შენთვის გამოიყოფა. RE:NODE-ის Don't Starve Together გეგმებს ორი გამოყოფა მოჰყვება, ხოლო დამატებითი პორტები Network ჩანართზე ემატება და იშლება, თუ მესამე shard გინდა.

მოთამაშეები სერვერს თამაშის ბრაუზერში პოულობენ, სახელით გაფილტრულს. პირდაპირი დაკავშირებაც მუშაობს: გახსენი კონსოლი თამაშში backtick კლავიშით და გაუშვი c_connect("203.0.113.10", 10999, "hollow-stalagmite"). ეს საიმედო გზაა, როცა ბრაუზერი ნელია, და ერთადერთი გზა, თუ სია ჯერ არ განახლებულა.

ადმინები, whitelist და ბლოკის სია#

სამი უბრალო ტექსტური ფაილი cluster-ის საქაღალდეში, თითო Klei user id ხაზზე. Klei id-ები ასე გამოიყურება: KU_aB3dEf7h, და თითო ანგარიშზე უცვლელია.

adminlist.txt
KU_aB3dEf7hKU_9zQ2mNp1

whitelist.txt whitelist_slots-თან მუშაობს: თუ ექვსმოთამაშიან სერვერზე whitelist_slots = 2-ს დააყენებ, ოთხი ადგილი ყველასთვის ღიაა, ორი კი ჩამოთვლილი მოთამაშეებისთვის რჩება, მაშინაც კი, როცა სერვერი სავსეა. blocklist.txt არის ban-ების სია და მას სერვერი წერს, როცა თამაშში ვინმეს ბანავ.

მოთამაშის id-ის გასაგებად საიმედო გზაა, ერთხელ შემოვიდეს და კონსოლში გაუშვას c_listallplayers(), რომელიც ყველა დაკავშირებულ მოთამაშეს მათი id-ით ბეჭდავს. მოთამაშეებს საკუთარი id Klei-ს ანგარიშის გვერდზეც შეუძლიათ ნახონ. ფაილები shard-ის დაწყებისას იკითხება, ამიტომ დაამატე id-ები და გადატვირთე, ან თამაშში დანიშნე და სერვერს ფაილი თვითონ ჩაწერინე.

კონსოლის ბრძანებები, rollback-ები და snapshot-ები#

DST-ის კონსოლი Lua-ა. ბრძანებები იწერება shard-ის კონსოლში - პანელის კონსოლის ველში, ან თამაშის კონსოლში, რომელსაც backtick-ით ხსნი, თუ ადმინი ხარ. თამაშში კონსოლს აქვს ლოკალური და დისტანციური რეჟიმი; დისტანციური ბრძანებას სერვერს უგზავნის, მათ შორის გადართვა კი control-ისა და backtick-ის ერთად დაჭერით ხდება. სერვერის ბრძანების ლოკალურ რეჟიმში გაშვება არის მიზეზი, რის გამოც არაფერი ხდება.

ბრძანებარას აკეთებს
c_save()save-ს მაშინვე წერს
c_shutdown()ინახავს და აჩერებს shard-ს
c_shutdown(false)აჩერებს შენახვის გარეშე
c_rollback(1)ამ shard-ს ერთი snapshot-ით უკან აბრუნებს
c_regenerateworld()შლის ამ სამყაროს და ახალს ქმნის
c_reset()shard-ს თავისი ბოლო save-იდან თავიდან ტვირთავს
c_announce("text")სერვერის შეტყობინება ყველასთვის
c_listallplayers()ყველა დაკავშირებული მოთამაშე თავისი Klei id-ით
TheNet:Kick("KU_aB3dEf7h")გააგდებს
TheNet:Ban("KU_aB3dEf7h")ბანავს და ბლოკის სიაში წერს
c_spawn("deerclops")prefab-ს ქმნის კურსორთან
c_give("goldnugget", 10)ნივთებს აძლევს არჩეულ მოთამაშეს
c_freecrafting()არჩეული მოთამაშისთვის უფასო crafting-ს რთავს და ითიშავს

snapshot-ები DST-ის საკუთარი rollback წერტილებია, max_snapshots-ით შეზღუდული და shard-ის save საქაღალდეში ინახება. c_rollback(2) მათგან ორით უკან მიდის. ამის შესახებ ორი რამ ხალხს ჭირვებს. snapshot-ები თითო shard-ზეა, ამიტომ Forest-ის Caves-ის გარეშე დაბრუნება ორ სამყაროს სხვადასხვა დღეზე ტოვებს - დააბრუნე ორივე, სწრაფად ერთმანეთის მიყოლებით. და snapshot-ები იმავე დისკზე ცხოვრობს, რაზეც save, ამიტომ ისინი გიცავს ცუდი გადაწყვეტილებისგან და არა დაკარგული სერვერისგან.

ნამდვილი backup-ები სხვაგან უნდა იყოს. RE:NODE-ზე ყველა Don't Starve Together გეგმა შეიცავს backup slot-ებს, რომლებიც ინახება მანქანის გარეთ, რომელსაც იცავენ, და აღდგება ღილაკით, ხოლო Schedules ჩანართი cron გამოსახულებით აიღებს ერთს - ღამის ასლი და ერთი მოდის დაყენებამდე გონივრული მოდელია. Backup-ები, რომლებიც მართლა აღდგება ხსნის, რატომ არის აღდგენის ნახევარი ის ნახევარი, რომელიც მნიშვნელოვანია, ხოლო გეგმიური ამოცანები, რომლებიც ღირს შეიცავს კიდევ ბევრ მისაბაძ ნიმუშს.

მოდები dedicated cluster-ზე#

Workshop მოდები dedicated სერვერზე ორნაბიჯიანი საქმეა და რომელიმე ნაბიჯის გამოტოვება არის მიზეზი, რის გამოც უმეტესობის მოდები არ იტვირთება.

პირველი ნაბიჯი: უთხარი სერვერს, რომ ჩამოტვირთოს ისინი. თამაშის ინსტალაციის დირექტორიაში mods/dedicated_server_mods_setup.lua ჩამოთვლის, რა უნდა მოიტანოს SteamCMD-მ დაწყებისას:

mods/dedicated_server_mods_setup.lua
ServerModSetup("1595631294")ServerModSetup("375850593")ServerModCollectionSetup("1234567890")

რიცხვები workshop ფაილების id-ებია, აღებული მოდის workshop URL-ის ბოლოდან. ServerModCollectionSetup იღებს კოლექციის id-ს და ყველაფერს ჩამოიტანს, რაც მასშია, რაც დიდი სიის მოვლისთვის გაცილებით ადვილია.

მეორე ნაბიჯი: ჩართე ისინი თითო shard-ზე. ყოველი shard-ის საქაღალდეში არსებული modoverrides.lua წყვეტს, რომელი ჩამოტვირთული მოდი არის ნამდვილად ჩართული, და მათ კონფიგურაციასაც ატარებს:

Master/modoverrides.lua
return {  ["workshop-1595631294"] = {    enabled = true,    configuration_options = {      ["language"] = "en",    },  },  ["workshop-375850593"] = {    enabled = true,  },}

გასაღები არის სიტყვასიტყვითი სტრიქონი workshop-, რომელსაც id მოსდევს. ყველაფერი, რაც სამყაროს ცვლის, ერთსა და იმავე ჩანაწერს საჭიროებს როგორც Master/modoverrides.lua-ში, ისე Caves/modoverrides.lua-ში, იდენტური პარამეტრებით - ერთ shard-ზე ჩართული და მეორეზე არა მოდი იწვევს prefab-ების ნაკლებობას და ავარიებს, როცა მოთამაშე მათ შორის გადადის. ყველაზე მარტივი დისციპლინა არის, ერთი ფაილი გქონდეს და ორივე საქაღალდეში გადააკოპირო.

კლიენტებს შესვლისას შესაბამისი მოდების ავტომატურად ჩამოტვირთვა ევალებათ, სწორედ ამიტომ სჭირდება მოდიან cluster-ს offline_cluster = false. მოდები workshop-ზე განახლდება, როცა მათი ავტორები გამოაქვეყნებენ, ხოლო DST-ის განახლება მათ გარკვეულ ნაწილს გატეხავს, ამიტომ cluster-ს backup აიღე თამაშის patch-მდე და ნუ გაგიკვირდება, თუ პირველი გაშვება მის შემდეგ ჩავარდება. workshop კონტენტის ზოგადი მექანიკა სერვერებზე აღწერილია პოსტში Steam Workshop მოდები dedicated სერვერებზე, ხოლო აღდგენის წესი - პოსტში რა უნდა გააკეთო, როცა მოდის განახლება ყველაფერს ამსხვრევს.

პრობლემების გადაჭრა#

"Your server will not start without a token." cluster_token.txt არ არის, ცარიელია, არასწორ საქაღალდეშია, ან token-ის გარდა რამეს შეიცავს. ის cluster-ის საქაღალდეშია და არა shard-ის საქაღალდეში.

სერვერი მუშაობს, მაგრამ ბრაუზერში არ ჩანს. შეამოწმე, რომ offline_cluster და lan_only_cluster ორივე false-ია, token მოქმედია და იმავე token-ს სხვა ცოცხალი cluster არ იყენებს. სცადე c_connect თამაშის კონსოლიდან: თუ პირდაპირი დაკავშირება მუშაობს, სერვერი კარგადაა და მხოლოდ სიაშია პრობლემა.

გამოქვაბულები თამაშში მიუწვდომელია. ან Caves-ის პროცესი არ მუშაობს, ან კავშირია გაწყვეტილი. შეამოწმე shard_enabled = true cluster.ini-ში, is_master = false Caves/server.ini-ში, რომ ორივე shard-ს ერთი და იგივე cluster_key აქვს და რომ ორ shard-ს განსხვავებული server_port, master_server_port და authentication_port აქვს.

ერთი shard ირთვება, მეორე მაშინვე ითიშება. თითქმის ყოველთვის ორ server.ini ფაილს შორის პორტების კოლიზიაა, ან ორ shard-ს ერთნაირი id აქვს.

მოდები არ იტვირთება. დარწმუნდი, რომ id ჩანს როგორც dedicated_server_mods_setup.lua-ში, ისე თითოეულ modoverrides.lua-ში, რომ overrides-ში workshop- პრეფიქსი არის და cluster offline არ არის. shard-ის ლოგი ყოველ ჩატვირთულ მოდს სახელით ბეჭდავს.

სამყარო rollback-ის შემდეგ არასწორ დღეზეა. ერთი shard დააბრუნე. მეორეც იმავე რაოდენობის snapshot-ით დააბრუნე და ორივე გადატვირთე.

ორივე shard განმეორებით ირთვება თავიდან. პირველ რიგში მეხსიერების ლიმიტი შეამოწმე. ერთი shard-ისთვის გათვლილ cluster-ს ლიმიტთან შეაჩერებს, როგორც კი Caves დაგენერირდება, ხოლო crash loop ჩვეულებრივ რესურსების ამოწურვაა და არა კონფიგურაციის შეცდომა - რატომ იტვირთება შენი გეიმ სერვერი განუწყვეტლივ თავიდან გაჩვენებს, როგორ განასხვავო ისინი.

FAQ#

მჭირდება საკუთარი Klei token?

დიახ, და ის შენი უნდა იყოს. ის უფასოა შენი Klei ანგარიშის გვერდიდან და ერთ წუთს მოითხოვს, მაგრამ Klei უარყოფს ყველა token-ს, რომელიც ამ ანგარიშს არ გაუცია, ამიტომ ვერც ერთი ჰოსტი ვერ მოგაწვდის მას. ყოველ cluster-ზე, რომელსაც უშვებ, ცალკე token შექმენი.

შემიძლია Don't Starve Together გამოქვაბულების გარეშე გავუშვა?

დიახ. მხოლოდ Forest-ის cluster ერთი shard და ერთი პორტია და სრულად მუშაობს. კარგავ გამოქვაბულების კონტენტს, რაც შუა და გვიანდელი თამაშის უმეტესი ნაწილია, ხოლო გამოქვაბულების მოგვიანებით დამატება ნიშნავს ახალი გამოქვაბულების სამყაროს გენერაციას და არა არსებულის გამოჩენას.

რამდენი მოთამაშის დატევა შეუძლია DST სერვერს?

max_players ნაგულისხმევად 6-ია და შეიძლება გაიზარდოს. პრაქტიკული ზღვარი არის დახვეწილი სამყაროს CPU ხარჯი და ის, რამდენი griefing-ის კონტროლისთვის ხარ მზად; უმეტესი ჯგუფი 6-სა და 10-ს შორის ჩერდება. ლიმიტი მთელ cluster-ს ითვლის და არა თითოეულ shard-ს.

სად ცხოვრობს save სინამდვილეში?

save-ში, თითოეული shard-ის საქაღალდის შიგნით, cluster-ის დირექტორიაში. Forest-სა და Caves-ს ცალკე save მონაცემები აქვთ, სწორედ ამიტომ არის rollback-ები თითო shard-ზე. backup აიღე მთელი cluster-ის საქაღალდის და არა ერთი shard-ის.

რატომ მუშაობს ჩემი მოდები Forest-ზე და Caves-ს ამსხვრევს?

იმიტომ, რომ modoverrides.lua თითო shard-ზეა და ორი ფაილი ერთმანეთს დაშორდა. ნებისმიერი მოდი, რომელიც სამყაროზე ზემოქმედებს, ორივეში იდენტური კონფიგურაციით უნდა იყოს ჩართული, ან shard-ებს შორის გადამავალი მოთამაშე prefab-ებს შეხვდება, რომლებიც მხოლოდ ერთ მხარეს არსებობს.

უსაფრთხოა tick rate-ის ამაღლება?

უსაფრთხოა, მაგრამ ფასი აქვს. 15-დან 30-მდე გადასვლა დაახლოებით ორჯერ ზრდის CPU-სა და გამტარუნარიანობას მოთამაშეზე, პატარა გეგმაზე კი ეს სავსე სერვერზე ლაგად ჩანს და არა უფრო გლუვ ბრძოლად. სცადე შენს ჩვეულებრივ ჯგუფთან და დააბრუნე, თუ სერვერის გრაფიკი მაღლა მიდის.


კომენტარები

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

0/2000