Skyrim Together Reborn-ის სერვერი პატარაა, მდგომარეობას არ ინახავს და თითქმის აგრესიულად მარტივია: ერთი პროცესი, ერთი პორტი, ერთი კონფიგურაციის ფაილი და დასაკარგი სამყაროს save არ არსებობს. სერვერს ეკავა წესები, საათი და მოთამაშეებს შორის კავშირი, ხოლო ყველა პერსონაჟი, ყველა quest-ის დროშა და ყველა ნადავლი თითოეული მოთამაშის საკუთარ ლოკალურ Skyrim save-შია. ასეთი აგებულება სერვერს იაფს ხდის - 1-2 GB მეხსიერება საკმარისია იმ ზომის ჯგუფისთვის, რომელსაც დეველოპერები რეალურად გირჩევენ - და ასევე ნიშნავს, რომ სერვერის გაშვების ძნელი ნაწილები თავად სერვერზე საერთოდ არ არის. ესენია თამაშის ვერსია, რომელზეც ყველა უნდა იყოს, მოდები, რომლებიც არავის უნდა ჰქონდეს, და STServer.ini-ის რამდენიმე პარამეტრი, რომლებიც განსაზღვრავს, როგორ ითამაშება co-op.
რა არის Skyrim Together Reborn და რა სჭირდება მას#
Skyrim Together Reborn არის community-ის მოდი და არა Bethesda-ს ფუნქცია. ის დაფუძნებულია კოდბაზაზე სახელად Tilted Online, რომელსაც Tilted Phoques ავითარებს და open source-ად გამოუშვა, და ორი ნაწილისგან შედგება: კლიენტის მოდი, რომელიც Skyrim-ში mod manager-ით ისმება, და დამოუკიდებელი dedicated სერვერი, რომლის გაშვებაც ნებისმიერს შეუძლია. ორივე ერთად იცვლის ვერსიას, ამიტომ 1.8 კლიენტი მხოლოდ 1.8 სერვერთან მუშაობს.
კლიენტის ნაწილს უფრო მკაცრი მოთხოვნები აქვს, ვიდრე მოდების უმეტესობას, და სწორედ ისინი უნდა გაარკვიო პირველ რიგში, სანამ რამეს იქირავებ ან ააწყობ:
- Skyrim Special Edition უახლეს 1.6.x build-ზე. wiki-ის მხარდაჭერილი თამაშების გვერდზე Steam და GOG ვერსიებია ჩამოთვლილი. Anniversary Upgrade საჭირო არ არის, დეველოპერები კი გირჩევენ, ის არ გამოიყენო და გამორთო Creation Club-ის კონტენტი, რომელსაც ის ამატებს.
- მხარდაჭერილი არ არის და არასოდეს იქნება: Skyrim VR, ორიგინალური Skyrim და Legendary Edition, Epic Games-ის ვერსია, Game Pass-ის ვერსია და ყველა კონსოლის გამოცემა. მათთვის გვერდის ავლის გზა არ არსებობს.
- კლიენტისთვის Windows. სერვერი Windows-ზეც მუშაობს და Linux-ზეც; თავად მოდი - არა.
- Mod manager. Mod Organizer 2-სა და Vortex-ს ოფიციალურ wiki-ზე ეტაპობრივი გზამკვლევები აქვს, სერვერზე კი გადამრთველებია, რომლებიც თითოეულს რთავს ან კრძალავს.
სერვერის ნაწილი მარტივია. ეს ერთი გამშვები ფაილია - Windows-ზე SkyrimTogetherServer.exe, Linux-ზე ანალოგიური binary და ოფიციალური Docker image - და ის მოდთან ერთად უფასოდ ვრცელდება. მას Skyrim-ის ასლი, Steam-ში შესვლა ან რაიმე სახის game server token არ სჭირდება, რაც მას ბევრად მარტივ კატეგორიაში აქცევს, ვიდრე Steam-ის თამაშებია, რომლებიც აღწერილია პოსტში Steam game server token-ები ახსნილი.
ღირს პირდაპირ თქვა, რას ინახავს სერვერი, რადგან ეს backup-ებზე ფიქრს ცვლის. ოფიციალური Docker ბრძანება ზუსტად სამ საქაღალდეს mount-ავს: config, Data და logs. სამყაროს დირექტორია არ არსებობს. სერვერი ინახავს დღის დროს, სირთულეს, ჯგუფის სტრუქტურას და სესიის ცოცხალ მდგომარეობას; როცა ის ჩერდება, სესია მთავრდება, ყველა მოთამაშის პროგრესი კი მისივე კომპიუტერზე, საკუთარ Skyrim save-შია. აქ სამყაროს ვერ დაკარგავ და ვერც აღადგენ.
მოთხოვნები და რესურსების მოხმარება#
სერვერი არაფერს ახდენს სიმულაციას. ის კლიენტებს შორის გადასცემს პოზიციას, ანიმაციას, ბრძოლისა და ინვენტარის მდგომარეობას, ინახავს სამყაროს საათს და კონფიგში აღწერილ წესებს ამოწმებს. ხარჯი მოთამაშეების რაოდენობასთან იზრდება და არა იმასთან, Skyrim-ის რამდენი ნაწილია მოკვლეული.
| ჯგუფი | RAM | CPU | შენიშვნები |
|---|---|---|---|
| 2-4 მოთამაშე | 1 GB | 1 core | ყველაზე ხშირი შემთხვევა, კომფორტულია |
| 5-8 მოთამაშე | 2 GB | 1-1.5 core | რეკომენდებული მაქსიმალური ჯგუფი |
| 9-16 მოთამაშე | 3-4 GB | 2 core | შესაძლებელია, მხარდაჭერილი არ არის, desync-ს ელოდე |
| Scripted სერვერი (Lua resources) | +1 GB | 2 core | სრულად იმაზეა დამოკიდებული, რას უშვებ |
ოფიციალური პასუხი მოთამაშეების რაოდენობაზე ასეთია: კოდში მკაცრი ლიმიტი არ არის, დეველოპერები კი კარგი გამოცდილებისთვის 2-დან 8 ადამიანამდე გირჩევენ. ნაგულისხმევი uMaxPlayerCount არის 8, და ეს ნაგულისხმევი რეკომენდაციაა და არა ლიცენზიის შემოწმება. Skyrim-ის quest-ისა და დიალოგის სისტემები ერთი მოთამაშისთვის აშენდა; ყოველი დამატებითი ადამიანი ამრავლებს იმ გზების რაოდენობას, რომლებითაც ორი კლიენტი შეიძლება არ დაეთანხმოს ერთმანეთს იმაში, რას აკეთებს NPC.
დისკი უმნიშვნელოა. სერვერი დამოკიდებულებებთან ერთად რამდენიმე ასეული მეგაბაიტია, იზრდება მხოლოდ logs, ხოლო ერთადერთი ფაილი, რომელიც შეიძლება დაამატო, არის რამდენიმე კილობაიტიანი loadorder.txt. ქსელის მოხმარება ზომიერია, მაგრამ დაყოვნების მიმართ მგრძნობიარეა, როგორც ყველა action თამაში: პოზიციები და ანიმაციები განუწყვეტლივ იგზავნება, ამიტომ 40 ms კავშირი 140 ms-იანისგან განსხვავებულად იგრძნობა მაშინაც კი, როცა არცერთი არხს არ ავსებს. Latency, jitter და packet loss გასწავლის, როგორ გაარჩიო, სამიდან რომელი გაქვს რეალურად, სანამ მოდს დაადანაშაულებ.
სერვერის დაყენება და გაშვება#
Linux-ზე მხარდაჭერილი გზა Docker-ია, ოფიციალური image კი tiltedphoques/st-reborn-server-ია. შექმენი სამი საქაღალდე, რომელსაც კონტეინერი ელოდება, და გაუშვი:
$ sudo mkdir -p /opt/docker/skyrimserver/{config,Data,logs}$ sudo chown -R ${USER}:${USER} /opt/docker$ docker run -d -it --name skyrimserver -p 10578:10578/udp \ -v /opt/docker/skyrimserver/config:/st-server/config \ -v /opt/docker/skyrimserver/Data:/st-server/Data \ -v /opt/docker/skyrimserver/logs:/st-server/logs \ tiltedphoques/st-reborn-server:latestპირველი გაშვებისას config საქაღალდეში ნაგულისხმევი STServer.ini იწერება. ყოველდღიური მუშაობისთვის სამი ბრძანება საკმარისია:
$ docker logs -tf skyrimserver # log-ის თვალყურის დევნება$ docker attach skyrimserver # კონსოლი; გამოსასვლელად CTRL+P და შემდეგ Q$ docker stop skyrimserver -t 1 # გაჩერებაWindows-ზე SkyrimTogetherServer.exe-ს იმ საქაღალდიდან უშვებ, სადაც მოდმა ის დააყენა, და პირველივე გაშვებისას მის გვერდით იგივე config/STServer.ini ჩნდება. Pterodactyl-ზე დაფუძნებულ პანელზე სერვერი community egg-იდან მუშაობს, რომელიც იმავე image-ზეა აგებული; wiki-ის Pterodactyl-ის გვერდი ერთი მიზეზით ღირს წასაკითხად: ის გაფრთხილებას შეიცავს, image-ის კონკრეტულ ვერსიას მიაბა და latest-ს ნუ მიჰყვები. სერვერი, რომელიც ჩუმად ახალ რელიზზე გადადის, მაშინ როცა შენი ჯგუფი ძველ კლიენტ მოდზეა, სერვერია, რომელსაც ვერავინ უერთდება.
STServer.ini, ხაზ-ხაზ#
ერთი ფაილი, ხუთი სექცია, და ეს არის მთელი კონფიგურაცია. ნაგულისხმევი მნიშვნელობები, როგორც მოდის:
[general]sLogLevel=infobConsole=true[LiveServices]bAnnounceServer=false[Gameplay]bEnableMiscQuestSync=falsefGoldLossFactor=0bAutoPartyJoin=truebEnableItemDrops=falsebEnableXpSync=truebSyncPlayerCalendar=falseuTimeScale=20bEnableDeathSystem=truebSyncPlayerHomes=falsebEnablePvp=falsebEnableGreetings=falseuDifficulty=4[ModPolicy]bAllowMO2=truebAllowSKSE=truebEnableModCheck=false[GameServer]sPassword=sAdminPassword=sServerName=Dedicated Together ServerbPremiumMode=trueuMaxPlayerCount=8uPort=10578ისინი, რომლებიც თამაშის შეგრძნებას ცვლის:
| გასაღები | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
uDifficulty | 4 | 0-დან 5-მდე, Novice-დან Legendary-მდე. მთელ სერვერზე მოქმედებს და კლიენტის პარამეტრს აუქმებს |
uTimeScale | 20 | რამდენად სწრაფად მიდის სამყაროს საათი, 0-დან 1000-მდე |
bEnableDeathSystem | true | save-ის ჩატვირთვის ნაცვლად respawn და bounty-ის გადახდა |
fGoldLossFactor | 0 | სიკვდილისას დაკარგული ოქროს ნაწილი, 0-დან 1-მდე |
bEnableXpSync | true | საბრძოლო უნარების გამოცდილება მთელ ჯგუფზე ნაწილდება |
bEnablePvp | false | შეუძლიათ თუ არა მოთამაშეებს ერთმანეთისთვის ზიანის მიყენება |
bEnableItemDrops | false | დაგდებული ნივთების სინქრონიზაცია, გამორთულია, რადგან სერვერები დაუკრაშავს |
bSyncPlayerHomes | false | ვანილის მოთამაშის სახლებში არსებული სკივრები, განზრახ არ სინქრონდება |
bAutoPartyJoin | true | სერვერზე არსებულ ერთადერთ ჯგუფს ავტომატურად უერთდება |
bEnableGreetings | false | NPC-ის მისალმების ფრაზები ყველასთვის ირთვება თუ არა |
bEnableMiscQuestSync | false | სხვადასხვა quest-ის ექსპერიმენტული სინქრონიზაცია |
bSyncPlayerCalendar | false | ყველა მოთამაშის კალენდარს ყველაზე წინ წასულ თარიღზე მიჰყავს |
და ისინი, რომლებიც განსაზღვრავს, რა არის სერვერი:
| გასაღები | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
sServerName | Dedicated Together Server | სახელი საჯარო სიაში |
uMaxPlayerCount | 8 | ადგილების რაოდენობა |
uPort | 10578 | ერთადერთი პორტი, რომელსაც სერვერი იყენებს |
sPassword | ცარიელი | შესვლის პაროლი. მისი დაყენება სერვერს სიიდან მალავს |
sAdminPassword | ცარიელი | შეჰყავთ Connect ფანჯარაში, რომ ადმინად შევიდნენ |
bPremiumMode | true | true არის 60 Hz tick, false - 30 Hz |
bAnnounceServer | false | გამოჩნდეს თუ არა საჯარო სერვერების სიაში |
bConsole | true | ხელმისაწვდომია თუ არა ინტერაქტიული კონსოლი |
uDifficulty ცალკე აბზაცს იმსახურებს. ნაგულისხმევი 4-ია, ანუ Expert, და ეს განზრახაა: Skyrim-ის შეხვედრების დიზაინი ერთ Dragonborn-ს ითვალისწინებს, ოთხი მათგანი კი Legendary-ს სამართლიან ბრძოლად აქცევს, Adept-ს კი - სეირნობად. სჯობს ასწიო და არა დაწიო. uTimeScale მეორეა, რაზეც პირველ სესიამდე ღირს დაფიქრება, რადგან საათს სერვერი განაგებს და მოთამაშეებს დროის გასატარებლად ლოდინი ან ძილი არ შეუძლიათ. დატოვე 20, რაც ვანილას ემთხვევა, თუ არ გინდა, რომ დრაკონების თავდასხმები და მაღაზიების განახლება სხვა რიტმით ხდებოდეს.
bPremiumMode ცუდი სახელია. ეს არც ფასიანი ფუნქციაა და არც ლიცენზიის დონე - ეს tick rate-ია: true არის 60 Hz, false კი 30 Hz. დატოვე ჩართული, თუ სერვერს ნამდვილად სუსტ მანქანაზე არ უშვებ, სადაც tick rate-ის განახევრება რეალური დაზოგვაა.
პორტები, სერვერების სია და დაკავშირება#
ერთი პორტი, 10578, და ეს არის მთელი ქსელური ზედაპირი.
| პორტი | პროტოკოლი | დანიშნულება |
|---|---|---|
10578 | UDP | მთელი თამაშის ტრაფიკი. მითითებულია uPort-ით |
10578 | TCP | მხოლოდ თუ შენი router-ი ან firewall-ი ორივეს ერთ წესში ვერ ამუშავებს |
ოფიციალური Docker ბრძანება მხოლოდ UDP-ს აქვეყნებს, სწორედ იმას, რასაც ტრაფიკი რეალურად იყენებს. wiki-ის port-forwarding გვერდი სახლის მასპინძლებს ეუბნება, აირჩიონ "Both", სადაც router-ი ამას სთავაზობს, და შექმნან ორი წესი, სადაც - არა. ჯერ UDP გახსენი; თუ სერვერი მუშაობს და მასთან ვერავინ აღწევს, უფრო ეგზოტიკურს ნუ ეძებ და ჯერ TCP დაამატე. Game server-ის პორტები ახსნილი გიხსნის, რატომ ტყდება ამ განსხვავების გამო ამდენი სერვერი და როგორ შეამოწმო ერთი პორტი ცალკე.
შესვლის ორი გზა არსებობს. bAnnounceServer=true სერვერს თამაშში არსებულ სიაში ათავსებს, სადაც მოთამაშეები მას სახელით პოულობენ. false-ის დატოვება - ნაგულისხმევი - ნიშნავს, რომ მოთამაშეები მისამართსა და პორტს Connect ფანჯარაში თვითონ აკრეფენ, რაც ხუთი მეგობრის ჯგუფისთვის უფრო მარტივია და მოდერაციისთვის არაფერს გაძლევს. სერვერი, რომელსაც sPassword აქვს, საჯარო სიიდან დაფარულია, announce ჩართულია თუ არა, ამიტომ პაროლი და announce თითქმის ურთიერთგამომრიცხავია.
თუ მისამართის ნაცვლად სახელი გინდა, ეს ჩვეულებრივი A ჩანაწერია, რომელიც სერვერის IP-ზე მიუთითებს - დომენის მიბმა game server-ზე შეიცავს ჩანაწერებს და გავრცელების გაფრთხილებას. მოთამაშეებს მაინც უწევთ :10578-ის მიწერა, თუ პორტს არ შეცვლი და სიით არ შედიან.
ადმინები და კონსოლის ბრძანებები#
ადმინის მხარდაჭერა 1.7.0-ში გაჩნდა და უმეტეს თამაშზე განსხვავებულად მუშაობს. მუდმივი ადმინების სია არ არსებობს. sAdminPassword არის პაროლი, რომელსაც მოთამაშე Connect ფანჯარაში აკრეფს, რომ ამ სესიისთვის ადმინის უფლებებით შევიდეს, ხოლო თუ ველი ცარიელია, ადმინად ვერავინ შევა. უფლებები ადმინის გამოსვლისას ავტომატურადაც უქმდება, ამიტომ არაფერი გროვდება.
სერვერის კონსოლი - docker attach, Windows-ის კონსოლის ფანჯარა ან პანელის console tab - ამ ბრძანებებს იღებს:
| ბრძანება | პარამეტრები | ეფექტი |
|---|---|---|
/help | ხელმისაწვდომი ბრძანებების სია | |
/players | ყველა, ვინც ახლა დაკავშირებულია | |
/admins | ყველა, ვისაც ახლა ადმინის უფლება აქვს | |
/uptime | რამდენი ხანია სერვერი მუშაობს | |
/mods | სერვერზე დაყენებული მოდები | |
/resources | ჩატვირთული სერვერული scripting resources | |
/SetTime | 0-23 0-59 | თამაშის საათისა და წუთის დაყენება |
/SetDate | day month year | თამაშის თარიღის დაყენება, 1.6.x-დან |
/AddAdmin | player_name | დაკავშირებულ მოთამაშეს ადმინის უფლების მიცემა |
/RemoveAdmin | player_name | უფლების ისევ ჩამორთმევა |
/quit | სერვერის გაჩერება |
სივრცეებიანი სახელები ქვედა ტირეებით იწერება: /AddAdmin Skyrim_Together მოთამაშეს სახელად "Skyrim Together" გულისხმობს. თუ სახელი არავის ემთხვევა, კონსოლი ჩუმად კი არ ჩავარდება, გაფრთხილებას გამოიტანს, რაც უმეტეს თამაშს არ გამოსდის.
ჩატში მოთამაშეებს აქვთ /help, /local - ახლოს მყოფებისთვის შეტყობინება და /party - საკუთარი ჯგუფისთვის. ადმინებს დამატებით აქვთ /settime. ეს არის თამაშის შიგნით არსებული ბრძანებების სრული სია - kick-ისა და ban-ის ბრძანება არ არის, და ეს ყველაზე ძლიერი არგუმენტია იმის სასარგებლოდ, რომ პაროლიანი სერვერი აწარმოო და არა announce-ით გამოცხადებული საჯარო. კონსოლის კითხვა ცალკე უნარია; კონსოლის კითხვა გეუბნება, რას უყურო, როცა შესვლა ვერ ხერხდება.
მოდები, load order და bEnableModCheck#
ოფიციალური პოზიცია ისაა, რომ ყველაზე სტაბილური გამოცდილებისთვის სხვა მოდები არ უნდა გამოიყენო, და ღირს ამის სერიოზულად აღქმა და არა ჩვეულებრივ ფორმალობად ჩათვლა. Skyrim Together-ში არაფერი არის ცალსახად სინქრონიზებული სხვა მოდთან. სადაც მოდი ჯგუფში თითქოს მუშაობს, ეს იმის შემთხვევითობაა, როგორ ცვლის ის თამაშს და არა მხარდაჭერილი ინტეგრაცია.
რა გადარჩება ჩვეულებრივ:
- გრაფიკისა და ტექსტურების მოდები. ისინი ცვლის იმას, რასაც ერთი კლიენტი ხატავს, და სერვერის მიერ გადაცემულს არ ეხება.
- SKSE, რომელსაც მოდი თავად ტვირთავს, თუ ის დაყენებულია, სერვერზე
bAllowSKSE-ს გათვალისწინებით. - Address Library for SKSE, რომელსაც დაყენების გზამკვლევები წინაპირობად თვლის და არა მოდად.
რა იწვევს საიმედოდ პრობლემას: ყველაფერი, რაც renderer-ს ან save სისტემას ადრეულ ეტაპზე ებმება. wiki ასახელებს KiLoader-ს, Alternate Conversation Camera-ს ვარიანტებს, Smoothcam-ს, S.L.A.C.K.-ს, Wheeler-სა და Master Occlusion Field-ს იმათ შორის, რაც კარგად არ ჩაიტვირთება, ხოლო GitHub-ზე არსებობს community-ის მოდების თავსებადობის ცხრილი, რომელიც ნებისმიერ ბლოგ პოსტზე, ამის ჩათვლით, უფრო ახალია. ზოგი ჩანაწერი საპირისპირო მიმართულებით შეიცვალა: Engine Fixes 7 და Skyrim Souls RE Updated 1.8-თან იტვირთება, მაშინ როცა ადრეულ ვერსიებთან - არა.
თუ შენი ჯგუფი მოდებს იყენებს, bEnableModCheck არის გადამრთველი, რომელიც მთელ საქმეს კვირის განმავლობაში "ჩემთან მუშაობს"-ში გადაზრდას უშლის ხელს. true-ზე სერვერი ყოველი შემოსული კლიენტის loadorder.txt-ს ადარებს იმას, რომელსაც სერვერის Data საქაღალდეში დებ, და უარს ეუბნება ყველას, ვინც არ ემთხვევა. ფაილი შექმენი Mod Organizer 2-დან ან Vortex-იდან ერთი მოთამაშის მანქანაზე, ჩააგდე Data/-ში, გააჩერე სერვერი, ჩართე დროშა და ისევ გაუშვი.
Skyrim.esmUpdate.esmDawnguard.esmHearthFires.esmDragonborn.esmSkyUI_SE.espშემოწმება ზუსტი დამთხვევისაა, და ეს არის აზრი: ის "ვიღაცას რაღაცის განსხვავებული ვერსია აქვს" ორსაათიანი დიაგნოსტიკიდან კარიბჭესთან უარად აქცევს. bAllowMO2 და bAllowSKSE მის გვერდითაა და აკონტროლებს, მიიღება თუ არა საერთოდ კლიენტები, რომლებიც Mod Organizer 2-ს ან SKSE-ს იყენებენ.
Skyrim Together-ის ყოველი რელიზი Skyrim-ის კონკრეტულ build-ზეა მიბმული, ამიტომ თამაშის Steam განახლებამ შეიძლება მოდი გატეხოს, სანამ Tilted Phoques შესაბამის ვერსიას გამოუშვებს. აქაც იგივე დისციპლინა მოქმედებს, რაც ნებისმიერ მოდიან სერვერზე: patch-ის დღეს არაფერი ავტომატურად არ განაახლო, ინახე ჩანაწერი იმ ვერსიებისა, რომლებიც მუშაობდა, და წაიკითხე რა უნდა ქნა, როცა მოდის განახლება ყველაფერს არღვევს, სანამ დაგჭირდება. მოდიანი სერვერის სისუფთავე ზოგად ჰიგიენას მოიცავს.
Save-ები, restart-ები და განახლებები#
რადგან სერვერს სამყაროს ფაილი არ აქვს, "backup" აქ სხვა რამეს ნიშნავს. დასაცავია STServer.ini, Data/loadorder.txt, თუ იყენებ, და თითოეული მოთამაშის საკუთარი Skyrim save მის კომპიუტერზე. უთხარი შენს ჯგუფს, რომ თავიანთი save-ების backup აიღონ; შენ მათ მაგივრად ამას ვერ გააკეთებ, დაზიანებული ლოკალური save კი ერთადერთი გზაა, რომლითაც ამ თამაშში ვინმე პროგრესს კარგავს.
სერვერის მხრიდან:
- რედაქტირებამდე გააჩერე. გაშვებული კონფიგურაცია გამორთვისას იმარჯვებს. ეს ყველაზე ხშირი მიზეზია, რის გამოც პარამეტრი "არ მოქმედებს".
- Restart გრაფიკით. ყოველდღიური ან ორ დღეში ერთხელ restart იაფი დაზღვევაა იმ დრიფტის წინააღმდეგ, რომელსაც ხანგრძლივი სესიები აგროვებს - გაჭედილი ცხენის ანიმაციები, უცნაურ მდგომარეობაში მყოფი NPC-ები, შიშველი NPC-ის ბაგი. Restart-ის გრაფიკები, რომლებიც გვეხმარება გასწავლის დროის არჩევას, რომელიც ყველაზე ცოტას შეაწუხებს.
- ვერსია დააფიქსირე. Docker-ს იყენებ თუ პანელის egg-ს,
latest-ის ნაცვლად ცალსახა tag გამოიყენე, რომ სერვერი იმ ჯგუფის ქვეშ არ გადავიდეს ახალზე, რომელსაც კლიენტის მოდი არ განუახლებია. - კლიენტი და სერვერი ერთად განაახლე. ან ყველა განახლდება, ან არავინ თამაშობს.
RE:NODE-ზე Skyrim Together სერვერებს ერთი პორტის გამოყოფა ეძლევათ, რაც ზუსტად ის არის, რაც ამ თამაშს სჭირდება, ხოლო პორტი და სერვერის სახელი Startup tab-ზეა. კონსოლს ზემოთ მოცემული slash ბრძანებებისთვის ისტორია და tab-ით შევსება აქვს, STServer.ini ბრაუზერშიც რედაქტირდება და SFTP-ითაც, ხოლო backup სლოტები ყველა tier-ზე კონფიგსა და load order-ს მოიცავს, მიუხედავად იმისა, რომ დასაცავი სამყარო არ არსებობს. თუ სერვერი მეხსიერების ლიმიტს მიაღწევს, ის swap-ში ჩაფლობის ნაცვლად ჩერდება და სუფთად იწყება ხელახლა - უმეტეს თამაშზე ეს შეუნახავ პროგრესს გიღირს, ამ თამაშზე კი - ერთ სესიას.
პრობლემების გადაჭრა#
სერვერების სია არ იტვირთება. დარწმუნდი, რომ მოდი უახლეს ვერსიაზეა, შემდეგ კლიენტის firewall-ი შეამოწმე. სიას კლიენტი Tilted Phoques-ის სერვისიდან იღებს, ამიტომ მიზეზი სერვერის მხარეს არ არის.
ვერავინ უერთდება, თუმცა სერვერი წერს, რომ გაიშვა. პორტი 10578 მიუწვდომელია. შეამოწმე შენი ქსელის გარედან და არა მასპინძელი მანქანიდან, და დაამატე TCP წესი, თუ შენი router-ი ჩანაწერზე მხოლოდ ერთ პროტოკოლს იღებს.
`STServer.ini`-ის პარამეტრები სულ უბრუნდება. ფაილის შენახვისას სერვერი მუშაობდა. გააჩერე, შეცვალე, გაუშვი.
NPC-ები და სხვა მოთამაშეები შიშველები არიან. ცნობილი ბაგია. გათიშე და ხელახლა დაუკავშირდი, ან სერვერი გადატვირთე. ინტერიერში შესვლა და გამოსვლა ზოგჯერ ერთი მოთამაშისთვის ასწორებს. თუ განმეორდება, ჩვეულებრივი მიზეზი კლიენტებს შორის განსხვავებული მოდებია.
მტრული NPC-ები მხოლოდ ერთ მოთამაშეს ესხმიან თავს. საბრძოლო targeting სისტემამ ნიადაგი დაკარგა. ბრძოლის თავიდან დაწყება - არეს დატოვება და დაბრუნება - ჩვეულებრივ აგრესიას ისევ გადაანაწილებს.
Follower-ები quest-ის შუაგულში იკარგებიან. მოსალოდნელია. follower-ის AI იმ კლიენტზე მუშაობს, რომელსაც ის ეკუთვნის, დეველოპერები კი გირჩევენ, დაკავშირებამდე follower-ები გაათავისუფლო. Dragonborn-ების ჯგუფს ისინი არ სჭირდება.
Quest-ები მოთამაშეებს შორის desync-დება. შეამოწმე, რომ ყველა მოდის ერთსა და იმავე ვერსიასა და Skyrim-ის ერთსა და იმავე build-ზეა, შემდეგ playguide-ს გადახედე: quest-ის სინქრონიზაციას წესები აქვს იმის შესახებ, ვინ უნდა ხელმძღვანელობდეს და როდის უნდა ჩაბარდეს ამოცანები, "გატეხილი quest-ის" ანგარიშების უმეტესობა კი ჯგუფია, რომელიც მათ უგულებელყოფს.
მოთამაშე შედის და მაშინვე კრაშდება. თითქმის ყოველთვის ეს მოდია, რომელიც სერვერს არ უნახავს, ან Creation Club-ის ნივთი. ჩართე bEnableModCheck საიმედო loadorder.txt-ით და პრობლემა საიდუმლოებას შეწყვეტს.
FAQ#
რამდენი მოთამაშე დაიტევს Skyrim Together Reborn-ის სერვერი?
კოდში მკაცრი ზღვარი არ არის, ნაგულისხმევი uMaxPlayerCount კი 8-ია. დეველოპერები 2-დან 8 ადამიანამდე გირჩევენ. ამის მიღმა ვარდება თამაშის საკუთარი quest და დიალოგის სისტემები და არა სერვერი.
ინახავს სერვერი სამყაროს?
არა. სერვერი მხოლოდ კონფიგურაციას, logs-სა და სესიის ცოცხალ მდგომარეობას ინახავს. ყველა პერსონაჟი, quest და ნივთი თითოეული მოთამაშის ლოკალურ Skyrim save-შია, სწორედ ამიტომ არ აკეთებს ოფიციალური Docker დაყენება სამყაროს დირექტორიის mount-ს და სწორედ ამიტომ ვერ აღადგენ სესიას მოგვიანებით.
Skyrim-ის რომელი ვერსია მჭირდება?
Skyrim Special Edition უახლეს 1.6.x build-ზე. Anniversary Upgrade საჭირო არ არის და უკეთესია გამორთული იყოს. Skyrim VR, Legendary Edition, ორიგინალური Skyrim, Epic-ისა და Game Pass-ის ვერსიები და ყველა კონსოლის გამოცემა მხარდაჭერილი არ არის და არასოდეს იქნება.
შემიძლია სხვა მოდების გამოყენება?
შეგიძლია, და დეველოპერები ამას არ გირჩევენ. არაფერია ცალსახად სინქრონიზებული; გრაფიკის მოდები ზოგადად კარგად იქცევა, ყველაფერი, რაც renderer-ს ან save სისტემას ებმება, ზოგადად - არა. თუ მოდებს იყენებ, ჩართე bEnableModCheck=true და ყველა კლიენტი შენ მიერ კონტროლირებად loadorder.txt-ს მიარგე.
რატომ არ ჩანს ჩემი სერვერი სიაში?
ან bAnnounceServer არის false, ან sPassword არის დაყენებული - პაროლიანი სერვერი საჯარო სიიდან დაფარულია announce პარამეტრის მიუხედავად. მოთამაშეებს მაინც შეუძლიათ მას მისამართით შეუერთდნენ.
რას აკეთებს bPremiumMode სინამდვილეში?
ის tick rate-ს ადგენს: true აძლევს 60 Hz-ს, false - 30 Hz-ს. ეს ფასიანი ფუნქცია არ არის და არაფერს ხსნის. დატოვე ჩართული, თუ მასპინძელი მანქანა არ იტანჯება.




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