Content Manager არის საზოგადოების ლაუნჩერი, რომელსაც Assetto Corsa-ს მოთამაშეების უმეტესობა უკვე იყენებს, და ის ამავდროულად სერვერის აწყობის ყველაზე მარტივი გზაა: მისი Server განყოფილება არედაქტირებს პრესეტებს, რომლებიც server_cfg.ini-ად და entry_list.ini-ად იქცევა, ამოწმებს, რომ ყველა მანქანა, სკინი და ტრასის layout, რომელიც აირჩიე, რეალურად არსებობს, და შეუძლია სერვერის ბინარული ფაილი, კონფიგი და სერვერისთვის საჭირო კონტენტის მონაცემები ერთ არქივად დააპაკეტოს, რომელსაც ჰოსტზე ატვირთავ. ამის შემდეგ მოდ-ტრასები და მანქანები ზუსტად ისე მუშაობს, როგორც სტანდარტული, ორი პირობით, რომლებიც თითქმის ყოველ წარუმატებელ შესვლას იწვევს: სერვერსა და ყველა მძღოლს თითოეული მოდის ერთი და იგივე ვერსია უნდა ჰქონდეს (სერვერი ფაილების checksum-ებს ამოწმებს), ხოლო კონფიგში საქაღალდეების სახელები დისკზე არსებულ საქაღალდეებს სიმბოლო-სიმბოლო უნდა ემთხვეოდეს - Linux სერვერზე მთავრული ასოების ჩათვლით.
სერვერის საკუთარი ფაილები დეტალურად განხილულია Assetto Corsa სერვერის გზამკვლევში. ეს პოსტი კონტენტის მხარეა: Content Manager-ის სერვერის პრესეტები, როგორ არის აწყობილი ტრასებისა და მანქანების საქაღალდეები, layout-ები და პიტ-ბოქსები, რას ამოწმებს სერვერი რეალურად, Custom Shaders Patch-ის მოთხოვნები და როგორ მიაწოდო სწორი ფაილები შენს მძღოლებს.
რას აკეთებს Content Manager სერვერისთვის#
Content Manager (CM) Assetto Corsa-ს ალტერნატიული ლაუნჩერია, რომელიც საზოგადოებამ დაწერა. სერვერის ადმინებისთვის ის ოთხ სასარგებლო რამეს აკეთებს:
- არედაქტირებს სერვერის პრესეტებს ფორმაში და არა ნედლ ini ფაილებში - ტრასისა და layout-ის ამრჩევი, მანქანების სია, entry list სკინებით, სესიები, ამინდი და დამხმარე სისტემები.
- ამოწმებს კონტენტს: მან იცის, რომელი მანქანები, სკინები და layout-ებია შენს კომპიუტერზე დაინსტალირებული, და სერვერის გაშვებამდე მონიშნავს ყველაფერს, რაც აკლია.
- უშვებს სერვერს ლოკალურად, რომ პრესეტი საკუთარ მანქანაზე შეამოწმო, სანამ რამეს ატვირთავ.
- აპაკეტებს პრესეტს სერვერის ბინარულ ფაილებთან, კონფიგთან და სერვერისთვის საჭირო კონტენტის მონაცემებთან ერთად, ჰოსტზე ასატვირთად მზად.
CM-ს აქვს უფასო ვერსია და ფასიანი სრული ვერსია, რომელიც დამატებით შესაძლებლობებს ხსნის. სერვერის ხელსაწყოები გადახდის გარეშეც გამოსადეგია; თუ აქ ნახსენები რომელიმე ოფცია შენთან ნაცრისფრადაა, სავარაუდოდ ეს არის მიზეზი.
CM პრესეტებს თამაშის საქაღალდეში ინახავს server/presets/-ის ქვეშ, თითო საქაღალდე თითო პრესეტზე (SERVER_00, SERVER_01 და ასე შემდეგ), თითოეულში საკუთარი server_cfg.ini და entry_list.ini. ეს იგივე ფაილებია, რომლებსაც acServer კითხულობს; CM ინტერფეისია და არა სხვა ფორმატი. ამას მნიშვნელობა აქვს, რადგან შეგიძლია პრესეტის შექმნილი ფაილები გახსნა, წაიკითხო და მოგვიანებით სერვერზე ხელით შეცვალო CM-ის გარეშე.
პრესეტის აწყობა#
CM-ში სერვერის განყოფილება პრესეტებს მარცხნივ ჩამოთვლის; შექმენი ერთი და ჩანართები თანმიმდევრობით გაიარე:
- Main: სახელი, პაროლი, ადმინის პაროლი, ტრასა და მისი layout და მანქანების სია. layout ცალსახად აირჩიე - ეს
CONFIG_TRACK-ს ადგენს. - Entry list: თითო სტრიქონი სასტარტო ბადის თითო სლოტზე, თითოეულს მანქანა და სკინი. CM აჩვენებს ტრასის პიტ-ბოქსების რაოდენობას და გაფრთხილებს, როცა სია უფრო გრძელია.
- Rules and conditions: დამხმარე სისტემები, დაზიანება, საწვავისა და საბურავების ცვეთის კოეფიციენტები, სესიები, დღის დრო, ამინდი, დინამიკური ტრასა.
- გაუშვი ლოკალურად და იმავე კომპიუტერიდან შედი. თუ საკუთარ ლოკალურ სერვერზე შესვლა შეგიძლია, პრესეტი ვალიდურია.
შემდეგ დააპაკეტე. დაპაკეტების ოფცია ქმნის არქივს, რომელიც შეიცავს სერვერის გამშვებ ფაილს შენ მიერ არჩეული პლატფორმებისთვის, cfg საქაღალდეს და content საქაღალდეს, სადაც მხოლოდ ის მონაცემთა ფაილებია, რომლებიც სერვერს თითოეული მანქანიდან და ტრასიდან სჭირდება - და არა ტექსტურები და 3D მოდელები. ასე აწყობილი სერვერის საქაღალდე მანქანაზე რამდენიმე მეგაბაიტია და არა ასობით.
ატვირთე არქივი სერვერზე და იქვე გახსენი - ფაილების მენეჯერი, რომელიც არქივებს იქვე ხსნის, სადაც ისინი დევს, აქ ბევრ დროს ზოგავს - ან ლოკალურად ამოაარქივე და საქაღალდეები SFTP-ით ატვირთე. ორივე განხილულია სტატიაში SFTP და ფაილების მენეჯერი. ჰოსტზე სერვერის ბინარული ფაილი უკვე დაინსტალირებულია, ამიტომ პაკეტიდან გჭირდება cfg/ და content/.
როგორ არის აწყობილი ტრასების საქაღალდეები#
ტრასები content/tracks/<track_folder>/-ში ცხოვრობს. საქაღალდის სახელი არის ის, რაც TRACK=-ში იწერება, და ის ხშირად სულაც არ ჰგავს ნაჩვენებ სახელს: მოდ-ტრასა სახელად "Circuit of the Example Hills" შეიძლება ex_hills_2024-ში ცხოვრობდეს. საქაღალდე წაიკითხე და არა სახელი მენიუში.
რამდენიმე layout-ის მქონე ტრასას თითოეული layout-ისთვის ქვესაქაღალდე აქვს, და CONFIG_TRACK= ერთ-ერთ მათგანს ასახელებს:
content/tracks/ex_hills_2024/ gp/ data/ surfaces.ini ... national/ data/ ui/ gp/ui_track.json national/ui_track.json models_gp.ini models_national.iniერთ-layout-იან ტრასას data/ საქაღალდე პირდაპირ ტრასის საქაღალდის ქვეშ აქვს, UI ფაილები პირდაპირ ui/-ის ქვეშ, CONFIG_TRACK კი ცარიელია.
| ტრასის ტიპი | TRACK= | CONFIG_TRACK= |
|---|---|---|
| ერთი layout | საქაღალდის სახელი | ცარიელი |
| რამდენიმე layout | საქაღალდის სახელი | layout-ის ქვესაქაღალდის სახელი |
| რამდენიმე layout, ცარიელად დატოვებული | საქაღალდის სახელი | ჩვეულებრივ გაშვებისას ფუჭდება |
პიტ-ბოქსები სასტარტო ბადის ზომის მკაცრი ზღვარია. ტრასის ui_track.json თითოეული layout-ისთვის მის პიტ-ბოქსების რაოდენობას აცხადებს, და MAX_CLIENTS და entry list მას არ უნდა აღემატებოდეს. მოდ-ტრასები აქ ძალიან განსხვავდება - კლუბურ ტრასას შეიძლება თორმეტი ჰქონდეს, გადაკეთებულ საჯარო გზას კი ხუთი. CM რიცხვს აჩვენებს, როცა layout-ს ირჩევ; შეამოწმე, სანამ 24-მანქანიან ბადეს დაპირდები.
როგორ არის აწყობილი მანქანების საქაღალდეები#
მანქანები content/cars/<car_folder>/-ში ცხოვრობს, და server_cfg.ini-ში CARS= ამ საქაღალდეების სახელების წერტილ-მძიმით გამოყოფილი სიაა.
content/cars/ex_gt3_2024/ data.acd skins/ 01_red/ 02_blue/ ui/ ui_car.json ...model and sound filesფიზიკის მონაცემები ჩვეულებრივ data.acd-შია დაპაკეტებული. ზოგიერთ მოდ-მანქანას მის ნაცვლად ან მასთან ერთად დაუპაკეტებელი data/ საქაღალდე მოყვება. ორივე შემთხვევაში ფიზიკის მონაცემები იმის ნაწილია, რასაც სერვერი თითოეული მძღოლის ასლს ადარებს, ამიტომ ორი მძღოლი ერთი და იმავე მანქანის საქაღალდის სხვადასხვა build-ით ურთიერთშემცვლელი არ არის.
სკინები კოსმეტიკურია. entry list თითო სლოტს ერთს ანიჭებს SKIN=-ით, რომელიც skins/-ის ქვეშ საქაღალდეს ასახელებს. მძღოლი, რომელსაც ეს სკინი არ აქვს, მის ნაცვლად ნაგულისხმევს ხედავს; ეს შესვლას არ უშლის. სკინების პაკეტები ლიგისთვის სასიამოვნო დეტალია და მათ გამო ვინმეს დაბლოკვა არ ღირს.
Checksum-ები: რას ადარებს სერვერი რეალურად#
როცა მძღოლი უერთდება, სერვერი ტრასისა და მანქანის მძღოლისეულ ასლში საკვანძო ფაილების checksum-ებს საკუთარს ადარებს. ნებისმიერი განსხვავება - და მძღოლი უარყოფილია. შედარება მოიცავს ფაილებს, რომლებიც მართვაზე მოქმედებს - ტრასის ზედაპირებისა და layout-ის მონაცემებს, მანქანის ფიზიკას - და არა ტექსტურებს, ხმებს ან სკინებს.
ამას პრაქტიკული შედეგები აქვს:
- სერვერს სწორი მონაცემთა ფაილები სჭირდება და არა სრული კონტენტი. სწორედ ამიტომ არის CM-ის დაპაკეტებული კონტენტი პატარა, და სწორედ ამიტომ მუშაობს სერვერი მხოლოდ
data.acd-ითა და ტრასის მონაცემთა საქაღალდეებით. - ვიზუალური მოდი checksum-ებს არ არღვევს, მაგრამ მოდი, რომელიც ფიზიკას ან ზედაპირის მონაცემებს ცვლის, არღვევს. ტრასის "გრაფიკული განახლება", რომელიც
surfaces.ini-საც ეხება, სერვერისთვის სხვა ტრასაა. - მოდის ხელახლა ჩამოტვირთვამ შეიძლება ის შეცვალოს. მოდების საიტები ფაილებს ჩუმად ხელახლა აქვეყნებს. "გასულ კვირას მუშაობდა" ჩვეულებრივ ნიშნავს, რომ ერთმა მძღოლმა ან სერვერმა უფრო ახალი build მიიღო.
- შეცდომა ფაილს ასახელებს. წაიკითხე - checksum-ის შეცდომა ტრასის ზედაპირის მონაცემებზე ტრასაზე მიუთითებს, მანქანის მონაცემებზე კი ამ მანქანაზე.
Linux სერვერები და საქაღალდეების სახელები#
ჰოსტირებული Assetto Corsa სერვერების უმეტესობა Linux-ის acServer-ს უშვებს. Linux-ზე ფაილების სახელები რეგისტრზეა დამოკიდებული, Windows-ზე კი - არა, რაც ნიშნავს, რომ Windows-ზე აწყობილი პრესეტი შეიძლება შენს კომპიუტერზე იდეალურად მუშაობდეს და სერვერზე ფუჭდებოდეს.
თუ TRACK=Ex_Hills_2024, საქაღალდე კი ex_hills_2024-ა, Windows მას პოულობს, Linux - ვერა. იგივე ეხება მანქანების, layout-ებისა და სკინების საქაღალდეებს. გამოსავალია, კონფიგი საქაღალდეს ზუსტად დაამთხვიო - სახელები სერვერის საკუთარი ფაილების სიიდან დააკოპირე და არა CM-ის ჩვენებიდან ან მეხსიერებიდან. როცა სერვერი გაშვებისას ითიშება, მისი ლოგი ასახელებს საქაღალდეს, რომელიც ვერ იპოვა; კონსოლის კითხვა სწორედ იმაზეა, როგორ იპოვო ეს ხაზი სწრაფად.
Custom Shaders Patch და მოთხოვნები#
Custom Shaders Patch (CSP) თამაშის რენდერერისა და ძრავის ფართოდ გამოყენებული გაფართოებაა. ბევრი თანამედროვე მოდ-ტრასა და მანქანა CSP-ის შესაძლებლობებს იყენებს - დამატებითი განათება, წვიმის ეფექტები, ფიზიკის გაფართოებები - და ზოგიერთი მის გარეშე სწორად ან საერთოდ არ მუშაობს.
სერვერისთვის ეს ისეთ კითხვას ბადებს, რომელიც ვანილურ თამაშს არასოდეს დაუსვამს: CSP-ის რომელი ვერსია უნდა ჰქონდეთ მძღოლებს? CM-ის სერვერის პარამეტრებს შეუძლია პრესეტისთვის CSP-ის მინიმალური ვერსია გამოაცხადოს, რომ მძღოლებს, რომლებსაც ის არ აქვთ, ამის შესახებ შესვლამდე ეცნობოთ და არა სესიის შუაში გაფუჭებული ტრასა აღმოაჩინონ. AssettoServer, acServer-ის ღია კოდის შემცვლელი, რომელიც მთავარ გზამკვლევშია აღწერილი, უფრო შორს მიდის და CSP-ის თავზე შესაძლებლობებს აშენებს - სინქრონიზებული ამინდი და დრო, საგზაო მოძრაობა და სხვა.
გადაწყვეტილება აუდიტორიაზეა. საჯარო სერვერი, რომელიც CSP-ის ახალ ვერსიას მოითხოვს, სუფთა ინსტალაციის მქონე მოთამაშეებს გამორიცხავს. ლიგა, რომლის ყველა მძღოლი CSP-ს იყენებს, მისი მოთხოვნით ბევრს იგებს. ორივე შემთხვევაში მოთხოვნა სერვერის სახელში ან აღწერაში მიუთითე და კონტენტის სიასთან ერთად გამოაქვეყნე.
კონტენტის მიწოდება შენი მძღოლებისთვის#
ვანილური სერვერი მძღოლებს კონტენტს არასოდეს უგზავნის, ამიტომ გავრცელება ადმინის საქმეა. რა მუშაობს:
- კონტენტის სია ზუსტი ვერსიებითა და ბმულებით. მანქანებისა და ტრასების სახელები, საქაღალდეების სახელები, ვერსია და სად ჩამოიტვირთება ეს ვერსია. Discord-ში მიმაგრებული, განახლებული ყოველ ჯერზე, როცა სერვერი იცვლება.
- ერთი არქივი მთელი ნაკრებისთვის. ლიგისთვის ყველა მანქანა და ტრასა ერთ ჩამოსატვირთ ფაილად დააპაკეტე, რომელიც სადმე სტაბილურად არის განთავსებული. მძღოლები მას CM-ში ჩააგდებენ, რომელიც Assetto Corsa-ს კონტენტს არქივებიდან აინსტალირებს.
- სერვერის მიერ გამოცხადებული ჩამოტვირთვის ბმულები. საზოგადოების სერვერის გარსებს და AssettoServer-ს შეუძლიათ CM-ს დაკარგული კონტენტის ჩამოტვირთვის ბმულები მიაწოდონ, ასე რომ მძღოლს, რომელიც მანქანის გარეშე შემოდის, ეჩვენება, სად იშოვოს. ეს ყველაზე ახლოსაა იმასთან, რაც Assetto Corsa-ში შესვლისას ჩამოტვირთვას ჰგავს, და ეს შენს მიერ გაშვებულ ხელსაწყოებზეა დამოკიდებული, ამიტომ დაპირებამდე შეამოწმე, რას უჭერს მხარს შენი სერვერის პროგრამა.
სია სერვერის backup-ების გვერდით შეინახე. კონფიგურაცია, რომელზეც ლიგა სამი კვირა თანხმდებოდა, პატარაა და ადვილად იკარგება; კონტენტის სია კი გაძლევს სერვერის ხელახლა აწყობის საშუალებას, როცა მოდების საიტი ქრება. რატომ უნდა შეამოწმო აღდგენაც, ახსნილია სტატიაში Backup-ები, რომლებიც ნამდვილად აღდგება. RE:NODE-ზე backup-ის სლოტები Assetto Corsa-ს ყველა გეგმას მოყვება, ამიტომ cfg და content საქაღალდეები კონტენტის ყოველი ცვლილების წინ შეიძლება შეინახო და ერთი ღილაკით აღადგინო.
სერვერის დისკის მოხმარება კონტენტთან ერთად იზრდება, მიუხედავად იმისა, რომ მხოლოდ მონაცემთა ფაილებია საჭირო. საგზაო მოძრაობის ან freeroam სერვერმა ათობით მანქანითა და დიდი რუკით მაინც შეიძლება რამდენიმე გიგაბაიტს მიაღწიოს, ძირითადად ტრასების ხარჯზე. პრესეტის შეცვლისას წაშალე მანქანები და ტრასები, რომლებსაც აღარ იყენებ; ძველი კონტენტი სერვერის დისკის გავსების ჩვეულებრივი მიზეზია.
პრობლემების მოგვარება#
"Checksum failed" მანქანისთვის. ამ მანქანის მძღოლისეული build სერვერისას განსხვავდება. შეადარე ვერსიები და ერთზე შეთანხმდით.
"Checksum failed" ტრასისთვის. იგივე, ტრასისთვის - ხშირად გრაფიკული ან განახლების პაკეტი, რომელმაც ზედაპირის მონაცემებიც შეცვალა.
სერვერი გაშვებისას ითიშება და საქაღალდეს ასახელებს. საქაღალდის სახელის ან რეგისტრის შეუსაბამობა, ან ცარიელი CONFIG_TRACK მრავალ-layout-იან ტრასაზე.
სასტარტო ბადე მანქანებით უცნაურ ადგილებში იწყება ან სესია ფუჭდება. ჩანაწერები იმაზე მეტია, ვიდრე layout-ს პიტ-ბოქსები აქვს.
CSP-ის არმქონე მძღოლები გაფუჭებულ ტრასას ხედავენ. ტრასას CSP სჭირდება. მოთხოვნა პრესეტსა და სერვერის სახელში გამოაცხადე.
პრესეტი ლოკალურად მუშაობს, ჰოსტზე - არა. Linux-ის რეგისტრზე დამოკიდებულება, ან კონტენტი, რომელიც არ ატვირთე. შეადარე სერვერის content/ საქაღალდე დაპაკეტებულ არქივს.
სკინები ნაგულისხმევად ჩანს. მძღოლს სკინების პაკეტი არ აქვს. მხოლოდ კოსმეტიკურია.
FAQ#
მჭირდება Content Manager Assetto Corsa სერვერის გასაშვებად?
არა. acServer ორ ini ფაილს და კონტენტის საქაღალდეს კითხულობს, და მათი ხელით დაწერა შეგიძლია. Content Manager პროცესს აჩქარებს და ისეთ შეცდომებს იჭერს, როგორიცაა დაკარგული სკინები ან პიტ-ბოქსებისთვის ზედმეტად ბევრი ჩანაწერი.
სჭირდება სერვერს მოდ-მანქანებისა და ტრასების სრული ფაილები?
არა, მხოლოდ checksum-ებისთვის გამოყენებული მონაცემთა ფაილები. Content Manager-ის დაპაკეტების ოფცია ზუსტად მათ აკოპირებს, რაც სერვერს პატარას ინარჩუნებს. მძღოლებს სრული კონტენტი სჭირდებათ, რომ ის დაინახონ და მართონ.
რატომ ვერ გადიან მძღოლები checksum-ს მოდ-ტრასაზე?
მათი ვერსია სერვერისას განსხვავდება. ბევრ მოდ-ტრასას რამდენიმე build და განახლების პაკეტი აქვს მიმოქცევაში. გამოაქვეყნე ზუსტი build და დარწმუნდი, რომ სერვერსაც ის აქვს.
როგორ ავირჩიო ტრასის layout სერვერზე?
დააყენე TRACK= ტრასის საქაღალდეზე და CONFIG_TRACK= layout-ის ქვესაქაღალდის სახელზე. Content Manager-ში პრესეტში layout-ის არჩევა ორივეს ადგენს.
შეუძლია სერვერს მოთამაშეებისთვის მანქანებისა და ტრასების ავტომატურად გაგზავნა?
ვანილურ სერვერს - არა. საზოგადოების გარსებს და AssettoServer-ს შეუძლიათ გამოაცხადონ ჩამოტვირთვის ბმულები, რომლებსაც Content Manager დაკარგული კონტენტის მქონე მძღოლებს აჩვენებს, და ეს უახლოესი ეკვივალენტია.
უნდა მოითხოვოს ჩემმა სერვერმა Custom Shaders Patch?
თუ შენი ტრასები ან მანქანები მასზეა დამოკიდებული, კი, და ეს სერვერის სახელში მიუთითე. სტანდარტულ ან ძველ კონტენტზე მომუშავე საჯარო სერვერისთვის მისი არასავალდებულოდ დატოვება მეტ მოთამაშეს შემოსვლის საშუალებას აძლევს.




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