Killing Floor 2-ის dedicated სერვერი უფასო SteamCMD ჩამოტვირთვაა (app id 232130), მუშაობს Linux-სა და Windows-ზე, Survival-ში ექვს მოთამაშეს იტევს და კომფორტულად ეტევა 3-4 GB მეხსიერებაში, ერთ სწრაფ ბირთვზე. ორი რამ თითქმის ყველას პირველივე მცდელობისას ებმევა. სერვერი პირველ გაშვებაზე საკუთარ კონფიგურაციის ფაილებს თავად წერს და წინასწარ ჩადებულ ყველაფერს გადააწერს, ამიტომ თანმიმდევრობა ასეთია: დააინსტალირე, გაუშვი, გააჩერე, შემდეგ დაარედაქტირე. და ის, რისი შეცვლაც ხალხს ყველაზე ხშირად უნდათ - რუკა, რეჟიმი, სირთულე, ტალღების რაოდენობა - საერთოდ არ არის კონფიგურაციის ფაილში; ის გაშვების ხაზშია, რუკის სახელზე მიმატებულ URL-ის მსგავს სტრიქონში. ეს ორი რამ თუ სწორად გაქვს, დანარჩენი წვრილმანია.
რას გაძლევს dedicated სერვერი#
Killing Floor 2 ტალღებად დაყოფილი co-op მსროლელია, ხოლო სერვერი თამაშის გაშიშვლებული ასლია, რენდერერის გარეშე. ის ტვირთავს ერთ რუკას, უშვებს ერთ თამაშის რეჟიმს და თამაშის დასრულებისას რუკას თავიდან იწყებს. არ არსებობს lobby, არ არსებობს რეჟიმის კენჭისყრა რუკის კენჭისყრის გარდა და რეჟიმის შეცვლა შეუძლებელია პროცესის სხვა გაშვების ხაზით ხელახლა გაშვების გარეშე.
რეჟიმები და კლასის სახელი, რომელიც თითოეულს სჭირდება:
| რეჟიმი | თამაშის კლასი | მოთამაშეები |
|---|---|---|
| Survival | KFGameContent.KFGameInfo_Survival | 6 |
| Weekly Outbreak | KFGameContent.KFGameInfo_WeeklySurvival | 6 |
| Endless | KFGameContent.KFGameInfo_Endless | 6 |
| Objective | KFGameContent.KFGameInfo_Objective | 6 |
| Versus Survival | KFGameContent.KFGameInfo_VersusSurvival | 12 |
ექვსი ის რიცხვია, რომლის გარშემოც თამაშია დაბალანსებული. Versus თორმეტს იღებს, რადგან ნახევარი Zed-ებით თამაშობს. ლიმიტის გაზრდა შესაძლებელია და ამას აკეთებენ კიდეც, მაგრამ ეს ერთი პარამეტრი არ არის: ლიმიტს თამაშის რეჟიმის კლასი აკონტროლებს, ამიტომ თითოეული რეჟიმის MaxPlayers უნდა შეიცვალოს, web admin პანელი მას ყოველ რუკის ცვლილებაზე ანულებს და პრაქტიკაში სერვერები ამის ნაცვლად ცალკე max-players mutator-ს იყენებენ. მაშინაც კი, custom HUD-ის გარეშე ცხრილი მხოლოდ ექვს სტრიქონს ხატავს. ტალღის შემადგენლობა, dosh-ის ეკონომიკა და ბოსის სიცოცხლე ექვსზე იყო დაწერილი, ამიტომ უფრო დიდი სერვერი უფრო ადვილი და ხმაურიანი თამაშია და არა უფრო დიდი.
ადმინისტრირება არ არის ისეთი, როგორსაც Source-ის თამაშებიდან მოსული ელოდება. არ არსებობს rcon_password, არ არსებობს rcon კონსოლის ბრძანება და არ არსებობს Source RCON პორტი. დისტანციური ადმინისტრირება არის თამაშის სერვერში ჩაშენებული პატარა web სერვერი, რომელიც ნაგულისხმევად გამორთულია, პლუს ini ფაილები. ეს web პანელი ქვემოთაა აღწერილი და ის ყველაზე სასარგებლო რამაა, რაც შეგიძლია ჩართო.
მოთხოვნები და რესურსების მოხმარება#
სერვერი მეხსიერებაზე მსუბუქია და ერთ ბირთვზე - ზომიერად მძიმე. ფასს Zed-ების pathfinding და ფიზიკა გიხდის, ამიტომ პიკი დიდ რუკაზე სავსე lobby-სთან გვიანი ტალღაა და არა ბოსთან ბრძოლა.
| კონფიგურაცია | RAM | CPU | შენიშვნები |
|---|---|---|---|
| 6 მოთამაშე, სტანდარტული რუკები, Survival | 1-2 GB | 1 ბირთვი | უმოქმედობისას ხშირად 1 GB-ზე გაცილებით ნაკლები |
| 6 მოთამაშე, რამდენიმე workshop რუკა | 2-3 GB | 1-1.5 ბირთვი | პიკებს რუკის ჩატვირთვები იძლევა |
| 12 მოთამაშე, Versus | 2-3 GB | 1.5 ბირთვი | მეტი აქტორი და არა მნიშვნელოვნად მეტი მეხსიერება |
| Endless, გრძელი სესიები | 3 GB | 1.5-2 ბირთვი | გრძელი სესიის განმავლობაში მეხსიერება იზრდება |
ეს რიცხვები შეგნებულად დაბალია იმაზე, რასაც ჰოსტინგის გვერდების უმეტესობა გეტყვის. ექვსმოთამაშიანი Killing Floor 2-ის ერთი ინსტანცია გაზომილია: რამდენიმე ასეული მეგაბაიტი რეზიდენტული მეხსიერება და თანამედროვე ბირთვის რამდენიმე პროცენტი. გულახდილი რჩევა ასეთია: აქ მეხსიერებას არ ყიდულობ და 8 GB-ის ყიდვა იმიტომ, რომ შედარების ცხრილმა ასე თქვა, ფულის გადაყრაა.
- CPU: თამაშის სიმულაცია პრაქტიკულად ერთი thread-ია, სწორედ ამიტომ იღებს სერვერი
-PREFERREDPROCESSOR=პარამეტრს, რათა თავი მიამაგროს. დაიჭერს თუ არა მე-9 ტალღა Hell on Earth-ზე თავის tick rate-ს, ბირთვის სიხშირეზეა დამოკიდებული; ბირთვების რაოდენობა თითქმის არაფერს წყვეტს. CPU თუ RAM გეიმ სერვერებისთვის ამ მსჯელობის ზოგადი ვერსიაა. - დისკი: ეს ნამდვილი შეზღუდვაა. ინსტალაცია ამ ეპოქის თამაშისთვის დიდია - გათვალე 30 GB, და მეტი, თუ დიდი workshop კოლექციის ქეშირებას აპირებ, რადგან ყოველი გამოწერილი ელემენტი სერვერის ქეშში იშლება და იქვე რჩება.
- ქსელი: სრული ექვსმოთამაშიანი თამაში მოთხოვნადი არ არის, დაახლოებით 100-200 KB/s თითო მოთამაშეზე. ახლად შემოსულებს ნამდვილად აზიანებს workshop ჩამოტვირთვები, რომლებიც Steam-იდან მოდის და არა შენგან.
მეხსიერების მატება გრძელი Endless სესიის განმავლობაში ნორმალურია და არა გაჟონვა, რომლის გასწორებაც შეგიძლია. ყოველდღიური restart იმ საათზე, როცა არავინ თამაშობს, მას ბრტყელს ინახავს - ეს არის არგუმენტი პოსტში restart-ის განრიგები, რომლებიც გვეხმარება.
ინსტალაცია და პირველი გაშვება#
სერვერი SteamCMD-ზე ანონიმურია, ამიტომ ანგარიში არ გჭირდება:
$ steamcmd +force_install_dir /home/kf2/server +login anonymous \ +app_update 232130 validate +quitთუ თავად SteamCMD შენთვის ახალია, SteamCMD ახსნილი app id-ებს, validate-ს და განახლების სკრიპტებს განიხილავს. ბინარული ფაილია ადგილი, საიდანაც დაბნეულობა იწყება. Linux-ზე ის არის:
Binaries/Win64/KFGameSteamServer.bin.x86_64ეს არ არის შეცდომა აკრეფაში. ნატიური Linux სერვერი საქაღალდეში Win64 ცხოვრობს, რადგან build სისტემას ის არასოდეს გადაუარქმევია. Windows-ზე მეზობელი ფაილია KFServer.exe.
ახლა მთავარი: გაუშვი ერთხელ და გააჩერე, სანამ რამეს დაარედაქტირებ. პირველი გაშვება KFGame/Config/-ში კონფიგურაციის ფაილების სრულ კომპლექტს წერს და თუ იქ უკვე არის ფაილი სერვერისთვის მიუღებელი ფორმით, ის იცვლება. გაუშვი, დაელოდე რუკის ჩატვირთვას, გააჩერე სწორად, შემდეგ დაარედაქტირე.
$ cd /home/kf2/server/Binaries/Win64$ ./KFGameSteamServer.bin.x86_64 \ KF-BioticsLab?Game=KFGameContent.KFGameInfo_Survival?Difficulty=2?GameLength=1 \ -Port=7777 -QueryPort=27015გაშვების ხაზი: რუკა, რეჟიმი, სირთულე და ხანგრძლივობა#
რუკის სახელის შემდეგ ყველაფერი URL პარამეტრია, გამოყოფილი ?-ით, და ის ini-ს ექვივალენტურ მნიშვნელობას ჯობნის. სამი, რომელიც მნიშვნელოვანია:
| პარამეტრი | მნიშვნელობები |
|---|---|
Game | რეჟიმის კლასი ზემოთ მოცემული ცხრილიდან |
Difficulty | 0 Normal, 1 Hard, 2 Suicidal, 3 Hell on Earth |
GameLength | 0 Short (4 ტალღა), 1 Medium (7 ტალღა), 2 Long (10 ტალღა) |
სტანდარტული რუკების სახელები ყველა KF--ით იწყება: KF-BioticsLab, KF-Outpost, KF-BurningParis, KF-Farmhouse, KF-VolterManor და ასე შემდეგ. რუკა, რომელსაც ბრძანების ხაზში ასახელებ, არის ის, რომელშიც სერვერი ჩაირთვება; სად წავა შემდეგ, ini-ში მდებარე რუკების ციკლი წყვეტს.
აქვე შეგიძლია გადასცე ?MaxPlayers=6 და ?Mutator=Package.ClassName, mutator-ები მძიმით გამოყოფილი, თუ რამდენიმეს უშვებ. პანელზე დაფუძნებულ ჰოსტზე ამ ხაზს საერთოდ არ აკრეფ - იგივე მნიშვნელობები Startup ჩანართში ველებად ჩანს და RE:NODE-ზე სწორედ იქ ცხოვრობს რუკა, რეჟიმი, სირთულე და ხანგრძლივობა. ერთის შეცვლა და restart მთელი ოპერაციაა.
კონფიგურაციის ფაილები და პარამეტრები, რომლებიც ღირს შეცვლა#
KFGame/Config/ თითოეული ქვესისტემისთვის ერთ ფაილს ინახავს, პლატფორმის პრეფიქსით. Windows-ზე სახელები PCServer--ით იწყება; Linux-ზე - LinuxServer--ით. სამი, რომელსაც შეეხები:
| ფაილი | რას ინახავს |
|---|---|
PCServer-KFGame.ini | სერვერის სახელი, პაროლები, რუკების ციკლი, MOTD, კენჭისყრა, გეიმპლეის გადამრთველები |
PCServer-KFEngine.ini | Workshop გამოწერები, ჩამოტვირთვის მენეჯერები, ქსელი |
KFWeb.ini | web admin პანელი |
KFWebAdmin.ini | რამდენიმე web admin ანგარიში, თუ გინდა |
-ConfigSubDir=<name> ინსტანციას KFGame/Config-ის ქვეშ საკუთარ საქაღალდეს აძლევს, რითაც ერთი ინსტალაციიდან რამდენიმე სერვერს უშვებ ისე, რომ ერთსა და იმავე ფაილებს არ ეჩხუბებიან.
PCServer-KFGame.ini-ის გასაღებები, რომლებიც ადგილს იმსახურებს:
[Engine.GameReplicationInfo]ServerName=Frankfurt Hell on EarthShortName=HoE[Engine.AccessControl]AdminPassword=a-long-random-stringGamePassword=[Engine.GameInfo]MaxPlayers=12MaxSpectators=2GameDifficulty=1.000000MaxIdleTime=0.000000bKickLiveIdlers=False[KFGame.KFGameInfo]GameMapCycles=(Maps=("KF-BurningParis","KF-BioticsLab","KF-Outpost"))ServerMOTD=Welcome. \n \n Have fun and good luck!bDisableTeamCollision=FalsebDisableKickVote=FalseKickVotePercentage=0.660000bDisableMapVote=FalseMapVoteDuration=60.000000bDisablePublicTextChat=False[KFGameContent.KFGameInfo_Survival]MaxPlayers=6სათითაოდ:
ServerNameარის ის, რასაც ბრაუზერი აჩვენებს. შეინახე მოკლე და სირთულე ჩაწერე მასში - ხალხი კითხვით ფილტრავს და არა ფილტრით.AdminPasswordსერვერის ერთადერთი credential-ია. ის web პანელში გაშვებს და თამაშში admin უფლებას გაძლევს. ცარიელიGamePasswordსაჯარო სერვერს ნიშნავს; დააყენე და სერვერი პირადი გახდება და, როგორც წესი, ბრაუზერიდან ქრება.- მოთამაშეთა რაოდენობა ორჯერ არის დაყენებული.
[Engine.GameInfo] MaxPlayersძრავის ჭერია და 12-ით მოდის. რიცხვი, რომელიც რეალურად მოქმედებს, რეჟიმის მიხედვითია და[KFGameContent.KFGameInfo_Survival]-შია, რომელიც 6-ით მოდის. პირველის გაზრდა მეორის გარეშე არაფერს არ აკეთებს, სწორედ ამიტომ ასკვნის ამდენი ადამიანი, რომ პარამეტრი გაფუჭებულია. GameMapCyclesსიების სიაა და სერვერების უმეტესობას ზუსტად ერთი სჭირდება. მასში დასახელებული ყველა რუკა უნდა არსებობდეს სერვერზე, workshop რუკების ჩათვლით, თორემ ციკლი გამოტოვებულ ჩანაწერზე ჩერდება. დოკუმენტირებული ზღვარია 519 რუკა როტაციაში, რომლის გადაცილებისას სერვერი არასწორად იქცევა.ServerMOTD,BannerLinkდაWebsiteLinkსამივე[KFGame.KFGameInfo]-შია და არა საკუთარ სექციაში.\nარის ხაზის გადატანა. გაითვალისწინე, რომ web admin პანელიდან პარამეტრების შენახვასWebsiteLink-ის გასუფთავების ჩვევა აქვს.- უმოქმედობისას გაგდება არის
MaxIdleTimeპლუსbKickLiveIdlers[Engine.GameInfo]-ში, ხოლო0ნიშნავს არასოდეს. - ტალღების რაოდენობა გასაღები არ არის. ის მოდის
GameLength-იდან, რომელიც გაშვების ხაზზეა დაყენებული.
ზოგადი წესი Killing Floor 2-ისთვის: Tripwire-მა სეზონებს შორის მოწოდებული ini არაერთხელ შეცვალა. ფაილი, რომელიც სერვერმა შენთვის დაწერა, არის გასაღებების ავტორიტეტული სია იმ ვერსიისთვის, რომელსაც უშვებ; გზამკვლევი მხოლოდ იმათი სიაა, რომლებზეც ღირს დაფიქრება.
Web admin#
web admin პანელი თამაშის სერვერის შიგნით მდებარე პატარა HTTP სერვერია. ის გაძლევს მოთამაშეთა ცოცხალ სიას kick-ისა და ban-ის შესაძლებლობით, მიმდინარე რუკასა და რეჟიმს - ორივეს restart-ის გარეშე შეცვლის უნარით, ჩატის ფანჯარას, კონსოლს და ზემოთ აღწერილი პარამეტრების უმეტესობის რედაქტორებს. ის გამორთულია, სანამ არ ჩართავ:
[IpDrv.WebServer]Applications[0]=WebAdmin.KF2ServerAdminApplicationPaths[0]=/ServerAdminListenPort=8080MaxConnections=18bEnabled=trueგადატვირთე, შემდეგ გახსენი http://your-server-address:8080/ServerAdmin და შედი მომხმარებლის სახელით Admin და პაროლით AdminPassword-იდან. თუ ეს პაროლი ცარიელია, შესვლა საერთოდ ვერ მოხერხდება და პანელი არ გეტყვის რატომ. თუ ერთზე მეტი ანგარიში გინდა, KFWebAdmin.ini ავთენტიფიკაციის კლასს multi-admin-ზე გადართავს და მათ შესანახად MultiAdmin.ini-ს ქმნის.
ორი პრაქტიკული შენიშვნა. რუკის ან რეჟიმის შეცვლა პანელიდან მაშინვე ამოქმედდება და არავის აგდებს, რაც მას restart-ზე გაცილებით სასიამოვნოს ხდის. და ნებისმიერი პარამეტრი, რომელსაც პანელში შეცვლი, ini ფაილებში იწერება, ანუ პანელიცა და ფაილებიც ერთი და იმავეს ორი ხედია და არა სიმართლის ორი მოწინააღმდეგე წყარო.
პორტები და როგორ გპოულობენ მოთამაშეები#
| პორტი | პროტოკოლი | დანიშნულება |
|---|---|---|
7777 | UDP | თამაშის ტრაფიკი |
27015 | UDP | Steam query - სერვერების ბრაუზერი ამას ეკითხება |
20560 | UDP | Steam |
8080 | TCP | Web admin, მხოლოდ თუ ჩართე |
თამაშის პორტი და query პორტი დაყენებულია -Port=-ით და -QueryPort=-ით და აქ ერთი ქცევა ღირს ცოდნად: -Port=-ის შეცვლა query პორტს ავტომატურად იმავე სიდიდით წევს, თუ -QueryPort=-საც არ გადასცემ. რამდენიმე ინსტანციის გაშვებისას ეს მოსახერხებელია, ხოლო როცა არ უშვებ - გასაკვირი. სამივე UDP პორტი უნდა იყოს ხელმისაწვდომი; სერვერი, რომელიც უკმარისობის გარეშე მუშაობს, მაგრამ ბრაუზერში არასოდეს ჩანს, თითქმის ყოველთვის დაბლოკილი ან არასწორი query პორტი აქვს. კიდევ ერთი, გამავალი: Weekly Outbreak სერვერი დროს NTP-ით UDP 123-ზე ეძებს, რათა გაიგოს რომელი weekly არის მიმდინარე. გეიმ სერვერის პორტები ახსნილი განიხილავს, რატომ არსებობს query პორტი და რა ფუჭდება, როცა წყვილიდან მხოლოდ ერთია ღია.
მოთამაშეები სამი გზით გპოულობენ: თამაშში ჩაშენებული ბრაუზერი, რომელიც ნელია და მკაცრად გაფილტრული; მისამართით დამატებული ფავორიტი; ან კონსოლი. Killing Floor 2 Unreal-ის კონსოლს ინარჩუნებს, ამიტომ მოთამაშეს შეუძლია დააჭიროს კონსოლის ღილაკს და აკრიფოს:
open 203.0.113.10:7777ეს საიმედო ტესტია, როცა ბრაუზერი არ გეხმარება. თუ open მუშაობს და ბრაუზერი შენ არ გიჩვენებს, სერვერი კარგადაა, query პორტი კი - არა.
RE:NODE-ზე თამაშისა და query პორტები სერვერთან ერთად გამოიყოფა, ხოლო admin პაროლი ინსტალაციისას თავისით გენერირდება. Web admin-ს საკუთარი პორტი სჭირდება, რომელსაც Network ჩანართზე ამატებ.
Workshop რუკები, mutator-ები და custom კონტენტი#
Killing Floor 2 workshop კონტენტს id-ით იღებს და არა გამოწერით. id-ებს ძრავის კონფიგში ჩამოთვლი:
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]ServerSubscribedWorkshopItems=1234567890ServerSubscribedWorkshopItems=1234567891[IpDrv.TcpNetDriver]DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownloadთითო ხაზი თითო ელემენტზე, გამეორებით და არა მძიმით გამოყოფილი სია. DownloadManagers ხაზი ის არის, რომელსაც ხალხი გამოტოვებს და ის უნდა იყოს [IpDrv.TcpNetDriver]-ის ქვეშ არსებული სიის პირველი ჩანაწერი - მის გარეშე სერვერს რუკა აქვს, შემოსულ კლიენტებს კი - არა, რაც გატეხილი სერვერის შთაბეჭდილებას ტოვებს და არა გამოტოვებული ხაზისას.
შემდეგ გაშვებაზე სერვერი თითოეულ ელემენტს KFGame/Cache/<id>/0/BrewedPC-ში ჩამოტვირთავს, ხოლო რუკის ნამდვილი სახელი იქ მყოფი .kfm ფაილია გაფართოების გარეშე. ამ პირველ გაშვებაზე კონსოლს უყურე, რადგან არასწორი id ჩუმად ვარდება. Linux-ზე დიდი ხნის ბაგია: სერვერი cache საქაღალდეს არ ქმნის, ამიტომ გაშვებამდე mkdir -p KFGame/Cache.
ჩამოტვირთული რუკა ჯერ არ არის სათამაშო რუკა. Killing Floor 2-ს მისთვის summary ბლოკი სჭირდება PCServer-KFGame.ini-ში, სანამ ის ციკლსა და კენჭისყრის სიაში გამოჩნდება:
[KF-MyCustomMap KFMapSummary]MapName=KF-MyCustomMapScreenshotPathName=UI_MapPreview_TEX.UI_MapPreview_Placeholderსექციის სახელი არის რუკის ფაილის სახელი, შემდეგ გამოტოვება და KFMapSummary, რაც იმდენად უჩვეულოა, რომ ზუსტად გადაწერას იმსახურებს. შემდეგ დაამატე რუკა GameMapCycles-ში. მოთამაშეები, რომლებიც შემოდიან, იმავე workshop ელემენტებზე გადამისამართდებიან და Steam მათ კლიენტის მხარეს იღებს, სწორედ ამიტომაა ძლიერ მოდიფიცირებულ სერვერზე პირველი შესვლა ნელი და ამიტომ ჩანს მოთამაშე, რომელმაც რუკა ვერ ჩამოტვირთა, ჩატვირთვის ეკრანზე გაჭედილად.
Mutator-ები გაშვების ხაზზე გადაეცემა, როგორც ?Mutator=Package.ClassName, რამდენიმე მძიმით გამოყოფილი ერთი ?Mutator=-ის შიგნით და არა გამეორებული. მათი მიწოდება workshop-ითაც შეიძლება, ისევე როგორც რუკებისა.
აი ნაწილი, რომელიც ცვლის, როგორი სერვერი გიმუშავებს. Tripwire whitelist-ს ინახავს და სერვერი, რომელიც რაიმე მოდიფიკაციას უშვებს, რომელიც მასში არ არის, აღინიშნება როგორც Unranked: მასზე მოთამაშეები თამაშისას perk XP-ს არ იღებენ. Vanilla და whitelist-ში შესული კონტენტი სერვერს Ranked-ად ტოვებს. ეს არც ბაგია და არც ჰოსტის პარამეტრი, ეს გამომცემლის პოლიტიკაა და პირველი რამ, რაც ხალხს უნდა უთხრა, სანამ საღამოს შენს სერვერზე levelling-ს დახარჯავენ. კარგად ცნობილი მოდები საკუთარ სტატუსს აცხადებენ და ზოგი პოპულარული უბრალოდ არასოდეს შესულა whitelist-ში.
workshop კონტენტის უფრო ფართო მექანიკა სერვერზე - კოლექციები, განახლების დრო, რა ხდება, როცა ავტორი ხელახლა აქვეყნებს - აღწერილია პოსტში Steam Workshop მოდები dedicated სერვერებზე. ყველაზე მნიშვნელოვანი რჩევა იქიდან აქაც: ავტორი, რომელიც სეზონის შუაში რუკას ანახლებს, შენს ციკლს შეგატყობინებლად გააფუჭებს, ამიტომ განახლების შემდეგ კონსოლი შეამოწმე და არა მოთამაშისგან გაიგე.
განახლებები, restart-ები და backup-ები#
Killing Floor 2-ის კლიენტები და სერვერები ზუსტად უნდა ემთხვეოდეს. ყოველი patch-ის შემდეგ - Tripwire სეზონურ კონტენტ-განახლებებს გამოუშვებს - სერვერმა app_update უნდა გაუშვას, სანამ ვინმე შემოვა, ხოლო ახალ build-ზე მყოფი მოთამაშე, რომელიც ძველ სერვერს შეხვდება, ვერსიის შეცდომას იღებს გამოსადეგი დეტალის გარეშე.
რისი backup-იც ღირს, პატარაა და ადვილი დასაკარგი:
KFGame/Config/- ყველა პარამეტრი, რომელიც შეიტანე, workshop სიისა და რუკის summary-ების ჩათვლით.- ყველაფერი, რაც
KFGame/-ში ხელით ჩადე, მაგალითად რუკები, რომლებსაც თავად ჰოსტავ და არა workshop-იდან.
აქ სამყაროს ფაილი არ არის. Killing Floor 2 სერვერს არ აქვს მუდმივი მდგომარეობა, რომელიც დაცვას საჭიროებს კონფიგურაციის გარდა, რადგან perk-ების პროგრესი თითოეული მოთამაშის Steam პროფილზე ცხოვრობს და არა შენს სერვერზე. ეს backup-ს იაფს და აღდგენას სწრაფს ხდის - შეინახე config საქაღალდის ასლი ყოველი patch-ის წინ და ყოველ რედაქტირების რაუნდამდე. Backup-ები, რომლებიც ნამდვილად აღდგება ეხება ამ საქმის იმ ნახევარს, რომელსაც ხალხი ტოვებს, კერძოდ ასლის გამართულობის დამტკიცებას.
RE:NODE-ზე Killing Floor 2-ის გეგმებს backup slot-ები აქვს, აღდგენა ერთი ღილაკია, ხოლო Schedules ჩანართი ღამის backup-სა და ყოველდღიურ restart-ს გაუშვებს, რომლის წინაც გამაფრთხილებელი ბრძანებაა. თუ სერვერი მეხსიერების ლიმიტს მიაღწევს, კონტეინერი swap-ის ნაცვლად ჩერდება და სუფთად იწყება, რაც მდგომარეობის არმქონე თამაშის სერვერზე ერთ ტალღას გიჯდება და სხვა არაფერს.
პრობლემების გადაჭრა#
ჩემი ini რედაქტირებები ქრება. ან სერვერის მუშაობისას არედაქტირებდი, ან პირველ გაშვებამდე. გააჩერე სერვერი, დაარედაქტირე, გაუშვი.
სერვერი ბრაუზერში არ ჩანს. შეამოწმე, რომ query პორტი UDP-ზეა ღია და -QueryPort=-ს ემთხვევა. გამოსცადე open ip:7777-ით თამაშის კონსოლიდან: თუ ის უკავშირდება, თამაშის პორტი კარგადაა და პრობლემა მხოლოდ query მხარეშია.
Web admin კავშირს უარყოფს. PCServer-KFWeb.ini-ში bEnabled=true, სერვერი მას შემდეგ გადატვირთულია, რაც დააყენე, და web admin პორტი TCP-ზე ღიაა. გაითვალისწინე, რომ ეს პორტი TCP-ა, დანარჩენი ყველაფერი კი UDP, რაც firewall-ის წესების კოპირებისას ხალხს ებმევა.
Web admin იტვირთება, მაგრამ ჩემს პაროლს უარყოფს. AdminPassword ცარიელია ან ბოლოში გამოტოვება აქვს. პანელი ორივე შემთხვევაში ერთსა და იმავე შეცდომას იძლევა.
workshop რუკა არასოდეს იტვირთება. id არასწორია, ან ეს კოლექციის id-ია და არა ელემენტისა. კოლექციები არ მიიღება - ჩამოთვალე თითოეული ელემენტი.
workshop რუკა იტვირთება, მაგრამ კენჭისყრის სიაში არ არის. KFMapSummary ბლოკი აკლია ან სექციის სახელი რუკის ფაილს ზუსტად არ ემთხვევა. შეინახე იდენტური რეგისტრი ციკლში, summary ბლოკსა და თავად ფაილში.
სერვერს workshop რუკა აქვს, კლიენტებს - არა. [IpDrv.TcpNetDriver]-ში DownloadManagers ხაზი აკლია, ან ის ამ სიის პირველი ჩანაწერი არ არის.
ლოგი იმეორებს „Attempting server re-register now“-ს და Steam Server UID-ს ელოდება. იმავე მანქანაზე Steam-ის თამაში მუშაობს, ინსტალაცია არასოდეს გავლილა validate-ით, ან თან მოყოლილი UE3Redist წინაპირობები არ არის დაყენებული.
ჩემი start სკრიპტი ისევ და ისევ ნულდება. SteamCMD-ის განახლების ხაზში validate მოწოდებულ start სკრიპტს ყოველ გაშვებაზე გადააწერს. შეინახე საკუთარი ასლი სხვა სახელით.
მოთამაშეებს ვერსიის შეუსაბამობა უჩნდებათ. გაუშვი app_update სერვერზე. თუ ეს მოდიფიცირებული სერვერია, მოდებიც უნდა განახლდეს, სანამ ხალხი ითამაშებს - ზოგადი გეგმა აღწერილია პოსტში რა გააკეთო, როცა მოდის განახლება ყველაფერს არღვევს.
სერვერი მუდამ ერთ რუკას თამაშობს. GameMapCycles ცარიელია, მხოლოდ ამ რუკას შეიცავს, ან არარსებულ რუკას ასახელებს და ციკლი მას ვერ სცდება.
FAQ#
რამდენი მოთამაშის დატევა შეუძლია Killing Floor 2 სერვერს?
ექვსი Survival-ში, Endless-ში, Objective-სა და Weekly-ში და თორმეტი Versus Survival-ში. ექვსმოთამაშიანი ზღვარი დაბალანსების გადაწყვეტილებაა და არა აპარატურის. MaxPlayers-ის გაზრდა შეგიძლია, მაგრამ ტალღის ზომა, dosh და ბოსის სიცოცხლე მასთან ერთად არ იზრდება, ამიტომ თამაში უფრო ადვილი და ხმაურიანი ხდება და არა უფრო დიდი.
აქვს თუ არა Killing Floor 2-ს RCON?
არა. Source-ის მსგავსი RCON პორტი ან პაროლი არ არსებობს. დისტანციური ადმინისტრირება არის ჩაშენებული web admin პანელი HTTP-ზე, პლუს ის კონსოლის წვდომა, რასაც შენი ჰოსტი გაძლევს. სწორედ ამიტომ იმსახურებს admin პაროლი იმავე მოვლას, რასაც RCON პაროლს მიაქცევდი.
რამდენი RAM სჭირდება Killing Floor 2 სერვერს?
ნაკლები, ვიდრე ხალხს ჰყიდიან. ექვსმოთამაშიანი Survival ინსტანცია სტანდარტულ რუკებზე გაზომილია რამდენიმე ასეულ მეგაბაიტად; 2-3 GB მას კომფორტულად ფარავს workshop კონტენტითა და გრძელი Endless სესიით. დისკი ნამდვილი მოთხოვნაა - მარტო ინსტალაცია ათეულობით გიგაბაიტს ითხოვს. იყიდე პროცესორის სიხშირე და საცავი და არა მეხსიერება.
სად შევცვალო სირთულე?
გაშვების ხაზზე, როგორც ?Difficulty= მნიშვნელობით 0-დან 3-მდე, ან პირდაპირ web admin პანელიდან. ini-ს მნიშვნელობას გაშვების ხაზი ჯობნის, სწორედ ამიტომ ჩანს ხოლმე, რომ ფაილის რედაქტირება და restart არაფერს ცვლის.
იღებენ თუ არა მოთამაშეები perk XP-ს ჩემს სერვერზე?
vanilla ან whitelist-ში შესულ სერვერზე - დიახ, პროგრესი კი მათ Steam ანგარიშზე ინახება და არა შენს სერვერზე, ამიტომ ვერაფერი, რასაც აკეთებ, მას ვერ დაკარგავს. თუ Tripwire-ის whitelist-ში არშესულ მოდიფიკაციას გაუშვებ, სერვერი Unranked ხდება: ხალხს ისევ შეუძლია თამაში, მაგრამ თამაშისას XP არ ემატებათ. თუ შენი ვითარება ასეთია, სერვერის სახელში დაწერე.
შემიძლია custom რუკების გაშვება Steam Workshop-ის გარეშე?
დიახ - ჩააგდე .kfm ფაილი სერვერის რუკების საქაღალდეში და მიეცი მას KFMapSummary ბლოკი და ადგილი ციკლში. დაბრკოლება ისაა, რომ მოთამაშეებს მისი ჩამოტვირთვის გზა აღარ აქვთ, ანუ ყველას, ვინც შემოდის, ფაილი წინასწარ უნდა ჰქონდეს. Workshop-ით დარიგება ზუსტად ამის გადასაჭრელად არსებობს.




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