Bir sunucuda entity gecikmesi nasıl azaltılır?

Bir sunucuda Entity gecikmesi nasıl azaltılır?


NOT: Bu makalede Minecraft Java Edition sunucuları baz alınmıştır.

Minecraft sunucularındaki gecikmenin ve TPS sorunlarının en yaygın sebeplerinden biri, sunucuda bulunan entity(varlık) sayısıdır. Sunucu türü her ne olursa olsun entity sebebiyle gecikme yaşanabilir ve entity sayısı eğer çok yükselirse bazı chunklar sunucunuzu oynanamaz hale bile getirebilir.

Devam etmeden ve bu kılavuzu okumadan önce, sunucunuzda gecikmeye neyin sebep olduğunu öğrenmek için bir timings raporu almanızı öneririz.

ENTITY nedir?

İki entity(varlık) türü vardır.

  1. Tile Entity: Block Entity olarak da bilinirler. Sadece fazladan veri tutan(kendi envanterlerine sahip olmak gibi veya kızıltaş malzemeleri gibi) varlıklardır. 
  2. Entity: Mob'lar, yere düşen eşyalar ve bunlara benzer diğer varlıklardır.

Varlıkların tüm listesini merak ediyorsanız Minecraft'ın Wiki sayfasında Entity'ler ve Tile Entity'ler için birer makale sayfası mevcut.

ENTITY ve TILE ENTITY

Kendi başlarına hareket edemedikleri ve fiziksel nesnelerden ziyade blok(itilemezler ve yerçekiminden blok güncellemesine gerek duymadan etkilenirler) oldukları için Tile Entity sıradan Entitylere kıyasla gözle görülür oranda sunucuda daha az gecikmeye sebep olur. 

Minecart'lar ve varyantlarında(Minecart Hopper'lar gibi.) bu kolayca gözlemlenebilir. Minecart Hopper'lar eşyaları hızlıca taşımada kullanışlı olsa da sıradan Hopper'lara(hunilere) kıyasla önemli ölçüde daha fazla gecikmeye sebep olurlar. Ek olarak, Tile Entity'ler kullanımda olmadıkları zaman devre dışı hale gelebilirler (örneğin bir Hopper'ın(huni) üstünde başka bir Tile Entity varsa, yukarısındaki blok tarafından etkilenmediği sürece aktif olmayacaktır). Hopper'lardan bu kadar bahsetmemizin sebebi Huni'lerin(Hopper) ve Sandık'ların(Chest) Minecraft dünyasındaki en kalabalık varlıklar olmasından dolayıdır. Bazı sunucular bu varlıklardan binlercesini küçük bir alanda bulundurabilirler, dolayısıyla optimize edilmeleri önemlidir. Bunu göz önünde bulundurarak, Huni'ler ve Sandık'ların sebep olduğu gecikmeyi azaltmanın en kolay yollarından bazıları şöyledir:

  • Minecart Hopper ve Minecart Chest'leri yasaklayın - Oyuncular sandıkları ve hunileri yine de kullanabilirler ve eşyaları taşımak için daha uzun huni zincirleri oluşturabilirler. Huni(Hopper) blokları Minecraft Hopper'lara kıyasla çok daha az gecikmeye sebep olurlar. Minecart Hopper ve Minecart Chest'lerin nasıl yasaklanacağını bilmiyorsanız makalenin devamında bu konu hakkında bir eklentiden bahsedeceğiz.
  • Hopper'ların üzerine Dropper(Bırakıcı) veya Furnace(Fırın) yerleştirin - Mantıksız gelebilir ancak bir huninin üzerine bir blok yerleştirdiğinizde üzerine sürekli bir eşya düşüp düşmediğini kontrol etmesini durdurur, bu işlem huniyi devre dışı hale getirir. Eski sürümlerde hunilerin üzerine Furnace(Fırın) koyduğunuz zaman da gecikme engelleniyordu. Ancak Minecraft'ın yeni sürümlerinde hunilerin üzerine yerleştirilen fırınlar gecikmeyi önlemez.

ENTITY'LERİ SİLMEK

Entity(Varlık) gecikmesini azaltmanıza yardımcı olmak için pek çok eklenti var. ClearLagg en yaygın ve kullanışlı eklentilerden biridir. Ek özelliklerinden bazıları; öldürülen oyunculardan düşen eşyaların silinmesini önler, yerdeki eşyaları ve Mob'ları siler, çok fazla gecikmeye sebep olan Chunk'ları belirler. Saydıklarımızın yanında pek çok özelliği mevcut olması sebebiyle büyük bir kitle tarafından tercih sebebidir.

Ekleme yapmak gerekirse, gecikmeyi engellemek için bazı eşyaları ve Entity'leri(varlıkları) engelleyebilirsiniz. BanItem adlı eklenti gecikmeye sebep olan eşyaları yasaklamanıza hatta yetkisi olan oyuncularınız için bu eşyalara erişim vermenize izin verir. Yasaklamanızı veya sadece sınırlı sayıda oyuncuların kullanmasını sağlamanızı önerdiğimiz bazı eşyalar:

  • Elytra(Elitra) - oyuncuların yeni Chunk'ları çok hızlı açarak sunucunuzdaki gecikmeyi arttırmasını engellemek için.
  • Armour Stand(Zırh Askısı) ve Item Frame(Eşya Çerçevesi) - Bu eşyalar genellikle kozmetik amaçlı kullanılır ve oyuncular tarafından sunucuda büyük oranda gecikme yaratmak için kullanılabilir.
  • Minecart (ve varyantları) - Daha önce anlattığımız üzere daha az gecikme sağlayacak blok alternatifleri mevcuttur.

Sunucu Ayarlarının Optimizasyonu

Sunucunuzdaki gecikmeyi engellemenin en iyi yolu; gecikme yaşanmadan önce engellemektir. Bilgi bankamızda Spigot, Bukkit, Paper ve Purpur sunucularında gecikmenin nasıl engelleneceğini açıkladığımız makalelerimiz bulunmaktadır ancak öncesinde sunucu konfigurasyon dosyalarındaki değerleri düzenlemeniz gecikme yaşanmasını önlemek için denemeye değer.


Помог ли вам данный ответ?