Vanilla Terraria სერვერს სჭირდება 512 MB-დან 1 GB-მდე მეხსიერება პატარა ან საშუალო სამყაროსთვის ოთხ მოთამაშემდე, და დაახლოებით 1 GB დიდი სამყაროსთვის რვა მოთამაშით. TShock plugin-ების დასტით, ან vanilla სერვერი თექვსმეტ მოთამაშემდე აწეული, 2 GB-ზე კომფორტულად გრძნობს თავს. tModLoader პასუხს მთლიანად ცვლის: 2-დან 3 GB-მდე რამდენიმე quality-of-life მოდისთვის, 4 GB Calamity-სთვის მისი ჩვეული თანმხლებებით, და პიკზე 6 GB-მდე დიდი კონტენტის პაკეტებისთვის, რომლებიც საკუთარ სამყაროს გენერაციას ამატებენ. მთავარი სიტყვა პიკია. Terraria სერვერი მეხსიერების უმაღლეს გამოყენებას აღწევს, როცა სამყაროს ქმნის, და არა მაშინ, როცა მასში თამაშობენ, და სწორედ ამიტომ პირველი მოდიფიცირებული სამყარო არასაკმარის გეგმაზე არის ის, რომელიც ჩავარდება.
რას ინახავს Terraria სერვერი მეხსიერებაში#
Terraria sandbox თამაშებს შორის ერთი თვისებით გამოირჩევა, რომელიც მის ზომას განსაზღვრავს: სერვერი მთელ სამყაროს მეხსიერებაში ტვირთავს და იქვე ინახავს. მოთამაშეების მოძრაობისას chunk-ების ჩატვირთვა და გაცლა არ ხდება. რუკის ყოველი tile, ყოველი კედელი, ყოველი სითხე, ყოველი ზანდუკი და ყოველი ნიშანი გაშვებიდან გათიშვამდე მეხსიერებაშია.
ეს სამყაროს ზომას პირველ ფაქტორად აქცევს, და ეს ცნობილი რიცხვია:
| სამყაროს ზომა | ზომები (tile-ები) | Tile-ები ჯამში |
|---|---|---|
| პატარა | 4200 x 1200 | დაახლოებით 5 მილიონი |
| საშუალო | 6400 x 1800 | დაახლოებით 11.5 მილიონი |
| დიდი | 8400 x 2400 | დაახლოებით 20 მილიონი |
დიდ სამყაროს პატარაზე ოთხჯერ მეტი tile აქვს, და tile-ების მონაცემები vanilla სერვერის მეხსიერების ძირითადი ნაწილია. სწორედ ამიტომ ცვლის სამყაროს ზომა vanilla-ს რიცხვს მოთამაშეებზე მეტად.
Vanilla-ს დანარჩენი მეხსიერება ისეა შეზღუდული, როგორც თამაშების უმეტესობაში არ არის. Terraria აქტიურ NPC-ებს, projectile-ებსა და დაგდებულ ნივთებს ფიქსირებული ზომის ცხრილებში ინახავს - ერთდროულად 200 NPC, 1,000 projectile, 400 ნივთი - და სამყაროს მაქსიმუმ 8,000 ზანდუკის დატევა შეუძლია. მათი მეხსიერება არ იზრდება, როცა შემოსევა ეკრანს ავსებს; იზრდება CPU. რაც იზრდება, არის მოთამაშეების კავშირები და მათი ბუფერები, და tModLoader-ზე ყველაფერი, რასაც მოდები ამატებენ.
RAM სამყაროს, მოთამაშეებისა და სერვერის ტიპის მიხედვით#
| სერვერი | RAM | vCPU | შენიშვნები |
|---|---|---|---|
| Vanilla, პატარა ან საშუალო სამყარო, 1-4 მოთამაშე | 512 MB - 1 GB | 0.5 | საკმარისზე მეტი |
| Vanilla, დიდი სამყარო, 5-8 მოთამაშე | 1 GB | 0.75 | ჩვეულებრივი შემთხვევა |
| Vanilla, 8-16 მოთამაშე, ივენთები და შემოსევები | 2 GB | 1-1.5 | ნახტომები და არა მუდმივი დატვირთვა |
| TShock plugin-ების დასტით | 2 GB | 1-1.5 | Plugin-ები და მათი მონაცემთა ბაზა მოთამაშეებზე მეტი ჯდება |
| tModLoader, quality-of-life მოდები | 2-3 GB | 1 | მოდები იმავე პროცესში იტვირთება |
| tModLoader, Calamity და თანმხლებები | 4 GB | 1-1.5 | ჩვეული დიდი მოდიფიცირებული სერვერი |
| tModLoader, დიდი კონტენტის პაკეტები worldgen-ით | 6 GB პიკზე | 1.5-2 | პიკი სამყაროს შექმნაა |
ეს რიცხვები ემთხვევა უფრო გრძელ Terraria-სა და tModLoader-ის სერვერის გზამკვლევს, რომელიც ინსტალაციასაც აღწერს. ორი რამ ღირს გამოყოფად.
მოთამაშეები იაფია. ნაგულისხმევი maxplayers 8-ია და პარამეტრი 255-მდე იღებს, მაგრამ ყოველი დამატებითი მოთამაშე ამატებს ქსელურ ბუფერებსა და ცოტა მდგომარეობას და არა სამყაროს ნაჭერს - სამყარო უკვე მთლიანად ჩატვირთულია. რასაც მეტი მოთამაშე ცვლის, არის CPU ივენთების დროს, როცა სერვერი ყოველ NPC-სა და projectile-ს ერთ thread-ზე ანახლებს.
მოდიფიცირებული სერვერები სხვა კატეგორიაა. Calamity სერვერი ოთხი ადამიანისთვის რამდენჯერმე მეტს იყენებს, ვიდრე vanilla სერვერი თექვსმეტისთვის, და სხვაობა მთლიანად მოდებია.
სამყაროს ზომის პარამეტრი#
სამყაროს ზომა ერთხელ ირჩევა, შექმნისას. გამოყოფილ სერვერზე ეს არის autocreate მნიშვნელობა serverconfig.txt-ში, რომელიც გამოიყენება, როცა დასახელებული სამყარო ჯერ არ არსებობს:
world=/home/container/worlds/Hallowed_Acres.wldautocreate=3worldname=Hallowed_Acresdifficulty=1maxplayers=8port=7777password=change-mesecure=1npcstream=60autocreate=1 პატარაა, 2 საშუალო და 3 დიდი. difficulty არის 0 classic, 1 expert, 2 master და 3 journey. npcstream ამცირებს, რამდენად ხშირად ჩანს, რომ მტრები მოთამაშეებისთვის ეკრანზე ხტებიან; მისი შემცირება მოძრაობას აგლუვებს ცოტა მეტი გამტარუნარიანობის ფასად და მეხსიერებას არ ცვლის. Terraria სერვერის კონფიგურაცია და ბრძანებები ყოველ გასაღებს გადის.
დიდი სწორი არჩევანია ექვსიდან რვა კაციანი ჯგუფისთვის, რომელსაც ადგილი უნდა, და vanilla-ზე საშუალოსთან შედარებით მეხსიერების ფასი რამდენიმე ასეული მეგაბაიტია. ორი-სამი კაციანი ჯგუფისთვის საშუალო უკეთესად ითამაშება და ნაკლები ჯდება. მოდიფიცირებულ სერვერებზე არჩევანი უფრო მნიშვნელოვანია, რადგან კონტენტის მოდები ყოველ სამყაროს ამატებენ ბიომებს, ნაგებობებსა და მადნებს, და მათი გენერაციის ეტაპები სამყაროს ზომასთან ერთად იზრდება.
სამყაროს გენერაცია არის პიკი#
როცა Terraria სერვერი სამყაროს ქმნის, ის მთლიანად მეხსიერებაში აწყობს ათობით გენერაციის ეტაპის გავლით - რელიეფი, გამოქვაბულები, ბიომები, მადნები, ნაგებობები, dungeon-ები, ტაძრები, ზანდუკები და მათი loot - და მხოლოდ შემდეგ წერს .wld ფაილს. ამ პროცესის დროს ის სამყაროს თავზე სამუშაო მონაცემებსაც ინახავს. Vanilla-ზე ეს დამატებითი ხარჯი ზომიერია. tModLoader-ზე ყოველი მოდი, რომელიც გენერაციის ეტაპებს ამატებს, საკუთარ სამუშაო მონაცემებს ამატებს, დიდი კონტენტის მოდები კი ბევრს ამატებენ.
შედეგები:
- გეგმამ, რომელიც სამყაროს უშვებს, შეიძლება მისი შექმნა ვერ შეძლოს. თუ სერვერი გენერაციის შუაში გაჩერდა, ყველაფერზე ადრე მეხსიერებას შეხედე.
- გენერაცია იმაზე დიდხანს გრძელდება, ვიდრე ხალხი ელის. დიდ მოდიფიცირებულ სამყაროს შეიძლება რამდენიმე წუთი დასჭირდეს. უყურე კონსოლის პროცენტებს და ნუ ჩათვლი, რომ გაიჭედა.
- არსებობს მისი გვერდის ავლის იაფი გზა. დააგენერირე სამყარო თამაშის კლიენტში შენს კომპიუტერზე, ზუსტად იგივე მოდებითა და ვერსიებით, შემდეგ კი ატვირთე
.wldფაილი (და tModLoader-ზე მისი.twldთანმხლები) სერვერზე. ამის შემდეგ სერვერს მხოლოდ სამყაროს გაშვება სჭირდება და არასოდეს მისი აწყობა.
tModLoader: რა ჯდება მოდები#
tModLoader მოდებს სერვერის პროცესის შიგნით თანამედროვე .NET runtime-ზე უშვებს. გამოყოფილი სერვერი გრაფიკის სამუშაოს უმეტესობას გამოტოვებს, მაგრამ მაინც ტვირთავს ყოველი მოდის კოდს, არეგისტრირებს მის ნივთებს, NPC-ებს, tile-ებს, projectile-ებსა და buff-ებს, და ინახავს ყველა მდგომარეობას, რასაც მოდი ინახავს. ფასები ტიპის მიხედვით მკვეთრად განსხვავდება.
- Quality-of-life მოდები - magic storage, recipe browser-ები, boss checklist-ები, auto-trash - თითოეული ცოტას ამატებს. Magic Storage გამონაკლისია, რომელიც იზრდება: ის ერთ სისტემაში ბევრ ნივთს ინახავს, და სერვერის მთელი დაგროვილი მარაგი ბოლოს მასში აღმოჩნდება.
- კონტენტის მოდები ასობით ან ათასობით ახალ ნივთს, მტერსა და tile-ს ამატებენ. Calamity საცნობარო შემთხვევაა; Thorium და მსგავსი პაკეტები ასევე იქცევიან.
- თანმხლები და დამატებითი მოდები დიდი კონტენტის მოდებისთვის ზემოდან საკუთარ კონტენტს ამატებენ.
- Worldgen მოდები ნაგებობებსა და ბიომებს ამატებენ, და მათი ფასი ძირითადად შექმნისას მოდის.
პრაქტიკული სამუშაო პროცესი:
- დაწყებამდე ჯგუფთან ერთად აირჩიე მოდების სია და ვერსიები, და სერვერი და კლიენტები ზუსტად იმავე სიაზე შეინარჩუნე.
- სერვერი ერთხელ გაუშვი ისე, რომ ონლაინ არავინ იყოს, და სამყაროს ჩატვირთვის შემდეგ უქმი მეხსიერება ჩაიწერე. ეს შენი მინიმუმია.
- დააგენერირე სამყარო ან ატვირთე ლოკალურად დაგენერირებული.
- უყურე მეხსიერებას პირველი ბოსის ბრძოლისას, როცა ყველა ონლაინაა. მინიმუმი პლუს ეს ნახტომი პლუს მარაგი არის შენი გეგმა.
Calamity და დიდი მოდები სერვერზე აღწერს დიდი პაკეტების ინსტალაციასა და კლიენტების სინქრონში შენარჩუნებას.
TShock და plugin-ები#
TShock არის სერვერის მხარის framework vanilla Terraria-სთვის, რომელიც ამატებს მომხმარებლის ანგარიშებს, ჯგუფებსა და უფლებებს, რეგიონების დაცვას, anti-cheat შემოწმებებს და ადმინის ბრძანებების დიდ ნაკრებს. ის vanilla სერვერზე მუშაობს და თავის მონაცემებს მონაცემთა ბაზაში ინახავს, ნაგულისხმევად SQLite-ში. კლიენტებს არაფერი სჭირდებათ.
მისი მეხსიერების ფასი ზომიერია: framework, მისი მონაცემთა ბაზის კავშირი და ყველაფერი, რასაც მისი plugin-ები ინახავენ. Plugin-ები, რომლებიც tile-ის ყოველ ცვლილებას ლოგავენ, სტატისტიკას აკვირდებიან ან მინითამაშებს უშვებენ, მეტს ინახავენ. TShock სერვერი ათიოდე plugin-ით საზოგადოებების უმეტესობისთვის 2 GB-ზე კომფორტულად დგას. ის ასევე გაძლევს ადმინის ხელსაწყოებს, რომლებიც vanilla-ს არ აქვს - მაგალითად, /butcher მტრული NPC-ების მოსაშორებლად, როცა ივენთი ცუდად წავა - რაც სასარგებლოა CPU-ს პრობლემებისთვის და არა მეხსიერების. TShock სერვერის გზამკვლევი აღწერს გამართვასა და უფლებებს.
ერთი სამყარო თითო სერვერზე#
Terraria სერვერის პროცესი ერთდროულად ერთ სამყაროს უშვებს. ეს აკვირვებს ჯგუფებს, რომლებსაც უნდათ მთავარი სამყარო პლუს ცალკე სამყარო ფერმისთვის, Hardmode-ის სატესტო სამყარო ან boss rush, და ამას ზომაზე პირდაპირი გავლენა აქვს.
რამდენიმე სამყაროს გაშვების ორი გზა არსებობს:
- ერთი სერვერი, სამყაროების გადართვა. გააჩერე სერვერი, შეცვალე
world=serverconfig.txt-ში სხვა.wldფაილზე და თავიდან გაუშვი. მეხსიერება იგივე რჩება, რაც ერთი სამყაროსთვის - მხოლოდ ერთია ჩატვირთული - მაგრამ ორივეში ერთდროულად ვერავინ იქნება, გადართვას კი restart სჭირდება. - რამდენიმე სერვერი. გაუშვი ცალკე სერვერი თითო სამყაროზე, თითოეული საკუთარი პორტითა და საკუთარი მეხსიერებით. თითოეული თავის მთელ სამყაროს მეხსიერებაში ინახავს, ასე რომ ორ დიდ vanilla სამყაროს დაახლოებით ორჯერ მეტი მეხსიერება სჭირდება, ვიდრე ერთს, ორ Calamity სამყაროს კი მოდიფიცირებული რიცხვის ორმაგი.
ჯგუფების უმეტესობისთვის პირველი ვარიანტი სწორია. სამყარო, რომელშიც არავინ თამაშობს, გაშვებული არ უნდა იყოს, Terraria-ს კლიენტი კი მოთამაშეებს საშუალებას აძლევს თავიანთი პერსონაჟები სამყაროებს შორის თავისუფლად გადაიტანონ - პერსონაჟები თითოეული მოთამაშის მანქანაზე ინახება და არა სერვერზე, თუ სერვერი TShock-ის მეშვეობით server-side პერსონაჟებს არ აიძულებს.
ეს ბოლო პუნქტი ზომისთვისაც მნიშვნელოვანია. Server-side პერსონაჟები TShock-ში თითოეული მოთამაშის ინვენტარს სერვერის მონაცემთა ბაზაში ინახავენ და არა მის მანქანაზე, რაც თითო მოთამაშეზე ცოტა მეხსიერებასა და დისკს ამატებს და სერვერს პასუხისმგებელს ხდის პერსონაჟების backup-ზეც, არა მხოლოდ სამყაროებისა. Anti-cheat-ზე ორიენტირებული საჯარო სერვერისთვის ეს ღირს; მეგობრებისთვის ჩვეულებრივ ზედმეტია.
tModLoader-ზე სერვერის ყველა სამყარო იყოფს მოდების ერთსა და იმავე ჩართულ სიას, რადგან მოდები სერვერის პროცესზე იტვირთება და არა სამყაროზე. ჯგუფს, რომელსაც vanilla სამყარო და Calamity სამყარო უნდა, ან ორი სერვერი სჭირდება, ან enabled.json-ის შეცვლა და restart მათ შორის.
CPU, ივენთები და ის, რაც მეხსიერების პრობლემა არ არის#
Terraria-ს lag-ი ჩვეულებრივ ივენთების დროს CPU-დან მოდის და არა მეხსიერებიდან. სერვერი ყოველ tick-ზე ერთ thread-ზე ანახლებს ყოველ აქტიურ NPC-სა და projectile-ს, და Frost Moon თექვსმეტი მოთამაშით, ბოსი ეკრანის სავსე projectile-ებით, ან მოდიფიცირებული ბოსი მათი ასობით, მძიმე რამდენიმე წუთია. სანამ ეს ხდება, მეხსიერება ბრტყლად დგას, რადგან ეს ცხრილები ფიქსირებული ზომისაა.
ასე რომ, როცა მოთამაშეები lag-ზე ჩივიან:
- შემოსევების, ბოსებისა და ივენთების დროს ეს CPU-ა. უფრო მაღალი დონე გეხმარება, თუ CPU-ს გრაფიკი თავის ლიმიტზე ბრტყელია; ნაკლები ერთდროული ივენთი და ნაკლები ფერმა ათობით ქანდაკებით ნებისმიერ შემთხვევაში გეხმარება.
- მოდიფიცირებულ სერვერზე მუდმივად შეამოწმე, მეხსიერება ლიმიტთან ახლოსაა თუ არა და runtime გამუდმებით აგროვებს თუ არა. ეს გეგმაა, რომელიც მოდების სიისთვის ზედმეტად პატარაა.
- მხოლოდ ერთი მოთამაშისთვის ეს ამ მოთამაშის კავშირია.
CPU თუ RAM: რომელი აფერხებს შენს სერვერს გრაფიკების წაკითხვას აღწერს, რამდენი მოთამაშე ეტევა სერვერზე კი ხსნის, რატომ გპირდება სლოტების რაოდენობა იმაზე ნაკლებს, ვიდრე ჩანს.
შენახვა, backup-ები და მეხსიერების გამო გაჩერება#
სერვერი პერიოდულად ავტომატურად ინახავს და სუფთა exit-ზეც ინახავს. Vanilla კონსოლის save ბრძანება ნებისმიერ დროს შენახვას აიძულებს. ყველაფერი, რაც პროცესს შენახვის გარეშე ამთავრებს - ჰოსტის გადატვირთვა, kill, მეხსიერების გამო გაჩერება - კარგავს იმას, რაც ბოლო ჩაწერის შემდეგ მოხდა.
Terraria-ს სამყარო ერთი ფაილია (tModLoader-ზე ორი), ასე რომ დაზიანებული ჩაწერა მთელ სამყაროს აზიანებს და არა ერთ რეგიონს. Backup-ები სერვერის საკუთარი საქაღალდის გარდა სხვაგან შეინახე, და ერთი გააკეთე ყოველი განახლებისა და მოდის ყოველი ცვლილების წინ. Terraria-ს სამყაროს backup და გადატანა აღწერს ფაილებსა და აღდგენას.
RE:NODE-ზე სერვერი, რომელიც მეხსიერების ლიმიტს აღწევს, ჩერდება და სუფთად ეშვება თავიდან, swap-ზე დატოვების ნაცვლად, რაც მანქანისთვის უსაფრთხოა და შეუნახავ პროგრესს კარგავს, ამიტომ მოდიფიცირებულ სერვერზე მარაგი დატოვე და ზღვარზე ნუ ამუშავებ. Terraria-ს გეგმები 512 MB-დან არის თვეში $3-ად 4 GB-მდე, ერთი პორტის გამოყოფითა და backup-ის სლოტებით ყველა დონეზე. დონის აწევა ლიმიტს უკვე არსებულ სერვერზე ზრდის, ასე რომ სამყარო, რომელიც თავის გეგმას გადაიზრდება, თავის ადგილზე რჩება.
FAQ#
საკმარისია თუ არა 1 GB Terraria სერვერისთვის?
Vanilla-სთვის - კი, დიდ სამყარომდე დაახლოებით რვა მოთამაშით. TShock რამდენიმე plugin-ით, ან თექვსმეტი მოთამაშე და ხშირი ივენთები, 2 GB-ზე უფრო კომფორტულია. ნებისმიერ tModLoader სერვერს, რომელსაც რამდენიმე პატარა მოდზე მეტი აქვს, მეტი სჭირდება.
რამდენი RAM სჭირდება Calamity სერვერს?
დაგეგმე 4 GB Calamity-სთვის მისი ჩვეული თანმხლები მოდებითა და რამდენიმე მოთამაშით. პიკი სამყაროს გენერაციაა; თუ სამყაროს შენს კომპიუტერზე დააგენერირებ და ატვირთავ, სერვერს მხოლოდ მისი გაშვებისთვის საკმარისი სჭირდება. უფრო დიდმა პაკეტებმა საკუთარი worldgen-ით შეიძლება პიკზე დაახლოებით 6 GB-ს მიაღწიონ.
იყენებს თუ არა დიდი სამყარო მეტ RAM-ს?
კი. მთელი სამყარო მეხსიერებაში ინახება, და დიდ სამყაროს პატარაზე ოთხჯერ მეტი tile აქვს. Vanilla-ზე სხვაობა რამდენიმე ასეული მეგაბაიტია; მოდიფიცირებულ სერვერებზე უფრო დიდია, რადგან მოდები რუკის ყოველ ნაწილს კონტენტს უმატებენ.
რატომ გაჩერდა ჩემი სერვერი სამყაროს შექმნისას?
თითქმის ყოველთვის მეხსიერების გამო. სამყაროს გენერაციის პიკი გაცილებით მაღლაა იმ მეხსიერებაზე, რაც დასრულებული სამყაროს გასაშვებად სჭირდება, განსაკუთრებით მოდებით, რომლებიც ნაგებობებსა და ბიომებს ამატებენ. დააგენერირე სამყარო ლოკალურად იმავე მოდებით და ატვირთე .wld და .twld, ან ერთხელ შექმენი უფრო დიდ გეგმაზე.
სჭირდებათ თუ არა Terraria-ზე მეტ მოთამაშეს მეტი RAM?
ცოტა. სამყარო უკვე მთლიანად ჩატვირთულია, ასე რომ ყოველი მოთამაშე კავშირის მდგომარეობას ამატებს და არა რელიეფს. მეტი მოთამაშე ძირითადად CPU-ს ცვლის ივენთებისა და ბოსების დროს, როცა ყოველი NPC და projectile ერთ thread-ზე ახლდება.




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