- Minecraft 26.3 Snapshot 4, pencere yönetimi·girdi·platform entegrasyonu arka ucunu GLFW'den SDL3'e değiştiriyor ve klavye girdisine SDL scancode ile keycode ekliyor
- Tuş atamaları, klavye düzenine göre değişen kodlar yerine fiziksel tuş konumunu kullanıyor; Linux'ta mümkün olduğunda Wayland'ı önceliklendiriyor ve macOS'ta yerel girdi aday penceresini destekliyor
- Özel fırın·demleme yakıtları için veri bileşenleri eklendi; yanma süresi, kullanım sayısı, pişirme·demleme hızı number provider ile ayarlanabiliyor
- Veri paketi 111.0 ve kaynak paketi 92.0'da tabela tıklama olayları, loot table referansları, advancement tetikleyicileri, mob spawn ortam özellikleri, arazi oluşturma ayarları ve shader'lar büyük ölçüde değişti
- Windows çoklu monitör ve Wayland'da exclusive fullscreen çökmesi bilinen bir sorun; test sürümü dünyaları bozabileceği için yedek alınmalı veya ayrı bir klasörde çalıştırılmalı
SDL3 tabanlı pencere·girdi sistemi
- Pencere yönetimi, girdi ve platform entegrasyonu kütüphanesi GLFW'den SDL3'e geçirildi
- Klavye girdisi, fiziksel tuş konumu için SDL scancode kullanıyor
- Klavye düzenine göre değişen metin düzenleme kısayollarında SDL keycode uygulanıyor
- Tuş atamaları, klavye düzenine özgü tuş kodları yerine fiziksel tuşlara göre çalışıyor
- Raw Input fare ayarı kaldırıldı ve oyun sırasında her zaman göreli fare modu kullanılıyor
- Kenarlıksız tam ekran artık varsayılan tam ekran modu; kenarlıksız ve exclusive mod arasında yeniden başlatmadan geçiş yapılabiliyor
- macOS'ta exclusive fullscreen artık desteklenmiyor
- Minimum pencere boyutu 320×240 piksel
- Linux'ta mevcut olduğunda Wayland yerel olarak öncelikli kullanılıyor
- macOS'ta metin girerken bir tuşa uzun basıldığında yerel aksan·aday açılır penceresi gösteriliyor
Bilinen tam ekran sorunları
- Windows'ta exclusive fullscreen belirli durumlarda, özellikle çoklu monitör ortamlarında, oyunun çökmesine neden olabilir
- Wayland'da exclusive fullscreen'e girildiğinde oyun çöküyor
Oynanış ve arayüz değişiklikleri
- Seyirci modundaki oyuncular portallarla etkileşime girip ışınlanabiliyor
- Armadillo, sıvıya battığında yuvarlanmaya çalışmıyor
- Debug overlay için ayrı bir GUI ölçeği uygulanabiliyor
F3 + F6altındaki Debug Options'tan ayarlanıyor- Varsayılan
Auto, normal GUI'den daha yüksek çözünürlüğü koruyor;Unchangedise normal GUI ölçeğiyle eşleşiyor - Oyuncunun tik başına blok hareket hızını gösteren
player_speedve ekran yenileme hızı göstergesi de eklendi
- Creative envanterindeki minerallerin sırası tiersiz malzemeler, işlenmemiş tier malzemeleri ve işlenmiş tier malzemeleri olacak şekilde yeniden düzenlendi
- Yapı blokları tiersiz mineraller, işlenmiş tier mineralleri ve Copper serisi sırasıyla listeleniyor; çok sayıda öğe içeren Copper blokları daha arkaya yerleştirildi
- Natural Blocks sekmesi Overworld → Nether → End sırasına göre düzenlendi
Özel yakıtlar ve öğe bileşenleri
minecraft:cooking_fuel, Furnace, Smoker ve Blast Furnace için yakıtı tanımlarburn_time, yanma tik sayısını;speed_multiplierise pişirme·eritme hızınıminecraft:number_providerile belirtir
minecraft:brewing_fuel, Brewing Stand yakıtının kullanım sayısını ve demleme hızını tanımlar- Mevcut
#brewing_fuelöğe etiketi kaldırıldı; yeni demleme yakıtı kaydında artık kullanılamaz
- Mevcut
- Smoker ve Blast Furnace tarifleri Furnace ile aynı pişirme süresini kullanır; hız artışı ise yakıt bileşenindeki
minecraft:cooking/speed_defaulttarafından sağlanır - Furnace·Smoker·Blast Furnace için pişirme ve yakıt süresi alanları short'tan integer'a çevrildi ve
speed_multipliereklendi - Brewing Stand'in
BrewTimeveFuelalanları da integer oldu;total_brew_time,total_fuel,speed_multipliereklendi - Eklenen veri bileşenleri şunlar:
minecraft:sign_text_front,minecraft:sign_text_back: tabelanın ön·arka metnini depolar ve öğe ipucunda gösterirminecraft:waxed: içeriğin balmumuyla kaplandığını gösteren, alanı olmayan bir işaretleyicidirminecraft:cushion/color: yerleştirilmiş Cushion'a 16 boya rengini uygularminecraft:villager_food: köylülerin yiyebileceği öğeleri ve besin değerlerini tanımlarminecraft:mob_visibility: ekipmanın mob algılama mesafesine etkisini 0.0~10.0 aralığında belirtir; üst üste gelse bile maksimum görüş değeri 10.0'ı aşmaz
Tabelalar ve veri paketi uyumluluğu
- Veri paketi sürümü 111.0'a yükseldi
- Tabela özel metnindeki komutlar ve tıklama olayları varsayılan olarak blok tıklandığında çalışmaz; yeni tabelalardaki metin bileşenleri de otomatik olarak yorumlanmaz
- Yeni
allow_op_featuresalanının varsayılan değerifalse; önceki davranışı geri getirmek için açıkçatrueolarak ayarlanması gerekir - Önceki sürümlerde kaydedilen tabelalara ve tabela verisi içeren
minecraft:block_entity_dataiçinallow_op_features=trueuygulanır
- Yeni
- Yerleştirme sonrası tabela düzenleme ekranı yalnızca balmumu uygulanmamışsa ve ön yüz metni düzenlenebiliyorsa, yani normal tıklamayla düzenleme ekranı açılabiliyorsa gösterilir
- Tabelalar
minecraft:sign_text_front,minecraft:sign_text_back,minecraft:waxedbileşenlerini alıp verir /spreadplayerskomutunun oyuncuları yerleştirebileceği güvenli bloklar#entities_can_teleport_toblok etiketiyle kontrol edilir
Registry referansları ve loot·advancement değişiklikleri
- Ayrı bir registry'si olan loot table türleri artık registry öğesi ve etiket referanslarını destekliyor
- Tek öğeli alanlar namespaced ID veya satır içi değer alabilir
- Liste alanları satır içi değer, tekil·çoğul namespaced ID, satır içi değer listesi veya
#etiket ID'si alabilir - Kapsam: advancement, item modifier, loot table, number provider, predicate, recipe, slot source
- Predicate, item modifier ve slot source için mevcut
referencetürü gereksiz hale geldiği için kaldırıldı - Advancement tetikleyicilerindeki çeşitli alanlar artık satır içi predicate'in yanı sıra namespaced predicate ID de alabiliyor
- Mevcut koşul listesinin örtük
minecraft:all_ofdavranışı kaldırıldı; artıktypezorunlu - Birden fazla
block,recipe_id,loot_tablealanı çoğul hale getirildi ve tekil ID, liste veya etiketi destekliyor
- Mevcut koşul listesinin örtük
- Loot Pool Entry içindeki
conditionsalanıcondition,functionsalanı isemodifierolarak yeniden adlandırıldı - Loot Function'daki
conditionsalanıcondition, işlev türünü belirtenfunctionalanı isetypeolarak değiştirildi- Satır içi koşul listeleri artık kabul edilmiyor; aynı davranış için
minecraft:all_ofaçıkça belirtilmeli
- Satır içi koşul listeleri artık kabul edilmiyor; aynı davranış için
- Predicate'in tür alanı
condition,typeolarak değiştirildi;minecraft:referenceveminecraft:block_state_propertykaldırıldı- Yeni
minecraft:match_block, blok ID·etiketi, durum, NBT, bileşenler ve bileşen predicate'lerini birlikte denetler
- Yeni
- Satır içi number provider artık
typealanını her zaman açıkça belirtmeli; varsayılanminecraft:uniformartık kullanılmıyor - Pişirme yakıtlarına göre yanma süresi ile varsayılan pişirme·demleme hızları ve demleme kullanım sayılarını sağlayan çeşitli Vanilla number provider'lar eklendi
Mob spawn ve dünya oluşturma
- Yeni ortam özelliği
minecraft:gameplay/natural_mob_spawns, kategori bazlı ağırlıklı mob spawn'ını ve varlık bazlı spawn cost'u tanımlar- Dünya oluşturma yerleştirmesi sırasında bu özellik yalnızca Dimension ve Biome tarafından uygulanır
overlaydeğiştiricisi, üst katmandaki kategori ayarlarını ve aynı varlık için spawn cost'u öncelikli uygular
minecraft:gameplay/creature_world_gen_spawn_probability, dünya oluşturma sırasında creature kategorisi mob spawn tekrar olasılığını 0 ile 1'den küçük olacak şekilde tanımlar; varsayılan değer 0.1'dir- Biome içindeki
spawners,spawn_costs,creature_spawn_probabilitykaldırıldı ve yeni ortam özelliğine taşındı - Ortam parçacık özelliği, zaman çizelgesi keyframe'leri arasındaki olasılığı enterpole eder ve alt katman parçacık listesine öğe ekleyen
appenddeğiştiricisini destekler - Noise Settings içinde aquifer ve ore vein ayarları sırasıyla isteğe bağlı
aquifersnesnesi veore_veinslistesi olarak yeniden yapılandırıldı- Ayar yoksa ilgili aquifer veya ore vein oluşturulmaz
- İlgili density function alanları
noise_routeriçinden yeni yapıya taşındı
- Density Function'a
sub,div,negate,lerp,floor,round,ceil,truncate,beardifiereklendi- Çeşitli mevcut bağımsız değişken adları
value,left,right,input,noiseolarak değiştirildi invert,reciprocalolarak yeniden adlandırıldıfinal_densityiçine artık örtük olarak beardifier eklenmiyor
- Çeşitli mevcut bağımsız değişken adları
Grafikler ve önemli hata düzeltmeleri
- Kaynak paketi sürümü 92.0'a yükseldi
- Order-independent transparency desteği olan shader'lar ve
OIT_ALWAYS_WRITE_DEPTHtanımı eklendi core/integrate_depth.fsh, 3D HUD ile her zaman üstte gösterilen gizmo'nun depth buffer'ını ana depth buffer'a entegre eder- Düzeltilen başlıca sorunlar şunlar:
- QWERTY dışı klavyeler ile macOS·CJK girdisine ilişkin tuş atama ve girdi sorunları
- Improved Transparency'de harita render çökmesi ile cam·yarı saydam nesneler·parçacıklar·dünya sınırı gösterim sorunları
- Dünya yüksekliği dışındaki mermiler ve en düşük yükseklikte yerleştirilen arı kovanlarının neden olduğu çökmeler
- Dünya oluşturma heightmap kaydetme·yükleme sorunları ve tick sprint sonrası mob konumu eşzamanlama bozulması
- Cushion yerleştirme, renk, özel ad, yakıt süresi ve çarpışma algılama sorunları
- Ender Dragon hasarı·uçuşu, seyircinin portal kullanımı ve
/spreadplayersgüvenli blok tespiti sorunları
Kurulum ve test uyarıları
- Snapshot, Minecraft: Java Edition içindir; Minecraft Launcher içindeki
Installationssekmesinden Snapshot etkinleştirilerek kurulur - Test sürümü dünyaları bozabileceği için yedek alınmalı veya varsayılan dünyalardan farklı bir klasörde çalıştırılmalıdır
- Platformlar arası Minecraft server jar da sunuluyor
- Hatalar Minecraft issue tracker, geri bildirimler ise Feedback sitesi üzerinden gönderilebilir
1 yorum
Hacker News yorumları
Bu binding’in LWJGL implementasyonu, GTNH mod paketi ekibinden bir üye tarafından yazıldı; böylece vanilla→modded→vanilla döngüsü yeniden tamamlanmış oldu https://github.com/LWJGL/lwjgl3/pull/1033
Yakın zamanda Tribal Trouble oyununu (https://github.com/bondolo/tribaltrouble) GLFW’den SDL3’e geçirdim; genel olarak sorunsuz bir refactoring oldu. Exclusive fullscreen ve desktop fullscreen modlarında birkaç sorun vardı ama sonunda çözdüm
Zorlu ekran modu işlemlerini test edip belgelendirmek için bir demo da yazdım. Oyun Minecraft gibi Java, ama demoyu olabildiğince basit tutmak için C kullandım
Windows’ta exclusive fullscreen, özellikle çoklu monitörlerde oyunu bozabiliyor; Wayland’de ise sadece bu moda girmek bile oyunu bozuyor diye bilinen bir sorun var. İkisi de genelde snapshot’ı ertelemeye yetecek blocker bug gibi görünüyor; umarım resmi sürümden önce düzeltilir
Kararlılık beklentisi sırasını uzun süreli destek sürümü, resmi sürüm, release candidate, beta, alfa, snapshot, az önce merge edilmiş commit, merge edilmemiş PR, taslak PR gibi görüyorum. Büyük bir bug varsa release candidate ya da beta ertelenmeli; kritik bir bug varsa merge’in kendisi engellenmeli. Ama CI’dan geçip merge edilmiş bir bug yüzünden snapshot’ı ertelemek için sebep yok
Snapshot daha çok, kullanıcıların main’i kendileri build etmeden çalıştırıp geri bildirim verebilmesi için mevcut durumun düzenli aralıklarla kesilip dağıtılmasıdır
Snapshot’ın hatasız olacağı hiçbir zaman vaat edilmedi; hatta varsayım bunun tam tersi
Minecraft’ı hiç bilmeyen teknik bir baba, 2026’da aile için bir sunucuyu nasıl kurmalı merak ediyorum. Çocuklar şu anda iPad’de ve ara sıra eski bir MacBook ile Windows PC’de oynuyor
Standart bir Java sunucusu çalıştırıp Geyser ile Bedrock protokolünü gerçek zamanlı dönüştürebilirsiniz. Kısıtları fazla olan Bedrock istemcileri için geçici çözümler gerekebilir, ama daha fazla seçeneğe sahip Java sunucusunu merkeze alarak yönetebilirsiniz
Güncel bir JVM kullanıp maksimum belleği kabul edilebilir ölçüde yükselttikten sonra ZGC kullanmak yeterli. Birçok flag’i dayanak olmadan ayarlayan ya da Eden alanı boyutu ile hedef duraklama süresi gibi çelişen ayarları birlikte öneren yönergeler de var
ZGC’nin gecikmesi çok düşüktür ve heap büyüdükçe performans düşüşü azalır; ancak object header compression’ı korumak için 32 GB’nin altında tutmak daha iyi. Güncel JVM bellek kullanımını ve genel performansı da iyileştirir
Daha fazla performans gerekirse fabric ve lithium kurulabilir. Paper, Spigot, Purpur gibi modlardan kaçınmak daha iyi; otomasyon düzeneklerini bozabilirler
itzg/docker-minecraft-server’ı yıllardır stabil şekilde kullandım; bağımlılıkları tek tek kurmak gerekmemesi, imajın hepsini halletmesi hoşuma gitti. Bedrock sunucu imajı da var ama düzgün çalıştırmayı başaramadım
En kolay işletim için herkesin Windows, Mac veya Linux’ta Java Edition kullanması gerekir; aksi hâlde hosted sunucu olan Realms’e ödeme yapmak bir seçenek
Aile sunucusunun amacına göre uygun olmayabilir ama çocukların hızlı ve basit şekilde birlikte oynaması için en kolay yol bu. Uzun süre yalnızca Bedrock’ta ısrar edip Java’ya geçtikten sonra daha erken geçmediğine pişman olan çocuklar da gördüm
Icculus, bir oyunu SDL2’den SDL3’e taşıma konusunda harika bir video yayımladı; Doom taşıma videosu burada: https://www.youtube.com/watch?v=ixdeGhsoxy8
Minecraft’ın basit bir oyundan giderek kendine özgü bir oyun motoruna daha çok benzemesi şaşırtıcı
GLFW’den ayrılma nedeninin belgelenip belgelenmediğini merak ediyorum. GLFW kullanan bir projem olduğu için SDL’in daha iyi bir seçenek olup olmadığını sürekli düşünüyorum
SDL3’ün Wayland desteği varsayılan olarak sağlam. Minecraft’ta GLFW yalnızca pencere oluşturma, görev çubuğu simgesi, tam ekran ve giriş için kullanılıyor; geri kalanı ham OpenGL ile işlendiğinden geçiş de kolay olmuş. Artık Vulkan’ı da desteklediği için Linux masaüstü ve Steam Deck’te tamamen modern bir yığın kullanılabiliyor
SDL3, Android 4.2’de bile çalışıyor; Java kullanmadan SDL3 ve ImGui ile uygulama yaptığım da oldu
Her proje için büyük bir fark olmayabilir ama SDL daha fazla özellik sunuyor ve taşınabilirliği de daha yüksek
Ritim oyunu osu! da yakın zamanda SDL2’den SDL3’e geçerek performans ve gecikme süresinde büyük iyileşme sağladı. SDL3’ün benimsenmesi biraz yavaş görünüyor; Minecraft’ın şimdiye kadar GLFW kullanmış olması da şaşırtıcı
Özellikle SDL3’e geçişten sonra osu! çalışırken Discord istemcisi açık olduğunda yaşanan gecikmenin ortadan kalktığını, bunu bir YouTube geliştirici videosunda gördüğümü hatırlıyorum
Ubuntu 24.04’e SDL3 baştan dahil edilmemişti; SDL3 beklenenden daha yeni olduğu için benimseme hızının beklenenden düşük görünmesinin nedenlerinden biri bu olabilir
SDL2, özellikle Vulkan ve Metal’i de içeren GPU API soyutlaması konusunda yaşını belli ediyordu; bu yüzden SDL3’e geçiş mantıklı. Java sürümünün Linux’ta uzun süredir yaşadığı giriş gecikmesi ve Alt+Tab sorunlarının da pencere ve giriş katmanındaki değişiklikle çözülüp çözülmeyeceğini merak ediyorum
Modları etkin biçimde desteklemek için Java veya C# gibi tersine derlemesi ve çalışma zamanında değiştirmesi kolay diller, ya da JVM ve .NET CLR kullanmak daha iyi görünüyor
İç değişiklikler yapılırken mod geliştiricileri de düşünülürse, neredeyse ek maliyet olmadan harika bir modlama API’si elde edilebilir