- Minecraft 26.3 Snapshot 4 ने विंडो management, input और platform integration backend को GLFW से SDL3 में बदल दिया है, और keyboard input में SDL scancode और keycode पेश किए हैं
- Key bindings अब keyboard layout-विशिष्ट codes के बजाय physical key positions का उपयोग करती हैं; Linux पर जहाँ संभव हो Wayland को प्राथमिकता दी जाती है, और macOS पर native input candidate window supported है
- Custom furnace और brewing fuels के लिए data components जोड़े गए हैं, जिनसे burn time, use count, cooking और brewing speed को number provider से सेट किया जा सकता है
- Data pack 111.0 और resource pack 92.0 में sign click events, loot table references, advancement triggers, mob spawning environment properties, terrain generation settings और shaders में बड़े बदलाव हुए हैं
- Windows multi-monitor और Wayland में exclusive fullscreen crashes ज्ञात हैं; test versions world को नुकसान पहुँचा सकते हैं, इसलिए backup लें या अलग folder में चलाएँ
SDL3-आधारित विंडो और इनपुट सिस्टम
- Window management, input और platform integration library को GLFW से SDL3 में बदल दिया गया है
- Keyboard input physical key positions के लिए SDL scancode का उपयोग करता है
- Keyboard layout के अनुसार बदलने वाले text editing shortcuts में SDL keycode लागू किया गया है
- Key bindings keyboard layout-विशिष्ट key code के बजाय physical keys के आधार पर काम करती हैं
- Raw Input mouse setting हटा दी गई है, और gameplay के दौरान हमेशा relative mouse mode का उपयोग होता है
- Borderless fullscreen default fullscreen mode बन गया है, और borderless तथा exclusive mode के बीच restart किए बिना switch किया जा सकता है
- macOS पर exclusive fullscreen अब supported नहीं है
- न्यूनतम window size 320×240 pixels है
- Linux पर उपलब्ध होने पर Wayland को native रूप से प्राथमिकता दी जाती है
- macOS पर text input के दौरान किसी key को long press करने पर native accent/candidate popup दिखता है
ज्ञात fullscreen समस्याएँ
- Windows का exclusive fullscreen कुछ स्थितियों में, खासकर multi-monitor environment में, game crash करा सकता है
- Wayland पर exclusive fullscreen में प्रवेश करने से game crash हो जाता है
Gameplay और interface बदलाव
- Spectator mode वाले players portal से interact करके teleport कर सकते हैं
- Armadillo liquid में डूबे होने पर खुद को roll करने की कोशिश नहीं करता
- Debug overlay पर अलग GUI scale लागू किया जा सकता है
- इसे
F3 + F6के Debug Options में सेट किया जाता है - Default
Autoसामान्य GUI से higher resolution बनाए रखता है, औरUnchangedसामान्य GUI scale से match करता है - Player की blocks-per-tick movement speed दिखाने वाला
player_speedऔर display refresh rate indicator भी जोड़ा गया है
- इसे
- Creative inventory में minerals का क्रम non-tier materials, raw tier materials, refined tier materials के क्रम में फिर से व्यवस्थित किया गया है
- Building blocks का क्रम non-tier minerals, refined tier minerals, Copper series है, और ज्यादा items वाले Copper blocks को पीछे रखा गया है
- Natural Blocks tab को Overworld → Nether → End क्रम में व्यवस्थित किया गया है
Custom fuels और item components
minecraft:cooking_fuelFurnace, Smoker और Blast Furnace के लिए fuel define करता हैburn_timeburn ticks की संख्या, औरspeed_multipliercooking/smelting speed को क्रमशःminecraft:number_providerके रूप में specify करता है
minecraft:brewing_fuelBrewing Stand fuel के use count और brewing speed को define करता है- मौजूदा
#brewing_fuelitem tag हटा दिया गया है, इसलिए इसे नया brewing fuel register करने में इस्तेमाल नहीं किया जा सकता
- मौजूदा
- Smoker और Blast Furnace recipes Furnace जैसा ही cooking time इस्तेमाल करती हैं, और speed boost fuel component के
minecraft:cooking/speed_defaultद्वारा संभाला जाता है - Furnace, Smoker और Blast Furnace के cooking तथा fuel time fields short से integer में बदले गए हैं, और
speed_multiplierजोड़ा गया है - Brewing Stand के
BrewTimeऔरFuelभी integer में बदले गए हैं, औरtotal_brew_time,total_fuel,speed_multiplierजोड़े गए हैं - जोड़े गए data components इस प्रकार हैं
minecraft:sign_text_front,minecraft:sign_text_back: sign के front/back text को store करते हैं और item tooltip में दिखाते हैंminecraft:waxed: बिना field वाला marker है जो बताता है कि contents waxed हैंminecraft:cushion/color: placed Cushion पर 16 dye colors लागू करता हैminecraft:villager_food: villagers द्वारा खाए जा सकने वाले items और nutrition values define करता हैminecraft:mob_visibility: equipment का mob detection distance पर प्रभाव 0.0~10.0 ratio में specify करता है; stack करने पर भी maximum visibility value 10.0 से अधिक नहीं होती
Signs और data pack compatibility
- Data pack version 111.0 हो गया है
- Sign custom text के commands और click events default रूप से block click पर execute नहीं होते, और नए signs के text components भी automatically interpreted नहीं होते
- नए
allow_op_featuresfield का defaultfalseहै; पुराना behavior restore करने के लिए इसे explicit रूप सेtrueसेट करना होगा - पुराने versions में saved signs और sign data रखने वाले
minecraft:block_entity_dataपरallow_op_features=trueलागू होता है
- नए
- Placement के बाद sign editing screen केवल तब दिखाई देती है जब sign waxed न हो, front text editable हो, और सामान्य click से editing screen खोली जा सकती हो
- Signs
minecraft:sign_text_front,minecraft:sign_text_back,minecraft:waxedcomponents को exchange करते हैं /spreadplayersजिन safe blocks पर players को place कर सकता है, उसे#entities_can_teleport_toblock tag से control किया जाता है
Registry references और loot/advancement बदलाव
- Dedicated registry वाले loot table types registry elements और tag references support करते हैं
- Single element field namespaced ID या inline value ले सकता है
- List field inline value, single/multiple namespaced IDs, inline value list, या
#tag ID ले सकता है - Targets advancement, item modifier, loot table, number provider, predicate, recipe, slot source हैं
- predicate, item modifier, slot source के पुराने
referencetype अब अनावश्यक होने के कारण हटा दिए गए हैं - Advancement trigger के कई fields inline predicate के साथ-साथ namespaced predicate ID भी ले सकते हैं
- मौजूदा condition lists का implicit
minecraft:all_ofbehavior हटा दिया गया है, इसलिएtypeअनिवार्य रूप से specify करना होगा - कई
block,recipe_id,loot_tablefields को उनके plural रूपों में बदला गया है और वे single ID, list या tag support करते हैं
- मौजूदा condition lists का implicit
- Loot Pool Entry में
conditionsका नामcondition, औरfunctionsका नामmodifierकर दिया गया है - Loot Function में
conditionsका नामcondition, और function type बताने वालेfunctionकोtypeमें बदला गया है- Inline condition lists अब accepted नहीं हैं; same behavior के लिए
minecraft:all_ofexplicit करना होगा
- Inline condition lists अब accepted नहीं हैं; same behavior के लिए
- Predicate का type field
conditionसेtypeहो गया है, औरminecraft:referenceतथाminecraft:block_state_propertyहटा दिए गए हैं- नया
minecraft:match_blockblock ID/tag, state, NBT, components और component predicate को साथ में जांचता है
- नया
- Inline number provider में हमेशा
typeexplicit होना चाहिए, और अबminecraft:uniformको default के रूप में इस्तेमाल नहीं किया जाता - Cooking fuel-wise burn time, default cooking/brewing speed और brew count प्रदान करने वाले कई Vanilla number providers जोड़े गए हैं
Mob spawning और world generation
- नया environment property
minecraft:gameplay/natural_mob_spawnscategory-wise weighted mob spawning और per-entity spawn cost define करता है- World generation placement के दौरान केवल Dimension और Biome यह property लागू करते हैं
overlaymodifier upper layer के category settings और same entity के spawn cost को प्राथमिकता देता है
minecraft:gameplay/creature_world_gen_spawn_probabilityworld generation के दौरान creature category mob spawn repetition probability को 0 या अधिक और 1 से कम के रूप में specify करता है; default 0.1 है- Biome के
spawners,spawn_costs,creature_spawn_probabilityहटाकर नए environment property में move किए गए हैं - Ambient particle environment property timeline keyframes के बीच probability interpolate करता है, और lower-layer particle list में items append करने वाला
appendmodifier support करता है - Noise Settings में aquifer और ore vein settings को क्रमशः optional
aquifersobject औरore_veinslist के रूप में restructure किया गया है- Setting न होने पर संबंधित aquifer या ore vein generate नहीं होता
- संबंधित density function fields
noise_routerसे नई structure में move किए गए हैं
- Density Function में
sub,div,negate,lerp,floor,round,ceil,truncate,beardifierजोड़े गए हैं- कई मौजूदा argument names
value,left,right,input,noiseमें बदले गए हैं invertका नामreciprocalकिया गया हैfinal_densityमें अब beardifier implicitly नहीं जोड़ा जाता
- कई मौजूदा argument names
Graphics और प्रमुख bug fixes
- Resource pack version 92.0 हो गया है
- Order-independent transparency support करने वाले shaders और
OIT_ALWAYS_WRITE_DEPTHdefine जोड़ा गया है core/integrate_depth.fsh3D HUD और हमेशा ऊपर दिखने वाले gizmo के depth buffer को main depth buffer में integrate करता है- Fixed प्रमुख issues इस प्रकार हैं
- Non-QWERTY keyboards और macOS/CJK input से जुड़े key binding तथा input issues
- Improved Transparency में map rendering crash, glass/translucent objects/particles/world border display issues
- World height से बाहर projectiles और lowest height पर beehive placement से होने वाले crashes
- World generation heightmap save/load issues और tick sprint के बाद mob position desynchronization
- Cushion placement, color, custom name, fuel time और collision detection issues
- Ender Dragon damage/flight, spectator portal usage,
/spreadplayerssafe block judgment issues
Installation और testing सावधानियाँ
- Snapshot Minecraft: Java Edition के लिए है और Minecraft Launcher के
Installationstab में Snapshot enable करके install किया जाता है - Test versions world को नुकसान पहुँचा सकते हैं, इसलिए backup लें या default world से अलग folder में run करें
- Cross-platform Minecraft server jar भी उपलब्ध है
- Bugs Minecraft issue tracker पर, और feedback Feedback site पर submit किया जा सकता है
1 टिप्पणियां
Hacker News की राय
इस binding का LWJGL implementation GTNH modpack टीम के एक सदस्य ने लिखा, जिससे vanilla→modded→vanilla का चक्र फिर से पूरा हो गया https://github.com/LWJGL/lwjgl3/pull/1033
मैंने हाल ही में गेम Tribal Trouble(https://github.com/bondolo/tribaltrouble) को GLFW से SDL3 पर migrate किया, और कुल मिलाकर refactoring काफ़ी आसान रही। exclusive fullscreen और desktop fullscreen में कुछ दिक्कतें थीं, लेकिन आखिर में उन्हें सुलझा लिया
मुश्किल display mode handling को test और document करने के लिए मैंने एक demo भी लिखा। गेम Minecraft की तरह Java में है, लेकिन demo को जितना हो सके सरल रखने के लिए C इस्तेमाल किया
Windows में exclusive fullscreen, ख़ासकर multi-monitor setup पर, गेम को crash कर सकता है, और Wayland पर तो उसमें जाना ही crash करा देता है — ऐसी known issue है। दोनों ही आम तौर पर snapshot टालने लायक blocking bug लगते हैं, इसलिए उम्मीद है कि official release से पहले इन्हें ठीक कर लिया जाएगा
स्थिरता की अपेक्षा का क्रम कुछ ऐसा है: LTS, stable release, release candidate, beta, alpha, snapshot, अभी-अभी merge हुआ commit, unmerged PR, draft PR. बड़ा bug हो तो release candidate या beta टल सकता है, और critical bug हो तो merge ही रुक जाना चाहिए, लेकिन CI pass करके merge हुए bug की वजह से snapshot टालने की ज़रूरत नहीं है
snapshot ज़्यादा इस तरह है कि users को खुद main build किए बिना मौजूदा स्थिति चलाने और feedback देने के लिए इसका नियमित cut जारी किया जाए
snapshot ने कभी bug-free होने का वादा नहीं किया; बल्कि मानकर चला जाता है कि ऐसा नहीं होगा
मैं एक tech-savvy पिता हूँ लेकिन Minecraft के बारे में लगभग कुछ नहीं जानता; अगर 2026 में परिवार के लिए server बनाना हो तो कैसे करूँ? बच्चे अभी iPad पर खेलते हैं, और कभी-कभी पुराने MacBook और Windows PC पर भी
आप standard Java server चला सकते हैं और Geyser से Bedrock protocol को real time में translate कर सकते हैं। ज़्यादा सीमित Bedrock clients के लिए workaround की ज़रूरत पड़ सकती है, लेकिन ज़्यादा विकल्प वाले Java server को केंद्र में रखकर manage करना संभव है
बस नया JVM इस्तेमाल करें, जितनी memory स्वीकार्य हो उतनी max memory बढ़ाएँ, और ZGC इस्तेमाल करें — इतना काफ़ी है। कई guides बिना वजह ढेर सारे flags बदलने को कहती हैं, या Eden size और target pause time जैसी आपस में टकराने वाली settings एक साथ डाल देती हैं
ZGC की latency बहुत कम होती है, और heap जितना बड़ा हो उतनी performance degradation कम होती है, लेकिन compressed object headers बनाए रखने के लिए इसे 32GB से कम रखना बेहतर है। नया JVM memory usage और overall performance भी सुधारता है
अगर और performance चाहिए तो fabric और lithium install कर लें। Paper·Spigot·Purpur जैसे mods automation setups को बिगाड़ सकते हैं, इसलिए उनसे बचना बेहतर है
मैंने कई सालों तक itzg/docker-minecraft-server को स्थिर रूप से इस्तेमाल किया है, और यह अच्छा लगा कि dependencies अलग-अलग install नहीं करनी पड़ीं; image ही सब संभाल लेती है। Bedrock server image भी है, लेकिन मैं उसे सही से चलवा नहीं पाया
सबसे आसान संचालन के लिए सब लोग Windows·Mac·Linux पर Java edition इस्तेमाल करें, या फिर hosted server Realms के लिए भुगतान करें
परिवार server के उद्देश्य के हिसाब से यह सही भी हो सकता है और नहीं भी, लेकिन बच्चों के लिए जल्दी और आसानी से साथ खेलने का यह सबसे सरल तरीका है। मैंने ऐसे बच्चे भी देखे हैं जो बहुत समय तक सिर्फ Bedrock पर अटके रहे, फिर Java पर आए और अफ़सोस किया कि पहले क्यों नहीं बदला
Icculus ने गेम को SDL2 से SDL3 में पोर्ट करने पर एक शानदार वीडियो डाला है, और Doom पोर्ट वाला वीडियो यहाँ है: https://www.youtube.com/watch?v=ixdeGhsoxy8
यह देखकर हैरानी होती है कि Minecraft धीरे-धीरे सिर्फ एक गेम से बढ़कर अपने आप में एक अलग गेम इंजन जैसा बनता जा रहा है
सोच रहा हूँ कि GLFW छोड़ने की वजह कहीं documented है या नहीं। मेरा एक प्रोजेक्ट GLFW इस्तेमाल करता है, इसलिए हमेशा यह सोचता रहता हूँ कि क्या SDL बेहतर विकल्प है
SDL3 में Wayland सपोर्ट मूल रूप से काफ़ी मजबूत है। Minecraft में GLFW सिर्फ window creation, taskbar icon, fullscreen और input के लिए इस्तेमाल हो रहा था, बाकी सब raw OpenGL से संभाला जा रहा था, इसलिए बदलाव भी आसान था। अब Vulkan तक सपोर्ट है, इसलिए Linux desktop और Steam Deck पर पूरी तरह modern stack इस्तेमाल किया जा सकता है
SDL3 Android 4.2 पर भी चलता है, और मैंने Java के बिना सिर्फ SDL3 और ImGui से app भी बनाया है
हर प्रोजेक्ट में इससे बड़ा फ़र्क पड़े ऐसा ज़रूरी नहीं, लेकिन SDL ज़्यादा features देता है और portability भी बेहतर है
rhythm game osu! भी हाल में SDL2 से SDL3 पर गया है और performance व latency में बड़ा सुधार हुआ है। SDL3 को अपनाना थोड़ा धीमा लगता है, और यह भी हैरानी की बात है कि Minecraft अब तक GLFW इस्तेमाल कर रहा था
खासकर SDL3 पर जाने के बाद osu! चलाते समय Discord client खुला होने पर जो latency आती थी, वह गायब हो गई; मुझे याद है कि यह बात YouTube developer वीडियो में देखी थी
Ubuntu 24.04 में शुरू से SDL3 शामिल नहीं था, और SDL3 अपेक्षा से ज़्यादा नया है, इसलिए शायद यही कारणों में से एक है कि इसका adoption उम्मीद से धीमा रहा
SDL2 में, खासकर Vulkan·Metal सहित GPU API abstraction के मामले में, पुरानापन साफ़ दिखने लगा था, इसलिए SDL3 पर जाना उचित लगता है। यह भी जानना चाहूँगा कि Java Edition के Linux संस्करण में लंबे समय से चले आ रहे input latency और Alt+Tab issues क्या window·input layer बदलने से ठीक होंगे
अगर mods को सक्रिय रूप से सपोर्ट करना हो, तो Java या C# जैसी decompile और runtime modification के लिए आसान languages, या JVM और .NET CLR का इस्तेमाल करना बेहतर लगता है
अगर आप अंदरूनी बदलाव कर रहे हैं और modders को भी ध्यान में रख रहे हैं, तो लगभग बिना अतिरिक्त लागत के एक शानदार modding API मिल सकता है