Lithium: Minecraft oyun mantığı optimizasyonu
Sodium görüntü işlemeyle (render) ilgilenir, Lithium da geri kalan her şeyle. Bu mod, Minecraft'ın iç mantığını (mob yapay zekâsı, fizik, chunk yükleme, yol bulma, blok tick'leri) oyun mekaniklerinin hiçbirini değiştirmeden optimize eder. .jar dosyasını mods klasörüne atarsın ve oyun daha akıcı çalışır; özellikle sunucularda ve çok sayıda varlık bulunan dünyalarda.
Lithium neleri optimize eder
Lithium, oyunun sunucu tarafına odaklanır: her tick'te (saniyede 20 kez) çalışan mantığa. Bunlar grafik değişiklikleri değil, bu yüzden Lithium FPS'i doğrudan etkilemez. Bunun yerine TPS'i (saniyedeki tick sayısını) artırır ve ani lag sıçramalarını ortadan kaldırır.
Mob yapay zekâsı ve yol bulma
Vanilla Minecraft, mobların hareket rotalarını çevredeki blokları tarayan bir algoritmayla hesaplar. Lithium bu sistemi daha hızlı çalışacak ve daha az bellek kullanacak şekilde yeniden yazar. Etkisi en çok mobla dolu dünyalarda hissedilir: farmlar, Canavar Çağırıcı (spawner) farmları, köylülerle dolu köyler.
Varlık fiziği
Varlıklar (moblar, eşyalar, oklar) arasındaki çarpışmalar, bir chunk'taki her nesnenin konumunun kontrol edilmesini gerektirir. Lithium bu hesaplamalar için optimize edilmiş veri yapıları kullanır ve çarpışma kontrolüne harcanan süreyi yüzde onlarca oranında kısaltır.
Blok tick'leri
Yüklü chunk'lardaki her blok, her tick'te güncelleme isteyebilir: bitkiler büyür, su akar, redstone sinyal gönderir. Lithium tick olay kuyruğunu optimize eder ve güncellenmesi gerekmeyen bloklarda gereksiz kontrolleri atlar.
Chunk üretimi
Lithium, gürültü (noise) üretimini ve yapı yerleşimini optimize ederek yeni arazinin üretilmesini hızlandırır. Yeni bölgeleri keşfetmek daha akıcı hissettirir.
Çarpışma şekilleri
Minecraft, blokların çarpışma şekillerini (VoxelShapes) çok fazla bellek ayırmaya yol açan bir yöntemle saklar. Lithium bu şekilleri önbelleğe alır ve çöp toplayıcı (garbage collector) üzerindeki yükü azaltır; bu da ani lag sıçramalarını azaltır.
Lithium arka planda nasıl çalışır
Lithium oyun mekaniklerini değiştirmez: her şey vanilla'daki gibi çalışır. Mod, verimsiz algoritmaları ve veri yapılarını daha hızlı karşılıklarıyla değiştirir. Örnekler:
- Bir chunk'taki varlık listesi: vanilla
ArrayListkullanır, Lithium bunu O(1) aramalı uzamsal bir yapıyla değiştirir - Yol bulma: vanilla rotayı her tick'te sıfırdan hesaplar, Lithium sonuçları önbelleğe alır ve yalnızca çevre değiştiğinde yeniden hesaplar
- Blok durumu aramaları: vanilla durum haritasını doğrusal olarak tarar, Lithium bunları O(1) ile indeksler
İşin özü şu: bu değişikliklerin hiçbiri oynanışı etkilemez. Köylü yine yatağına ulaşır, su yine aynı şekilde akar, ekinler aynı hızda büyür. Lithium oyunun bunları nasıl hesapladığını değiştirir, neyi hesapladığını değil.
Kurulum
Lithium bir Fabric modu. Kurulumu gerçekten bir dakika sürer:
- Fabric Loader'ın kurulu olduğundan emin ol (rehber)
- Lithium'u Modrinth üzerinden indir ve Minecraft sürümüne uygun olanı seç
lithium-fabric-X.X.X.jardosyasını.minecraft/mods/klasörüne koy- Oyunu Fabric profiliyle başlat
Lithium'un Fabric API'ye ihtiyacı yok: tek başına çalışır. Yapılandırılacak bir ayar da yok. Dosyayı at ve unut.
Lithium'un Lithium (NeoForge) adında bir NeoForge sürümü de var; Modrinth'te arayabilirsin.
Gerçek performans kazancı
Lithium'un ne kadar fayda sağlayacağı, oyunda ne yaptığına bağlı. Birkaç senaryo:
| Senaryo | Lithium olmadan | Lithium ile | Kazanç |
|---|---|---|---|
| Boş dünya, keşif | 20 TPS | 20 TPS | Çok az (daha az lag sıçraması) |
| 50'den fazla köylülü üs | 14-17 TPS | 19-20 TPS | Büyük |
| Mob farmı (200'den fazla varlık) | 10-15 TPS | 17-20 TPS | Ciddi |
| Devasa redstone makinesi | 8-12 TPS | 12-16 TPS | Belirgin |
| 20'den fazla oyunculu sunucu | 12-16 TPS | 18-20 TPS | Kritik |
20 TPS, oyunun tam hızda çalıştığı anlamına gelir. 16 TPS'in altında oyun takılmaya başlar: moblar ışınlanır, redstone geride kalır, bloklar gecikmeyle kırılır. Lithium, normalde düşüşe yol açacak durumlarda TPS'i 20'ye daha yakın tutar.
Lithium + Sodium: tam set
Lithium ve Sodium oyunun farklı katmanlarını optimize eder ve birlikte çalışmak üzere tasarlanmıştır:
- Sodium - görüntü işleme (GPU): 2-5 kat daha fazla FPS, yeniden yazılmış bir chunk render motoru
- Lithium - mantık (CPU): daha yüksek TPS, daha az lag sıçraması, daha iyi fizik
- Moonrise - chunk'lar: Paper'ın chunk sistemi, Lithium ve FerriteCore ile uyumlu (deposu arşivlenen Starlight'ın yerini alır)
- FerriteCore - bellek: %40-50 daha az RAM kullanımı
- ModernFix - genel: bellek sızıntılarını giderir, daha hızlı yükleme
Sodium, Lithium, FerriteCore ve ModernFix her Fabric kurulumunun olmazsa olmazıdır; sunucuda Moonrise eklemek de mantıklı. Toplam performans kazancı, modların tek tek sağladığı kazançların toplamından büyüktür, çünkü darboğazları farklı seviyelerde ortadan kaldırırlar.
Sunucularda Lithium
Lithium özellikle çok oyunculu sunucularda değerlidir. Sunucu grafik işlemez (yani Sodium'a ihtiyacı yoktur), ama bütün oyuncular için oyun mantığını aynı anda hesaplamak zorundadır. Lithium sunucunun CPU yükünü azaltır; bu da çevrimiçi 30'dan fazla oyuncu varken bile sabit 20 TPS demektir.
Fabric sunucularında Lithium'u diğer sunucu modları gibi kurarsın: .jar dosyasını sunucunun mods/ klasörüne koy. Oyuncuların kendi taraflarında Lithium kurmasına gerek yoktur (sunucu taraflı bir mod), ama tek oyunculuyu optimize etmek için client'ta da kullanabilirler.
Sunucu alternatifi: Paper/Purpur sunucuları (Spigot fork'ları) Lithium'un optimizasyonlarının çoğunu yerleşik olarak içerir. Paper kullanıyorsan Lithium'dan elde edeceğin kazanç daha küçük olur.
Sıkça sorulan sorular
Lithium oyun mekaniklerini değiştirir mi?
Hayır. Lithium, oyunun tam olarak vanilla gibi davranması için tasarlanmıştır. Lithium ile bir şey farklı çalışıyorsa bu bir hatadır ve projenin GitHub sayfasında bildirilmelidir.
Lithium, OptiFine ile çalışır mı?
Lithium, render motoruna dokunmadığı için OptiFine ile (OptiFabric üzerinden) çakışmaz. Ama Sodium + Lithium daha iyi bir seçim, çünkü Sodium OptiFine'dan daha yüksek FPS verir.
Lithium, Fabric API gerektirir mi?
Hayır. Lithium, Fabric API olmadan çalışır. Ama başka Fabric modların varsa büyük ihtimalle Fabric API'ye zaten ihtiyacın vardır.
Lithium, Forge/NeoForge'da çalışır mı?
Lithium'un resmî sürümü Fabric için. NeoForge port'ları var (Modrinth'te NeoForge filtresiyle "Lithium" ara). Eski Forge'daki karşılığı Radium.
Lithium'u Sodium ile birlikte kullanabilir miyim?
Evet, birlikte çalışmak üzere tasarlandılar. Sodium GPU'yu (görüntü işleme), Lithium CPU'yu (mantık) optimize eder. Birlikte en iyi sonucu verirler.