- Minecraft 26.3 Snapshot 4 mengganti backend manajemen jendela, input, dan integrasi platform dari GLFW ke SDL3, serta memperkenalkan SDL scancode dan keycode untuk input keyboard
- Key binding kini menggunakan posisi fisik tombol alih-alih kode per tata letak keyboard, Linux akan memprioritaskan Wayland bila memungkinkan, dan macOS mendukung jendela kandidat input native
- Ditambahkan komponen data untuk bahan bakar Furnace dan Brewing kustom, sehingga waktu bakar, jumlah penggunaan, serta kecepatan memasak dan brewing bisa diatur dengan number provider
- Data Pack 111.0 dan Resource Pack 92.0 membawa perubahan besar pada event klik sign, referensi loot table, trigger advancement, properti lingkungan spawn mob, pengaturan world generation, dan shader
- Di Windows multi-monitor dan Wayland, crash pada fullscreen eksklusif telah diketahui terjadi, dan versi uji dapat merusak world sehingga harus dibackup atau dijalankan di folder terpisah
Sistem jendela dan input berbasis SDL3
- Library manajemen jendela, input, dan integrasi platform beralih dari GLFW ke SDL3
- Input keyboard menggunakan SDL scancode untuk posisi fisik tombol
- Shortcut pengeditan teks yang berubah sesuai tata letak keyboard memakai SDL keycode
- Key binding kini bekerja berdasarkan tombol fisik, bukan key code per tata letak keyboard
- Pengaturan mouse Raw Input dihapus, dan selama bermain game selalu memakai mode mouse relatif
- Fullscreen tanpa border kini menjadi mode fullscreen default, dan bisa berpindah antara mode tanpa border dan mode eksklusif tanpa restart
- Di macOS, fullscreen eksklusif tidak lagi didukung
- Ukuran minimum jendela adalah 320×240 piksel
- Di Linux, Wayland diprioritaskan secara native bila tersedia
- Di macOS, saat memasukkan teks dan tombol ditekan lama, popup aksen dan kandidat native akan ditampilkan
Masalah fullscreen yang diketahui
- Fullscreen eksklusif di Windows dapat menyebabkan game crash dalam situasi tertentu, khususnya di lingkungan multi-monitor
- Di Wayland, game akan crash saat masuk ke fullscreen eksklusif
Perubahan gameplay dan antarmuka
- Pemain dalam mode spectator kini bisa berinteraksi dengan portal untuk berpindah
- Armadillo tidak akan mencoba menggulung tubuhnya saat terendam cairan
- Overlay debug kini bisa memakai skala GUI terpisah
- Diatur dari Debug Options dengan
F3 + F6 - Nilai default
Automenjaga resolusi lebih tinggi daripada GUI biasa, sedangkanUnchangedmenyamakan dengan skala GUI biasa - Ditambahkan juga
player_speedyang menampilkan kecepatan perpindahan blok per tick pemain, serta tampilan refresh rate layar
- Diatur dari Debug Options dengan
- Urutan mineral di creative inventory diatur ulang menjadi material tanpa tier, material tier mentah, lalu material tier olahan
- Building Blocks diurutkan menjadi mineral tanpa tier, mineral tier olahan, lalu keluarga Copper, dengan blok Copper yang itemnya banyak ditempatkan di bagian belakang
- Tab Natural Blocks kini disusun sebagai Overworld → Nether → End
Bahan bakar kustom dan komponen item
minecraft:cooking_fuelmendefinisikan bahan bakar untuk Furnace, Smoker, dan Blast Furnaceburn_timemenentukan jumlah tick pembakaran, danspeed_multipliermenentukan kecepatan memasak dan peleburan, masing-masing lewatminecraft:number_provider
minecraft:brewing_fuelmendefinisikan jumlah penggunaan dan kecepatan brewing untuk bahan bakar Brewing Stand- Tag item lama
#brewing_fueltelah dihapus dan tidak bisa lagi dipakai untuk mendaftarkan bahan bakar brewing baru
- Tag item lama
- Recipe Smoker dan Blast Furnace kini memakai waktu memasak yang sama dengan Furnace, sementara peningkatan kecepatan ditangani oleh
minecraft:cooking/speed_defaultdari komponen bahan bakar - Field waktu memasak dan bahan bakar pada Furnace, Smoker, dan Blast Furnace berubah dari short menjadi integer, dan
speed_multiplierditambahkan BrewTimedanFuelpada Brewing Stand juga berubah menjadi integer, dengan tambahantotal_brew_time,total_fuel, danspeed_multiplier- Komponen data yang ditambahkan adalah sebagai berikut
minecraft:sign_text_front,minecraft:sign_text_back: menyimpan teks depan dan belakang sign serta menampilkannya di tooltip itemminecraft:waxed: marker tanpa field yang menunjukkan kontennya telah dilapisi waxminecraft:cushion/color: menerapkan 16 warna dye pada Cushion yang sudah ditempatkanminecraft:villager_food: mendefinisikan item yang bisa dimakan villager dan nilai nutrisinyaminecraft:mob_visibility: menetapkan rasio pengaruh equipment terhadap jarak deteksi mob dari 0.0 hingga 10.0, dan meski ditumpuk nilai visibilitas maksimum tetap tidak melebihi 10.0
Kompatibilitas sign dan data pack
- Versi data pack naik ke 111.0
- Perintah dan click event pada teks kustom sign kini secara default tidak dijalankan saat blok diklik, dan komponen teks pada sign baru juga tidak diinterpretasikan otomatis
- Nilai default field baru
allow_op_featuresadalahfalse, dan untuk memulihkan perilaku lama harus diatur eksplisit ketrue - Untuk sign yang disimpan dari versi lama dan
minecraft:block_entity_datayang memuat data sign,allow_op_features=trueakan diterapkan
- Nilai default field baru
- Layar edit sign setelah penempatan hanya ditampilkan ketika layar edit bisa dibuka dengan klik biasa, seperti saat belum diberi wax dan teks sisi depan dapat diedit
- Sign kini menerima dan mengembalikan komponen
minecraft:sign_text_front,minecraft:sign_text_back, danminecraft:waxed - Blok aman yang dapat dipakai
/spreadplayersuntuk menempatkan pemain kini dikendalikan oleh block tag#entities_can_teleport_to
Referensi registry serta perubahan loot dan advancement
- Tipe loot table yang memiliki registry khusus kini mendukung referensi elemen registry dan tag
- Field elemen tunggal dapat menerima namespaced ID atau nilai inline
- Field daftar dapat menerima nilai inline, satu atau beberapa namespaced ID, daftar nilai inline, atau ID tag
# - Targetnya mencakup advancement, item modifier, loot table, number provider, predicate, recipe, dan slot source
- Tipe
referencelama untuk predicate, item modifier, dan slot source dihapus karena tidak lagi diperlukan - Berbagai field trigger advancement kini bisa menerima bukan hanya predicate inline, tetapi juga namespaced predicate ID
- Perilaku implisit
minecraft:all_ofpada daftar kondisi lama dihapus, sehinggatypekini wajib ditentukan - Berbagai field
block,recipe_id, danloot_tablemasing-masing berubah menjadi bentuk jamak dan mendukung satu ID, daftar, atau tag
- Perilaku implisit
conditionspada Loot Pool Entry diganti namanya menjadicondition, danfunctionsmenjadimodifierconditionspada Loot Function menjadicondition, danfunctionyang menunjukkan tipe fungsi diubah menjaditype- Daftar kondisi inline tidak lagi diterima, dan untuk perilaku yang sama harus menyatakan
minecraft:all_ofsecara eksplisit
- Daftar kondisi inline tidak lagi diterima, dan untuk perilaku yang sama harus menyatakan
- Field tipe predicate
conditionberubah menjaditype, danminecraft:referencesertaminecraft:block_state_propertydihapusminecraft:match_blockyang baru memeriksa ID atau tag blok, state, NBT, komponen, dan component predicate sekaligus
- Number provider inline kini harus selalu menyatakan
type, dan tidak lagi memakaiminecraft:uniformsebagai nilai default - Ditambahkan beberapa Vanilla number provider yang menyediakan waktu bakar per bahan bakar memasak, kecepatan dasar memasak dan brewing, serta jumlah brewing
Spawn mob dan world generation
- Properti lingkungan baru
minecraft:gameplay/natural_mob_spawnsmendefinisikan spawn mob berbasis bobot per kategori serta spawn cost per entitas- Selama penempatan world generation, hanya Dimension dan Biome yang menerapkan properti ini
- Modifier
overlayakan memprioritaskan spawn cost entitas yang sama dan pengaturan kategori dari lapisan lebih atas
minecraft:gameplay/creature_world_gen_spawn_probabilitymenetapkan probabilitas pengulangan spawn mob kategori creature selama world generation dari 0 atau lebih hingga kurang dari 1, dengan default 0.1spawners,spawn_costs, dancreature_spawn_probabilitypada Biome dihapus dan dipindahkan ke properti lingkungan baru- Properti lingkungan partikel sekitar kini menginterpolasi probabilitas di antara keyframe timeline, dan mendukung modifier
appendyang menyambungkan item ke daftar partikel lapisan bawah - Di Noise Settings, pengaturan aquifer dan ore vein disusun ulang menjadi objek
aquifersopsional dan daftarore_veins- Jika pengaturan tidak ada, aquifer atau ore vein terkait tidak akan dibuat
- Field density function terkait dipindahkan dari
noise_routerke struktur baru
- Ditambahkan
sub,div,negate,lerp,floor,round,ceil,truncate,beardifierke Density Function- Sejumlah nama argumen lama diubah menjadi
value,left,right,input, dannoise invertdiganti namanya menjadireciprocalfinal_densitytidak lagi menambahkan beardifier secara implisit
- Sejumlah nama argumen lama diubah menjadi
Grafik dan perbaikan bug utama
- Versi resource pack naik ke 92.0
- Ditambahkan shader yang mendukung order-independent transparency dan definisi
OIT_ALWAYS_WRITE_DEPTH core/integrate_depth.fshmengintegrasikan depth buffer untuk HUD 3D dan gizmo yang selalu ditampilkan di atas ke dalam depth buffer utama- Masalah utama yang diperbaiki meliputi:
- Masalah key binding dan input pada keyboard non-QWERTY serta input macOS dan CJK
- Crash rendering peta pada Improved Transparency, serta masalah tampilan kaca, objek semi-transparan, partikel, dan batas dunia
- Crash akibat proyektil di luar ketinggian world dan penempatan sarang lebah di ketinggian terendah
- Masalah penyimpanan dan pemuatan heightmap world generation serta desinkronisasi posisi mob setelah tick sprint
- Masalah penempatan Cushion, warna, nama kustom, waktu bahan bakar, dan deteksi tabrakan
- Masalah damage dan terbang Ender Dragon, penggunaan portal oleh spectator, serta penilaian blok aman
/spreadplayers
Catatan instalasi dan pengujian
- Snapshot ini untuk Minecraft: Java Edition dan diinstal dengan mengaktifkan Snapshot di tab
Installationspada Minecraft Launcher - Versi uji dapat merusak world, jadi harus dibackup atau dijalankan di folder berbeda dari world utama
- Tersedia juga Minecraft server jar untuk lintas platform
- Bug bisa dilaporkan melalui Minecraft issue tracker, dan masukan bisa dikirim lewat situs Feedback
1 komentar
Opini Hacker News
Implementasi LWJGL untuk binding ini ditulis oleh anggota tim modpack GTNH, sehingga siklus vanilla→modded→vanilla kembali lengkap https://github.com/LWJGL/lwjgl3/pull/1033
Baru-baru ini saya memindahkan game Tribal Trouble(https://github.com/bondolo/tribaltrouble) dari GLFW ke SDL3, dan secara umum refaktornya cukup lancar. Ada beberapa masalah pada exclusive fullscreen dan desktop fullscreen, tetapi akhirnya terselesaikan
Saya juga membuat demo untuk menguji dan mendokumentasikan penanganan mode layar yang rumit. Gamenya memakai Java seperti Minecraft, tetapi demonya memakai C agar sesederhana mungkin
Exclusive fullscreen di Windows punya masalah yang diketahui dapat menghentikan game, terutama pada multi-monitor, dan di Wayland game bisa terhenti hanya dengan masuk ke mode itu. Keduanya biasanya terlihat seperti bug pemblokir yang layak menunda snapshot, jadi saya berharap diperbaiki sebelum rilis resmi
Menurut saya ekspektasi stabilitas kira-kira berurutan seperti ini: rilis dukungan jangka panjang, rilis resmi, release candidate, beta, alpha, snapshot, commit yang baru saja di-merge, PR yang belum di-merge, draft PR. Bug besar bisa menunda release candidate atau beta, dan bug fatal semestinya mencegah merge itu sendiri, tetapi tidak ada alasan menunda snapshot karena bug yang lolos CI lalu di-merge
Snapshot lebih mirip pemotongan rutin dari kondisi saat ini agar pengguna bisa menjalankan dan memberi feedback tanpa harus membangun main sendiri
Snapshot tidak pernah menjanjikan bebas bug; justru sebaliknya yang menjadi asumsi
Saya penasaran, bagaimana seorang ayah teknisi yang sama sekali tidak tahu Minecraft harus membangun server keluarga pada 2026. Anak-anak saat ini bermain di iPad dan sesekali di MacBook lama serta PC Windows
Anda bisa menjalankan server Java standar dan memakai Geyser untuk menerjemahkan protokol Bedrock secara real-time. Klien Bedrock yang sangat dibatasi mungkin memerlukan cara bypass, tetapi Anda bisa mengelolanya dengan server Java sebagai pusat karena opsinya lebih banyak
Cukup gunakan JVM terbaru, naikkan memori maksimum setinggi yang masih dapat diterima, lalu gunakan ZGC. Ada juga panduan yang mengubah banyak flag tanpa dasar, atau memasukkan pengaturan yang saling bertentangan seperti ukuran eden region dan target waktu jeda
ZGC memiliki latensi sangat rendah dan penurunan performanya makin kecil dengan heap yang lebih besar, tetapi sebaiknya tetap di bawah 32GB agar kompresi header objek tetap aktif. JVM terbaru juga memperbaiki penggunaan memori dan performa secara umum
Jika butuh performa lebih, pasang fabric dan lithium. Mod seperti Paper, Spigot, dan Purpur sebaiknya dihindari karena bisa merusak fasilitas otomatisasi
Saya menggunakan itzg/docker-minecraft-server secara stabil selama bertahun-tahun, dan saya suka karena image-nya menangani semuanya tanpa perlu memasang dependensi satu per satu. Ada juga image server Bedrock, tetapi saya tidak berhasil membuatnya berjalan dengan benar
Cara termudah untuk mengoperasikannya adalah semua orang memakai edisi Java di Windows, Mac, atau Linux; jika tidak, ada opsi membayar Realms sebagai server hosting
Bergantung pada tujuan server keluarga, ini mungkin tidak cocok, tetapi ini cara termudah agar anak-anak bisa bermain bersama dengan cepat dan sederhana. Saya juga pernah melihat anak-anak yang lama bersikeras memakai Bedrock lalu setelah pindah ke Java menyesal tidak melakukannya lebih cepat
Icculus mengunggah video bagus tentang mem-porting game dari SDL2 ke SDL3, dan video port Doom ada di sini: https://www.youtube.com/watch?v=ixdeGhsoxy8
Mengejutkan melihat Minecraft makin terlihat seperti game engine tersendiri alih-alih sekadar game biasa
Saya penasaran apakah alasan meninggalkan GLFW sudah didokumentasikan. Karena ada proyek yang memakai GLFW, saya selalu bertanya-tanya apakah SDL adalah pilihan yang lebih baik
SDL3 pada dasarnya punya dukungan Wayland yang solid. Di Minecraft, GLFW hanya dipakai untuk pembuatan jendela, ikon taskbar, fullscreen, dan input, sementara sisanya ditangani dengan OpenGL mentah, jadi peralihannya juga mudah. Sekarang bahkan mendukung Vulkan, sehingga stack yang sepenuhnya modern bisa digunakan di desktop Linux dan Steam Deck
SDL3 juga berjalan di Android 4.2, dan saya pernah membuat aplikasi dengan SDL3 dan ImGui tanpa Java
Ini mungkin bukan perbedaan besar untuk semua proyek, tetapi SDL menyediakan lebih banyak fitur dan portabilitasnya juga lebih tinggi
Game ritme osu! juga baru-baru ini beralih dari SDL2 ke SDL3, dan performa serta latensinya meningkat besar. Adopsi SDL3 tampaknya agak lambat, dan cukup mengejutkan juga bahwa Minecraft selama ini memakai GLFW
Khususnya setelah beralih ke SDL3, lag yang muncul saat klien Discord dibiarkan terbuka ketika menjalankan osu! hilang; saya ingat ini dari video pengembangan di YouTube
Ubuntu 24.04 tidak menyertakan SDL3 sejak awal, dan karena SDL3 ternyata lebih baru dari yang dikira, ini tampaknya salah satu alasan laju adopsinya lebih rendah dari harapan
SDL2 sudah tampak menua, terutama dalam abstraksi GPU API termasuk Vulkan dan Metal, jadi peralihan ke SDL3 masuk akal. Saya juga penasaran apakah masalah lama di Java Edition Linux seperti input lag dan masalah Alt+Tab akan terselesaikan dengan perubahan lapisan jendela dan input
Untuk mendukung mod secara aktif, tampaknya lebih baik memakai bahasa yang mudah didekompilasi dan dimodifikasi saat runtime seperti Java atau C#, atau menggunakan JVM dan .NET CLR
Jika mempertimbangkan para modder saat melakukan perubahan internal, pada dasarnya bisa mendapat API modding yang bagus tanpa biaya tambahan