RimWorld Together-ის სერვერი არის ერთი პატარა .NET პროგრამა, ერთი TCP პორტი (ნაგულისხმევად 25555) და JSON ფაილების საქაღალდე. სერვერის build-ს შენი ოპერაციული სისტემისთვის პროექტის GitHub releases გვერდიდან ჩამოტვირთავ, ერთხელ გაუშვებ, რომ კონფიგები თვითონ ჩაწეროს, და პირველი მოთამაშე, რომელიც შესაბამისი client მოდით დაკავშირდება, პლანეტას შექმნის და ავტომატურად ადმინი გახდება. მოდები ფაილში ხელით არ ირთვება: ადმინი სიას თამაშის შიგნიდან ტვირთავს და შემდეგ ყველა მოთამაშე შესვლისას მასთან შედარდება. ორი რამ ხშირად აბნევს ხალხს და ორივე მკაცრი ტოლობის შემოწმებაა - client-ისა და სერვერის ვერსიები ზუსტად უნდა ემთხვეოდეს, მოდების სიაც იგივე. არის კიდევ ერთი უსაფრთხოების თავისებურება, რომელიც უფრო მნიშვნელოვანია: ვინც ცარიელ სერვერზე პირველი შედის, სერვერი მისი ხდება.
ეს სტატია მთელ პროცესს თავიდან ბოლომდე აღწერს. თუ ჯერ ირჩევ RimWorld Together-სა და Zetrith Multiplayer მოდს შორის, ან გჭირდება კონსოლის ბრძანებების სრული სია და backup-ების როტაცია, ეს თემა RimWorld multiplayer-ის გზამკვლევში უკვე განხილულია; აქ უფრო დეტალურად არის აღწერილი, როგორ აიგება, დაკონფიგურდება, ჩაჯდება სიაში და როგორ შეუერთდები Together-ის სერვერს.
რით განსხვავდება RimWorld Together Multiplayer მოდისგან#
მოკლედ, რადგან არჩევანი ყველაფერს განსაზღვრავს:
| RimWorld Together | Multiplayer (Zetrith / rwmt) | |
|---|---|---|
| კოლონიები | თითო მოთამაშეს თავისი, საერთო პლანეტა | ერთი, ყველასთვის საერთო |
| სერვერი | ცალკე კონსოლური პროგრამა | არ არის - მოთამაშე თამაშში უმასპინძლებს |
| მოდების წესი | სერვერის სია, მოწმდება შესვლისას | ყველა მანქანაზე იდენტური |
Multiplayer მოდი ერთსა და იმავე სიმულაციას ყველა მოთამაშის მანქანაზე სინქრონულად ატრიალებს, ამიტომ სერვერს აქ საქმე არ აქვს და არაფერია სამასპინძლო. RimWorld Together პირიქით მუშაობს. თითოეული მოთამაშე თავის კოლონიას ლოკალურად თამაშობს, თავისი სიჩქარით, ხოლო სერვერი ინახავს იმას, რაც საერთოა: მსოფლიო რუკას, დასახლებებს, save-ებს, ბაზარს, გილდიებს, ობიექტებს (sites), გზებს და მოთამაშეების ერთმანეთისთვის გაგზავნილი მოვლენების რიგს. პაუნს ის არასდროს ასიმულირებს. სწორედ ამიტომ სჭირდება ასე ცოტა სიმძლავრე და ამიტომ აგრძელებს მუშაობას, როცა არავინ არის ონლაინ.
საპირისპირო მხარე ისაა, რომ ურთიერთქმედება ნაგულისხმევად ასინქრონულია. სხვა მოთამაშეების კოლონიებთან ვაჭრობ, საჩუქრებს უგზავნი, ჯაშუშობ და თავს ესხმი, ხოლო ოფლაინ მოთამაშეზე თავდასხმა მისი რუკის შენახულ ასლზე იმართება. რეალურ დროში ვიზიტებიც და თავდასხმებიც არსებობს - client მას სინქრონულ რეჟიმს უწოდებს და ამ დროს თამაში save-ს არ აკეთებს - მაგრამ ყოველდღიური რიტმი ისაა, რომ ცალკეულ კოლონიებს ერთმანეთზე გავლენა აქვთ, და არა ერთი კოლონია ერთად თამაშდება. თუ შენს ჯგუფს ერთ ბაზაში ჯდომა უნდა, შენთვის მეორე მოდია.
client მოდი არის RimWorld Together Steam Workshop-ზე (package id nova.rimworldtogether). წერის მომენტში ის RimWorld 1.6-ს ეყრდნობა, Harmony სჭირდება და თავს RimSaves-თან შეუთავსებლად აცხადებს.
სწორი სერვერის build-ის ჩამოტვირთვა#
სერვერის ფაილები პროექტის GitHub releases გვერდზეა და არა Steam-ზე. თითოეულ release-ს ორი ოჯახის არქივი აქვს და არასწორის არჩევა პირველი თავიდან ასარიდებელი პრობლემაა.
| არქივი | რა არის |
|---|---|
Server-<os>-<arch>.zip | თვითკმარი, დაახლოებით 30 MB. ყველგან მუშაობს |
Slim-<os>-<arch>.zip | 1 MB-ზე ნაკლები. საჭიროა დაყენებული .NET 8 runtime |
build-ები არსებობს win-x64, win-x86, linux-x64, linux-arm და linux-arm64 პლატფორმებისთვის. macOS-ის სერვერი არ არის. თუ მანქანაზე .NET 8-ს უკვე არ ინახავ, აიღე Server- build: runtime-ს ერთ გამშვებ ფაილში აერთიანებს, რომელსაც RTServer ჰქვია (Windows-ზე RTServer.exe), ამიტომ არაფრის დაყენება არ გჭირდება და არაფერი დაძველდება მის ქვემოთ. Raspberry Pi ან ARM cloud ინსტანსი პატარა სამყაროსთვის სრულიად გონივრული ადგილია, ARM build-ებიც სწორედ ამისთვისაა.
release-ების სახელები თარიღებია: 26.10.4.1 არის build 2026 წლის 4 ოქტომბრიდან, ხოლო ბოლოში _(1) იგივე ვერსიის ხელახალ გამოშვებას აღნიშნავს. სერვერი სწორედ ამ ვერსიის სტრიქონს ადარებს ყველა client-ს სიმბოლო-სიმბოლოდ, ამიტომ მნიშვნელობა აქვს, რომელს ჩამოტვირთავ. წესი მარტივია: სერვერმა და ყველა მოთამაშემ ერთი და იგივე release უნდა გამოიყენოს.
არქივი ცალკე საქაღალდეში გახსენი. პირველ გაშვებაზე სერვერი თავის გვერდით ათ-თორმეტ ქვესაქაღალდეს ქმნის, პროექტი კი გაფრთხილებს, რომ ის ისეთ ადგილას არ დააყენო, სადაც ადმინისტრატორის უფლებებია საჭირო - Program Files ცუდი იდეაა, Linux-ზე root-ით გაშვებაც.
$ mkdir -p ~/rwt && cd ~/rwt$ unzip ~/Downloads/Server-linux-x64.zip$ chmod 755 RTServer$ ./RTServerოფიციალური container image ყოველი release-ისას ერთი და იმავე source-დან აიგება და მონიშნულია როგორც latest, ისე release-ის ვერსიით. გამოიყენე ვერსიის tag და არა latest, რომ container-ის restart-მა სერვერი მოთამაშეებისგან შეუმჩნევლად არ განაახლოს:
$ mkdir -p RWTData$ docker run -it -v "$PWD/RWTData:/Data" -p 25555:25555 \ ghcr.io/rimworld-together/rimworld-together:26.10.4.1-it მნიშვნელოვანია. სერვერი ადმინის ბრძანებებს სტანდარტული შეყვანიდან კითხულობს და მიერთებული ტერმინალის გარეშე გექნება მომუშავე სერვერი, რომელსაც ვერ ესაუბრები. პროექტის compose-მაგალითიც ამავე მიზეზით ადგენს stdin_open: true და tty: true-ს, ასე რომ docker attach კონსოლს მოგცემს.
პირველი გაშვება და პირველი შესვლა#
პირველი გაშვებისას იქმნება საქაღალდეების ხე, ყველა კონფიგის ფაილი ნაგულისხმევი მნიშვნელობებით ჩაიწერება და შემდეგ სერვერი მიერთებებსა და კონსოლიდან შეყვანას ელოდება. ახალ სერვერს სამყარო ჯერ არ აქვს. ეს განზრახ არის ასე: პლანეტას მოთამაშის თამაშის client ქმნის და არა სერვერი.
- გააჩერე სერვერი და შეცვალე
Configs/ServerConfig.jsonდაConfigs/PasswordConfig.json(ორივე ქვემოთ არის განხილული). მინიმუმ დააყენე სახელი და პაროლი. - გაუშვი ისევ.
- RimWorld-ში ჩართე Harmony და RimWorld Together, ასევე ყველა მოდი, რომელიც სამყაროს დასჭირდება, და თამაში გადატვირთე.
- მთავარი მენიუდან გახსენი RimWorld Together და გამოიყენე Direct Connect სერვერის მისამართითა და პორტით. იმავე მანქანაზე ეს არის
127.0.0.1და25555. - აირჩიე მომხმარებლის სახელი და პაროლი. ცალკე რეგისტრაციის ნაბიჯი არ არის: ახალი სახელით პირველი შესვლა ანგარიშს ქმნის.
- სერვერი ხედავს, რომ სამყარო არ არსებობს და შენს client-ს სთხოვს. შექმენი პლანეტა ისე, როგორც ერთმოთამაშიან რეჟიმში - seed, დაფარვა, ნალექი, ტემპერატურა, ფრაქციები - და დასახლდი.
- სერვერი პლანეტას ინახავს და ადმინად გაქცევს. კონსოლში ჩნდება ხაზი, რომ შენს მომხმარებლის სახელს პირველი შესვლის ადმინის უფლებას აძლევს.
ამ დიზაინიდან კიდევ ორი რამ გამომდინარეობს. პლანეტის პარამეტრები პირველი შესვლით ფიქსირდება, ამიტომ დაფარვა და მოდების სია სამყაროს შექმნამდე გადაწყვიტე და არა შემდეგ - თვით პროექტის რჩევაა, რომ ყველა დაგეგმილი მოდი შექმნისას უკვე ჩართული იყოს. Storyteller-ის, სირთულისა და სცენარის შეცვლა მოგვიანებითაც შეიძლება. და სანამ სამყარო მზადდება, ყველა სხვა, ვინც დაკავშირდება, შეტყობინებით უკან ბრუნდება, რომ მოგვიანებით სცადოს.
ანგარიში არის მომხმარებლის სახელი და პაროლი, რომელიც სერვერზე ინახება, და არა Steam-ის იდენტობა. თუ მოთამაშემ პაროლი დაივიწყა, მისი კოლონია დისკზე რჩება, მაგრამ აღდგენის პროცესი არ არსებობს - ადმინმა უნდა მოაგვაროს, რაც ჩვეულებრივ resetplayer-ს და ახლიდან დაწყებას ნიშნავს. მოთამაშეებს უთხარი, რომ პაროლს სხვა ნებისმიერი პაროლივით მოეპყრონ.
კონფიგის ფაილები, რომლებიც მნიშვნელოვანია#
ყველაფერი Configs/-შია და ყოველი ფაილი გაშვებისას თავიდან იწერება დაკარგული გასაღებების შევსებით, ამიტომ ძველი ფაილი განახლების შემდეგ ახალ პარამეტრებს იღებს. შეცვალე გაჩერებულ სერვერზე: რამდენიმე ფაილს სერვერი მუშაობისასაც ინახავს და შენს ცვლილებას იმით გადაფარავს, რაც მეხსიერებაშია.
{ "Name": "RimWorld Together Server", "Description": "", "DiscordURL": "", "SteamWorkshopURL": "", "ServerImageURL": "", "IP": "0.0.0.0", "Port": 25555, "MaxPlayers": 100, "Verbosity": 0, "DisplayChatInConsole": false, "UseUPnP": false, "UseClientSave": true, "EnableServerBrowser": true, "EnableServerTelemetry": true}Name, Description, DiscordURL, SteamWorkshopURL და ServerImageURL არის ის, რასაც სერვერის ბრაუზერი აჩვენებს, ამიტომ შეავსე, თუ გინდა, რომ უცნობებმა გიპოვონ, და დატოვე ცარიელი, თუ არა. Port უნდა იყოს ის პორტი, რომელსაც მოთამაშეები რეალურად წვდებიან, რადგან სწორედ ამ პორტს აცხადებს სერვერი ბრაუზერშიც. UseUPnP სახლის როუტერს სთხოვს პორტის გახსნას; ჰოსტინგის სერვერზე არაფერს აკეთებს და სახლის ქსელშიც, რომელიც შენთვის მნიშვნელოვანია, ჯობს გამორთული იყოს. UseClientSave წყვეტს, ენდობა თუ არა სერვერი კოლონიის იმ ასლს, რომელიც მოთამაშის მანქანაზეა, როცა ის ისევ შემოდის - დატოვე ნაგულისხმევზე, თუ პროექტის დახმარებით კონკრეტულ save-ის პრობლემას არ ეძებ.
საქაღალდის დანარჩენი ნაწილი:
| ფაილი | რას ინახავს |
|---|---|
PasswordConfig.json | Password - ცარიელი ნიშნავს პაროლის გარეშე |
BackupConfig.json | ავტომატური backup-ები, ინტერვალი, რამდენი ინახება |
ChatConfig.json | დღის შეტყობინება, შემოსვლისა და გასვლის შეტყობინებები |
ModConfig.json | მოდების სია, რომელსაც მოთამაშეები ადარდებიან |
DifficultyConfig.json | სირთულის მორგებული მნიშვნელობები |
StorytellerConfig.json | იძულებითი storyteller |
ScenarioConfig.json | იძულებითი სცენარი |
Configs/Actions/-ში თითო ფაილია მოთამაშეთა თითო ურთიერთქმედებისთვის - Raid.json, Trade.json, Caravan.json, Aid.json, Event.json, Market.json, Guild.json, Site.json, Road.json, River.json, Pollution.json, Scenario.json და კიდევ რამდენიმე. აქ ითიშება მექანიკა ან ძვირდება, და აქვეა დაცვის ტაიმერებიც, რომლებიც ერთ მოთამაშეს განმეორებით თავდასხმებისა და მოვლენებით დატვირთვისგან იცავს. წაიკითხე სერვერის გახსნამდე: ნაგულისხმევი მნიშვნელობები მეგობრულ ჯგუფს მიესადაგება, საჯარო სერვერს კი ჩვეულებრივ უფრო გრძელი დაცვა და მაღალი ფასები უნდა.
თვით სამყარო Configs/-ში არ არის. პლანეტა არის Assets/WorldValuesFile.json, საერთო მდგომარეობა კი მის გვერდითაა: Market.json, Roads.json, Rivers.json, Leaderboard.json, IPBans.json და საქაღალდეები მომხმარებლების, save-ების, რუკების, დასახლებების, ობიექტების (sites), გილდიებისა და მოვლენებისთვის. სწორედ ეს Assets/ საქაღალდეა, რომლის backup-იც უნდა გააკეთო. Configs/-ის დაკარგვა ერთ საღამოს გაგიფუჭებს, Assets/-ის დაკარგვა - მთელ სამყაროს.
პორტები, firewall და დაკავშირება#
| პორტი | პროტოკოლი | მიმართულება |
|---|---|---|
25555 | TCP | შემომავალი, მოთამაშეები მას უერთდებიან |
| ბრაუზერის სერვისი | TCP | გამავალი, მხოლოდ თუ telemetry ჩართულია |
სრული სია ესაა. UDP არ არის, query პორტი არ არის და RCON არ არის. საჭიროებისას შეცვალე Port ServerConfig.json-ში და დარწმუნდი, რომ firewall-ი, container-ის mapping-ი და ის, რასაც მოთამაშეები წერენ, ერთსა და იმავე ნომერს ამბობს - game server-ის პორტების ახსნა განმარტავს, რატომ არის "პროცესი მუშაობს" და "პორტი ხელმისაწვდომია" ორი ცალკე შესამოწმებელი მტკიცება.
სახლის კავშირზე გჭირდება port forward როუტერიდან იმ მანქანამდე, რომელზეც სერვერი ტრიალებს, და საჯარო მისამართი, რომელიც ნამდვილად შენია; carrier-grade NAT შემომავალ კავშირებს შეუძლებელს ხდის, რასაც არ უნდა გადამისამართებდე. Port forwarding და ჰოსტინგის სერვერი პატიოსანი შედარებაა. Linux-ზე პორტი პირდაპირ გახსენი:
$ sudo ufw allow 25555/tcpმოთამაშეები RimWorld Together-ის მენიუდან უერთდებიან Direct Connect-ით მისამართითა და პორტით, Server Browser-ით ან join კოდით. client იმახსოვრებს ბოლო სერვერს და შემდეგ გაშვებაზე ხელახლა დაკავშირებას სთავაზობს. დაკავშირების დიალოგში სერვერის პაროლისთვის ცალკე ველია, რომელიც ანგარიშით შესვლამდე იკითხება.
RE:NODE-ზე RimWorld-ის გეგმა ერთ პორტის გამოყოფას მოიცავს, რაც ზუსტად ამ სერვერს სჭირდება: Port-ში ჩაწერე გამოყოფილი პორტი და მოთამაშეები დაუკავშირდებიან მისამართს, რომელსაც პანელი აჩვენებს. Starter არის 1 GB მეხსიერება და ბირთვის 0,75, თვეში $5-დან, რაც ამ სერვერისთვის სავსებით საკმარისია - ის თამაშს არ ატრიალებს. დანარჩენი გეგმებისთვის იხილე RimWorld-ის სერვერის გეგმები.
მოდების სინქრონი: როგორ ამოწმებს სერვერი მოთამაშის მოდებს#
აქ RimWorld Together ყველაზე ხშირად არასწორად ესმით, რადგან ის შეიცვალა. ძველი გზამკვლევები კონფიგის ფაილში სამ სვეტს აღწერს - required, optional, forbidden. მიმდინარე release-ებში ModConfig.json-ს თამაში წერს და არა შენ, და წესები ასეთია:
- Required მოდები client-ზე აუცილებლად უნდა იყოს.
- Optional მოდები შეიძლება იყოს ან არ იყოს.
- ყველაფერი, რაც სიაში არ არის, უარყოფილია. ცალკე forbidden სვეტი აღარ არსებობს; მოდი, რომელიც სერვერმა არ იცის, ნაგულისხმევად აკრძალულია.
- მოდის პარამეტრები შეიძლება იძულებითი იყოს: როცა ადმინი ამას რთავს, თითოეული required მოდის პარამეტრები hash-ით შედარდება და განსხვავებული პარამეტრების მქონე მოთამაშე უარყოფილია.
- Load order ასევე შეიძლება იძულებითი იყოს, მთელი თანმიმდევრობის hash-ით. უარყოფილ client-ს სერვერის თანმიმდევრობას სთავაზობენ და ეკითხებიან, გამოიყენოს თუ არა.
- ადმინები ყველა შემოწმებას უვლიან გვერდს, რაც ტესტირებისთვის გამოსადეგია და ასევეა, რატომ "ამტკიცებს" ადმინი, რომ გაფუჭებული სია ყველასთვის მუშაობს.
- სანამ სამყარო არ არსებობს, არაფერი მოწმდება, ამიტომ პირველი შესვლა მოდების გამო არასდროს უარყოფილია.
სია თამაშის შიგნიდან დგება. ადმინი ტვირთავს მოდებს, რომლებიც სერვერმა უნდა გამოიყენოს, ხსნის თამაშის ადმინ-ხელსაწყოებს (dev mode, შემდეგ ადმინის მენიუ ზედა მარჯვენა კუთხეში დაკავშირებისას) და სიას ატვირთავს; ირჩევს, რომელი მოდებია required და რომელი optional და ჩართოს თუ არა კონფიგების იძულება. სერვერი ინახავს და ყველა ონლაინ მოთამაშეს უგზავნის. არა-ადმინი, რომელიც სამყაროს არსებობის შემდეგ მოდების სიის გაგზავნას შეძლებს, მაშინვე იბანება.
როცა მოთამაშე უარყოფილია, მისი client აჩვენებს "Your mod list conflicts with the server" და სერვერის სიას, ხოლო ბოლო ვერსიებში შეუძლია მისთვის დაკარგული Steam Workshop მოდების გამოწერა და ჩამოტვირთვა, თუ Steam გაშვებულია. ეს ავტომატური ჩამოტვირთვა ახალია და release notes მას ჯერ პირველ იმპლემენტაციას უწოდებს, ამიტომ კერძო ჯგუფისთვის საიმედო მეთოდი უცვლელია: გამოაქვეყნე ერთი Steam Workshop კოლექცია, მისი URL ჩაწერე SteamWorkshopURL-ში და ყველას უთხარი, გამოიწერონ ის და არაფერი სხვა. Steam Workshop მოდები dedicated სერვერებზე განმარტავს, რატომ სჯობს კოლექცია შეტყობინებაში გაგზავნილ სიას.
პრაქტიკული წესები, რომლებიც სამყაროს გადაარჩენს:
- სია პლანეტის შექმნამდე დაადგინე. მოდები, რომლებიც ბიომებს, ფრაქციებსა თუ სამყაროს თვისებებს ამატებს, გენერაციას ცვლის, პლანეტა კი ერთხელ გენერირდება.
- optional დატოვე იმისთვის, რაც მხოლოდ მოთამაშის საკუთარ ეკრანს ეხება - UI, დახარისხება, კომფორტის გაუმჯობესებები. ყველაფერი, რაც ნივთებს, პაუნებს, ფრაქციებს ან მოვლენებს ამატებს, required-ში უნდა იყოს, რადგან ის კოლონიებს შორის ვაჭრობაში, საჩუქრებსა და თავდასხმებში გადადის.
- ჩართე load order-ის იძულება, როცა ჯგუფი რამდენიმე კაცზე დიდი ხდება. RimWorld თანმიმდევრობის მიმართ ძალიან მგრძნობიარეა; მოდების load order-ის ახსნა განმარტავს, რატომ.
- სიას შეგნებულად ცვალე. required მოდის დამატება ყველას გამორთავს, სანამ არ განახლდებიან; წაშლა კი მის ნივთებს კოლონიებსა და ბაზარზე ტოვებს. გააფრთხილე, წინასწარ backup გააკეთე და მერე ატვირთე.
თუ ყველას შესვლა გჭირდება, სანამ სიას არჩევ, კონსოლზე togglemodbypass მოდების ყველა შემოწმებას რთავს და თიშავს. ეს დიაგნოსტიკური გადამრთველია და არა პარამეტრი, რომელიც ჩართული უნდა დატოვო.
საჯარო RimWorld Together სერვერების პოვნა#
თამაშის შიგნით Server Browser არის კატალოგი. სერვერი, რომელსაც EnableServerBrowser ჩართული აქვს, სიაში გამოჩნდება სახელით, აღწერით, სურათით, Discord-ისა და workshop-ის ბმულებით, ვერსიით, მოთამაშეების რაოდენობით MaxPlayers-თან შედარებით, პაროლის არსებობით, მოდების სიით და ონლაინ მოთამაშეების სახელებით. ბოლო release-ებმა სიებს რეპუტაციის ქულა და სერვერის დარეპორტების საშუალება დაამატა.
რას უნდა დააკვირდე შეერთებამდე:
- ვერსია. ის შენს client-ს ზუსტად უნდა ემთხვეოდეს. client-ს Windows-ზე ვერსიის გადამრთველი აქვს, ამიტომ შეგიძლია სერვერის release-ზე გადახვიდე და არ დაელოდო მფლობელის განახლებას.
- მოდების სია. ის სიაშია, ამიტომ ხედავ, ოთხმოცი მოდის გამოწერას ხომ არ აპირებ.
- workshop-ის ბმული. სერვერს, რომელიც კოლექციას აქვეყნებს, ადამიანი უძღვება, ვისაც მოდების სინქრონზე უფიქრია.
- Discord. საჯარო სამყარო community-ა და თავდასხმების, გრიფინგისა და wipe-ების წესები იქ ცხოვრობს და არა თამაშში.
თამაშის გარეთ პროექტის Discord არის ადგილი, სადაც community-ების უმეტესობა რეკლამირდება, ჰოსტინგ კომპანიების საიტებზე სერვერების სიები კი ძირითადად მათივე მომხმარებლებისაა. ოფიციალური ვებ-სია არ არსებობს.
შენი სერვერისთვის ბრაუზერს ფასი აქვს, რომლის ცოდნაც ღირს. როცა EnableServerTelemetry ჩართულია, სერვერი გამავალ კავშირს ამყარებს პროექტის ბრაუზერ-სერვისთან, api.ipify.org-ით თავის საჯარო IPv4-ს იგებს და ამ მისამართსა და პორტს ზემოთ ჩამოთვლილ დეტალებთან ერთად აგზავნის, დაკავშირებული მოთამაშეების სახელების ჩათვლით. როცა EnableServerBrowser გამორთულია და telemetry ჩართული, ის მაინც აგზავნის, მაგრამ მონიშნულია როგორც კერძო და სიაში არ ჩანს. გამორთე ორივე, თუ გინდა, რომ სერვერმა გამავალი რეპორტები საერთოდ არ გააგზავნოს; togglebrowser და toggletelemetry ამას კონსოლიდან აკეთებს. მისამართი, რომელსაც ბრაუზერი იღებს, არის ის, რასაც ipify ხედავს, ამიტომ VPN-ის ან proxy-ს უკან მყოფმა სერვერმა შეიძლება ისეთი მისამართი გააცხადოს, რომელსაც მოთამაშეები ვერ წვდებიან.
ყოველდღიური მუშაობა#
კონსოლი არის ადმინის ინტერფეისი და ბრძანებების სრული სია multiplayer-ის გზამკვლევშია. რამდენიმე ახალი ბრძანება ცოდნის ღირსია:
| ბრძანება | რას აკეთებს |
|---|---|
banip <ip> | მისამართს ბანავს და მის გამოყენებელს აგდებს |
pardonip <ip> | IP-ის ბანს ხსნის |
getip | სერვერის საჯარო IPv4-ს ბეჭდავს |
togglebrowser | ბრაუზერის სია ჩართული ან გამორთული |
toggletelemetry | ბრაუზერში რეპორტინგი ჩართული ან გამორთული |
togglemodbypass | მოდების ყველა შემოწმება ჩართული ან გამორთული |
toggleclientsave | UseClientSave-ს ცვლის საპირისპიროდ |
სხვა ადამიანის ადმინად გასაკეთებლად გამოიყენე op <username>. ძველ release-ებში ეს მომხმარებლის ID-ს ითხოვდა, რომელიც deeplist-ით იპოვებოდა; მიმდინარე ვერსიები მომხმარებლის სახელს იღებს. ადმინები თამაშში ადმინის ღილაკს ხედავენ და მოდების შემოწმებებს არ გადიან.
backup-ები ნაგულისხმევად საათობითაა, ექვსი ინახება, იწერება როგორც Assets/-ის, Configs/-სა და Logs/-ის არქივები Backups/Servers-ში და თითო მოთამაშეზე Backups/Users-ში. ისინი სამყაროს იმავე დისკზე დევს, ამიტომ სადმე სხვაგანაც გადააკოპირე - backup-ები, რომლებიც ნამდვილად აღდგება განმარტავს, რატომ არის ეს მნიშვნელოვანი. RE:NODE-ზე ყველა RimWorld-ის გეგმა მოიცავს backup სლოტებს, რომლებიც მანქანის გარეთ ინახება და ღილაკით აღდგება, კონფიგის ფაილები კი ბრაუზერის ფაილ-მენეჯერში ან SFTP-ით რედაქტირდება.
განახლება ჯგუფური მოვლენაა. გააჩერე სერვერი, გააკეთე backup, RTServer ახალი build-ით ჩაანაცვლე (შენი Configs/ და Assets/ იქვე რჩება), გაუშვი და ყველას უთხარი client მოდის განახლება, რადგან სანამ ამას არ გააკეთებენ, ყოველი შესვლა ვერსიის გამო უარყოფილია.
შეცდომები, რომლებსაც ხალხი რეალურად აწყდება#
"This server requires version ..." client-ისა და სერვერის release-ები განსხვავდება. განაახლე ის, რომელიც ჩამორჩება, ან გამოიყენე client-ის ვერსიის გადამრთველი. Steam client მოდს თავისი გრაფიკით ანახლებს, ამიტომ ეს ყოველი release-ის შემდეგ ყველაზე ხშირი შეცდომაა.
"Handshake failed! Verify client version" იგივე ოჯახის პრობლემაა, კავშირის უფრო ადრეულ ეტაპზე. პირველ რიგში ვერსიები შეამოწმე.
"Your mod list conflicts with the server" required მოდი აკლია, ან მოთამაშეს აქვს მოდი, რომელიც არც required არის და არც optional. სერვერის სია დიალოგში ჩანს; შეადარე, იმ მოდების ჩათვლით, რომლებიც მოთამაშეებს ავიწყდებათ, მაგალითად workshop მოდის ლოკალური ასლი.
მოდების კონფიგების ან თანმიმდევრობის გამო უარყოფა იძულება ჩართულია და მოთამაშის პარამეტრები ან თანმიმდევრობა განსხვავდება. როცა შემოგთავაზებენ, გამოიყენე სერვერის თანმიმდევრობა. პარამეტრებისთვის მოთამაშეს required მოდების იგივე პარამეტრების ფაილები სჭირდება, რაც პრაქტიკაში ნიშნავს, რომ ადმინმა უნდა გააზიაროს.
კავშირი ვადას ამოიწურავს პორტი მიუწვდომელია: პროცესი გაჩერებულია, firewall, არასწორი პორტი, port forward-ის არარსებობა ან carrier-grade NAT. შეამოწმე შენი ქსელის გარედან.
"Server is currently being set up! Join again later!" პირველი მოთამაშე დაკავშირდა და პლანეტა ჯერ არ არსებობს. დაელოდე, სანამ მას დაასრულებს.
უცნობი ადმინია ის პირველი შევიდა. გააჩერე სერვერი, წაშალე Assets/WorldValuesFile.json და Assets/-ში გენერირებული საქაღალდეები (ან აღადგინე backup მისი შესვლამდე), დააყენე პაროლი და გაუშვი ისევ.
FAQ#
უფასოა RimWorld Together-ის ჰოსტინგი?
დიახ. სერვერი უფასოა, მისი source GitHub-ზეა და ლიცენზია ან Steam-ში შესვლა არ სჭირდება. თითოეულ მოთამაშეს თავისი RimWorld-ის ასლი და client მოდი სჭირდება; სერვერის მანქანას - არა.
შეიძლება RimWorld Together და Multiplayer მოდის ერთად თამაში?
არა. ისინი ცალკე სისტემებია სხვადასხვა ქსელური მუშაობით და ერთს უერთდები ან მეორეს. ჩართე მხოლოდ ის, რომელსაც შენი ჯგუფი იყენებს, რადგან ორივე თამაშის დიდ ნაწილს ცვლის.
სჭირდება სერვერს ძლიერი მანქანა?
არა. ის სიმულაციას არ ატრიალებს, ამიტომ 1 GB მეხსიერება და ბირთვის ნაწილი პატარა ჯგუფს კომფორტულად ემსახურება. save-ებისა და backup-ების გამო გამტარუნარიანობა და დისკი CPU-ზე უფრო მნიშვნელოვანია.
შემიძლია არსებული RimWorld Together სამყაროს სხვა მანქანაზე გადატანა?
დიახ. გააჩერე სერვერი, მთელი საქაღალდე - Assets/ და Configs/ ერთად - ახალ მანქანაზე გადაკოპირე, იქ იგივე release გაუშვი და მოთამაშეებს ახალი მისამართი მიეცი. ანგარიშები და კოლონიები Assets/-თან ერთად გადადის.
რატომ არ ჩანს ჩემი სერვერი ბრაუზერში?
ან EnableServerBrowser ან EnableServerTelemetry გამორთულია, სერვერს გამავალი კავშირების დამყარება არ შეუძლია, ან გამოცხადებული პორტი გარედან მიუწვდომელია. კონსოლი გაშვებისას ამბობს, ჩართულია თუ არა აღმოჩენა.
სჭირდებათ თუ არა მოთამაშეებს DLC-ები შესაერთებლად?
მხოლოდ ის, რაც სერვერის სამყაროს და მოდებს სჭირდება. მოთამაშეს, რომელსაც ჰოსტზე ნაკლები გაფართოება აქვს, პრობლემები შეიძლება შეექმნას კოლონიებს შორის გადამავალ კონტენტთან, და client დაკავშირებისას optional DLC-ებზე აფრთხილებს. DLC-ების ნაკრები ისე შეათანხმე, როგორც მოდების სია.


