- Minecraft 26.3 Snapshot 4 ersetzt das Backend für Fensterverwaltung, Eingabe und Plattformintegration von GLFW durch SDL3 und führt SDL-Scancodes und Keycodes für Tastatureingaben ein
- Tastenzuweisungen verwenden statt layoutabhängiger Codes physische Tastenpositionen; unter Linux wird nach Möglichkeit Wayland bevorzugt, unter macOS werden native Eingabe-Kandidatenfenster unterstützt
- Für benutzerdefinierte Ofen- und Braustand-Brennstoffe wurden Datenkomponenten ergänzt, mit denen Brenndauer, Nutzungsanzahl sowie Koch- und Braugeschwindigkeit per Number Provider festgelegt werden können
- In Datenpaket 111.0 und Ressourcenpaket 92.0 ändern sich Klick-Events von Schildern, Loot-Table-Referenzen, Advancement-Trigger, Umgebungseigenschaften für Mob-Spawns, Einstellungen zur Terrain-Generierung und Shader umfassend
- Unter Windows mit mehreren Monitoren und unter Wayland sind Abstürze im exklusiven Vollbildmodus bekannt; Testversionen können Welten beschädigen und sollten daher mit Backup oder in einem separaten Ordner ausgeführt werden
SDL3-basiertes Fenster- und Eingabesystem
- Die Bibliothek für Fensterverwaltung, Eingabe und Plattformintegration wird von GLFW auf SDL3 umgestellt
- Tastatureingaben verwenden SDL-Scancodes für physische Tastenpositionen
- Für layoutabhängige Shortcuts zur Textbearbeitung werden SDL-Keycodes eingesetzt
- Tastenzuweisungen funktionieren auf Basis physischer Tasten, nicht layoutabhängiger Tastencodes
- Die Raw-Input-Mauseinstellung wurde entfernt; während des Gameplays wird immer der relative Mausmodus verwendet
- Rahmenloses Vollbild ist nun der Standard-Vollbildmodus; zwischen rahmenlosem und exklusivem Modus kann ohne Neustart gewechselt werden
- Unter macOS wird exklusives Vollbild nicht mehr unterstützt
- Die minimale Fenstergröße beträgt 320×240 Pixel
- Unter Linux wird Wayland nativ bevorzugt, wenn es verfügbar ist
- Unter macOS erscheint beim Gedrückthalten einer Taste während der Texteingabe ein natives Akzent- und Kandidaten-Popup
Bekannte Vollbildprobleme
- Exklusives Vollbild unter Windows kann in bestimmten Situationen, insbesondere in Multi-Monitor-Umgebungen, zum Absturz des Spiels führen
- Unter Wayland stürzt das Spiel beim Wechsel in den exklusiven Vollbildmodus ab
Änderungen an Gameplay und Oberfläche
- Spieler im Zuschauermodus können mit Portalen interagieren und sich teleportieren
- Gürteltiere versuchen nicht, sich einzurollen, wenn sie in Flüssigkeit eingetaucht sind
- Auf das Debug-Overlay kann eine eigene GUI-Skalierung angewendet werden
- Einstellbar in den Debug Options unter
F3 + F6 - Der Standardwert
Autohält eine höhere Auflösung als die normale GUI;Unchangedentspricht der normalen GUI-Skalierung - Ergänzt wurden außerdem
player_speed, das die Blockbewegungsgeschwindigkeit des Spielers pro Tick zeigt, sowie eine Anzeige der Bildwiederholrate
- Einstellbar in den Debug Options unter
- Die Reihenfolge der Erze im Kreativinventar wurde neu angeordnet: Materialien ohne Tier, unverarbeitete Tier-Materialien, verarbeitete Tier-Materialien
- Baublöcke folgen der Reihenfolge Erze ohne Tier, verarbeitete Tier-Erze, Copper-Familie; die umfangreichen Copper-Blöcke stehen weiter hinten
- Der Tab Natural Blocks ist in der Reihenfolge Overworld → Nether → End organisiert
Benutzerdefinierte Brennstoffe und Item-Komponenten
minecraft:cooking_fueldefiniert Brennstoffe für Furnace, Smoker und Blast Furnaceburn_timegibt die Anzahl der Brenn-Ticks an,speed_multiplierdie Koch- bzw. Schmelzgeschwindigkeit, jeweils alsminecraft:number_provider
minecraft:brewing_fueldefiniert Nutzungsanzahl und Braugeschwindigkeit von Brewing-Stand-Brennstoffen- Das bisherige Item-Tag
#brewing_fuelwurde entfernt und kann nicht mehr zur Registrierung neuer Braubrennstoffe verwendet werden
- Das bisherige Item-Tag
- Smoker- und Blast-Furnace-Rezepte verwenden dieselbe Kochzeit wie Furnace; die Beschleunigung übernimmt
minecraft:cooking/speed_defaultder Brennstoffkomponente - Die Felder für Koch- und Brennstoffzeit von Furnace, Smoker und Blast Furnace wurden von short auf integer geändert;
speed_multiplierwurde ergänzt - Auch
BrewTimeundFueldes Brewing Stand wurden auf integer geändert;total_brew_time,total_fuelundspeed_multiplierwurden ergänzt - Folgende Datenkomponenten wurden hinzugefügt
minecraft:sign_text_front,minecraft:sign_text_back: speichern Vorder- und Rückseitentext von Schildern und zeigen ihn im Item-Tooltip anminecraft:waxed: ein feldloser Marker, der anzeigt, dass der Inhalt gewachst wurdeminecraft:cushion/color: wendet eine von 16 Färbefarben auf platzierte Cushions anminecraft:villager_food: definiert Items, die Dorfbewohner essen können, sowie deren Nährwertminecraft:mob_visibility: gibt als Wert von 0.0 bis 10.0 an, wie stark Ausrüstung die Erkennungsreichweite von Mobs beeinflusst; auch gestapelt überschreitet die maximale Sichtweite nicht 10.0
Schilder und Datenpaket-Kompatibilität
- Die Datenpaket-Version steigt auf 111.0
- Befehle und Klick-Events in benutzerdefinierten Schildtexten werden standardmäßig beim Anklicken des Blocks nicht ausgeführt; auch Textkomponenten neuer Schilder werden nicht automatisch interpretiert
- Das neue Feld
allow_op_featureshat standardmäßig den Wertfalse; um das frühere Verhalten wiederherzustellen, muss es explizit auftruegesetzt werden - Auf Schilder aus früheren Versionen sowie auf
minecraft:block_entity_data, das Schilddaten enthält, wirdallow_op_features=trueangewendet
- Das neue Feld
- Der Bearbeitungsbildschirm für Schilder nach dem Platzieren wird nur angezeigt, wenn er auch per normalem Klick geöffnet werden kann, etwa wenn das Schild nicht gewachst ist und der Vorderseitentext bearbeitet werden kann
- Schilder übertragen die Komponenten
minecraft:sign_text_front,minecraft:sign_text_backundminecraft:waxed - Sichere Blöcke, auf denen
/spreadplayersSpieler platzieren darf, werden über das Block-Tag#entities_can_teleport_togesteuert
Registry-Referenzen sowie Änderungen an Loot und Advancements
- Loot-Table-Typen mit eigener Registry unterstützen Registry-Elemente und Tag-Referenzen
- Felder für einzelne Elemente können eine Namespaced ID oder einen Inline-Wert erhalten
- Listenfelder können Inline-Werte, einzelne oder mehrere Namespaced IDs, Listen von Inline-Werten oder
#-Tag-IDs erhalten - Ziele sind advancement, item modifier, loot table, number provider, predicate, recipe und slot source
- Die bisherigen
reference-Typen von predicate, item modifier und slot source sind überflüssig geworden und wurden entfernt - Mehrere Felder von Advancement-Triggern können neben Inline-Predicates auch Namespaced Predicate IDs erhalten
- Das bisherige implizite
minecraft:all_of-Verhalten von Bedingungslisten wurde entfernt;typemuss zwingend angegeben werden - Mehrere Felder wie
block,recipe_idundloot_tablewurden jeweils in die Pluralform geändert und unterstützen einzelne IDs, Listen oder Tags
- Das bisherige implizite
- In Loot Pool Entry wurde
conditionsinconditionumbenannt,functionsinmodifier - In Loot Function wurde
conditionsinconditionumbenannt; das bisher den Funktionstyp bezeichnendefunctionheißt nuntype- Inline-Bedingungslisten werden nicht mehr akzeptiert; für dasselbe Verhalten muss
minecraft:all_ofexplizit angegeben werden
- Inline-Bedingungslisten werden nicht mehr akzeptiert; für dasselbe Verhalten muss
- Das Typfeld
conditionvon Predicate wurde intypeumbenannt;minecraft:referenceundminecraft:block_state_propertywurden entfernt- Das neue
minecraft:match_blockprüft Block-ID bzw. Tag, Zustand, NBT, Komponenten und Komponenten-Predicates gemeinsam
- Das neue
- Inline-Number-Provider müssen
typeimmer explizit angeben und verwenden nicht mehrminecraft:uniformals Standard - Mehrere Vanilla-Number-Provider wurden ergänzt, die Brenndauer je Kochbrennstoff, Standard-Koch- und Braugeschwindigkeit sowie Brauanzahl bereitstellen
Mob-Spawns und Weltgenerierung
- Die neue Umgebungseigenschaft
minecraft:gameplay/natural_mob_spawnsdefiniert gewichtungsbasierte Mob-Spawns nach Kategorie sowie Spawn-Kosten je Entität- Während der Platzierung bei der Weltgenerierung wenden nur Dimension und Biome diese Eigenschaft an
- Der
overlay-Modifier priorisiert die Kategorieeinstellungen höherer Ebenen sowie Spawn-Kosten derselben Entität
minecraft:gameplay/creature_world_gen_spawn_probabilitygibt die Wiederholwahrscheinlichkeit für Mob-Spawns der Kategorie creature während der Weltgenerierung als Wert größer oder gleich 0 und kleiner als 1 an; Standardwert ist 0.1spawners,spawn_costsundcreature_spawn_probabilityvon Biome wurden entfernt und in neue Umgebungseigenschaften verschoben- Die Umgebungseigenschaft für Umgebungspartikel interpoliert Wahrscheinlichkeiten zwischen Timeline-Keyframes und unterstützt den
append-Modifier, der Einträge an Partikellisten untergeordneter Ebenen anhängt - In Noise Settings wurden Aquifer- und Ore-Vein-Einstellungen als optionales Objekt
aquifersbzw. als Listeore_veinsneu strukturiert- Fehlen die Einstellungen, wird der jeweilige Aquifer oder Ore Vein nicht erzeugt
- Zugehörige Density-Function-Felder wurden aus
noise_routerin die neue Struktur verschoben
- Density Function erhält
sub,div,negate,lerp,floor,round,ceil,truncateundbeardifier- Mehrere bestehende Argumentnamen wurden in
value,left,right,inputundnoisegeändert invertwurde inreciprocalumbenannt- Zu
final_densitywird der beardifier nicht mehr implizit addiert
- Mehrere bestehende Argumentnamen wurden in
Grafik und wichtige Fehlerbehebungen
- Die Ressourcenpaket-Version steigt auf 92.0
- Shader mit Unterstützung für order-independent transparency sowie die Definition
OIT_ALWAYS_WRITE_DEPTHwurden ergänzt core/integrate_depth.fshintegriert den Tiefenpuffer des 3D-HUDs und von immer oben angezeigten Gizmos in den Haupt-Tiefenpuffer- Die wichtigsten behobenen Probleme sind:
- Probleme mit Tastenzuweisungen und Eingaben bei Nicht-QWERTY-Layouts sowie macOS- und CJK-Eingaben
- Absturz beim Rendern von Karten in Improved Transparency sowie Anzeigeprobleme bei Glas, halbtransparenten Objekten, Partikeln und Weltgrenzen
- Abstürze durch Projektile außerhalb der Welthöhe und durch Platzierung von Bienenstöcken auf der niedrigsten Höhe
- Probleme beim Speichern und Laden von Heightmaps in der Weltgenerierung sowie Positions-Desynchronisierung von Mobs nach Tick-Sprint
- Probleme mit Cushion-Platzierung, Farbe, benutzerdefiniertem Namen, Brennstoffzeit und Kollisionserkennung
- Probleme mit Schaden und Flug des Ender Dragon, Portalnutzung durch Zuschauer und Ermittlung sicherer Blöcke durch
/spreadplayers
Installation und Testhinweise
- Der Snapshot ist für Minecraft: Java Edition und wird installiert, indem im Tab
Installationsdes Minecraft Launcher Snapshots aktiviert werden - Testversionen können Welten beschädigen und sollten daher mit Backup oder in einem anderen Ordner als die Standardwelten ausgeführt werden
- Ein plattformübergreifendes Minecraft server jar ist ebenfalls verfügbar
- Bugs können im Minecraft issue tracker, Feedback auf der Feedback-Website eingereicht werden
1 Kommentare
Hacker-News-Kommentare
Die LWJGL-Implementierung dieses Bindings wurde von einem Teammitglied des GTNH-Modpacks geschrieben und hat damit den Kreislauf vanilla→modded→vanilla wieder vervollständigt https://github.com/LWJGL/lwjgl3/pull/1033
Ich habe vor Kurzem das Spiel Tribal Trouble(https://github.com/bondolo/tribaltrouble) von GLFW auf SDL3 umgestellt, und das Refactoring verlief insgesamt recht reibungslos. Es gab ein paar Probleme mit exklusivem Vollbild und Desktop-Vollbild, aber die konnten letztlich gelöst werden
Ich habe auch eine Demo geschrieben, um das knifflige Handling von Bildschirmmodi zu testen und zu dokumentieren. Das Spiel ist wie Minecraft in Java, aber für die Demo habe ich C verwendet, um sie möglichst einfach zu halten
Exklusives Vollbild unter Windows kann Spiele vor allem bei mehreren Monitoren zum Absturz bringen, und unter Wayland gibt es ein bekanntes Problem, bei dem schon das Betreten dieses Modus zum Absturz führt. Beides wirkt normalerweise wie ein Blocker-Bug, der einen Snapshot verzögern würde, daher hoffe ich, dass das vor dem offiziellen Release behoben wird
Das erwartete Stabilitätsniveau sehe ich ungefähr in dieser Reihenfolge: LTS-Version, Release-Version, Release Candidate, Beta, Alpha, Snapshot, gerade eben gemergter Commit, nicht gemergter PR, Entwurfs-PR. Bei einem großen Bug würde man einen Release Candidate oder eine Beta verschieben, bei einem kritischen Bug schon den Merge selbst verhindern, aber wegen eines Bugs, der CI bestanden hat und gemergt wurde, gibt es keinen Grund, einen Snapshot aufzuschieben
Ein Snapshot ist eher ein regelmäßig ausgeschnittener und veröffentlichter Stand des aktuellen Zustands, damit Nutzer ihn ausführen und Feedback geben können, ohne Main selbst bauen zu müssen
Ein Snapshot hat nie versprochen, fehlerfrei zu sein; eher das Gegenteil ist die Grundannahme
Ich frage mich, wie ein technikaffiner Vater, der überhaupt nichts von Minecraft versteht, 2026 einen Familienserver aufsetzen sollte. Die Kinder spielen derzeit auf iPads und gelegentlich auf einem alten MacBook oder Windows-PC
Man kann einen normalen Java-Server betreiben und mit Geyser das Bedrock-Protokoll in Echtzeit umsetzen. Für stark eingeschränkte Bedrock-Clients braucht man eventuell Workarounds, aber man kann die Verwaltung auf einen Java-Server ausrichten, der mehr Möglichkeiten bietet
Es reicht, eine aktuelle JVM zu verwenden, den maximalen Speicher so hoch zu setzen, wie es vertretbar ist, und ZGC zu nutzen. Manche Anleitungen drehen ohne Grundlage an zahlreichen Flags oder kombinieren widersprüchliche Einstellungen wie Eden-Größe und Ziel-Pausenzeiten
ZGC hat sehr geringe Latenzen und verliert bei größerem Heap weniger an Leistung, aber um komprimierte Objekt-Header beizubehalten, bleibt man besser unter 32 GB. Eine moderne JVM verbessert auch Speicherverbrauch und Gesamtleistung
Wenn du mehr Leistung brauchst, installiere fabric und lithium. Mods wie Paper, Spigot oder Purpur können Automatisierungsanlagen kaputtmachen, daher würde ich sie meiden
Ich nutze itzg/docker-minecraft-server seit Jahren zuverlässig, und es war angenehm, dass das Image alles übernimmt, ohne jede Abhängigkeit einzeln installieren zu müssen. Es gibt auch ein Bedrock-Server-Image, aber ich habe es nicht richtig zum Laufen gebracht
Am einfachsten ist der Betrieb, wenn alle auf Windows, Mac oder Linux die Java-Edition nutzen; andernfalls kann man auch den gehosteten Serverdienst Realms bezahlen
Je nach Ziel eines Familienservers passt das vielleicht nicht, aber für schnelles und einfaches gemeinsames Spielen der Kinder ist es wohl der unkomplizierteste Weg. Ich habe auch Kinder erlebt, die lange stur bei Bedrock blieben, dann zu Java wechselten und bereuten, nicht früher umgestiegen zu sein
Icculus hat ein großartiges Video veröffentlicht, in dem er ein Spiel von SDL2 auf SDL3 portiert; das Video zur Doom-Portierung gibt es hier: https://www.youtube.com/watch?v=ixdeGhsoxy8
Es ist erstaunlich, wie Minecraft immer mehr einer eigenständigen Game-Engine ähnelt statt nur einem einfachen Spiel
Ich frage mich, ob dokumentiert ist, warum man GLFW verlassen hat. Ich habe ein Projekt, das GLFW nutzt, daher frage ich mich immer, ob SDL die bessere Wahl ist
SDL3 hat von Haus aus eine solide Wayland-Unterstützung. In Minecraft wurde GLFW nur für Fenstererstellung, Taskleisten-Symbol, Vollbild und Eingabe verwendet, der Rest lief über rohes OpenGL, daher war der Wechsel auch einfach. Jetzt wird sogar Vulkan unterstützt, sodass man auf Linux-Desktops und dem Steam Deck einen vollständig modernen Stack nutzen kann
SDL3 läuft sogar auf Android 4.2, und ich habe schon einmal eine App nur mit SDL3 und ImGui ohne Java gebaut
Für nicht jedes Projekt macht das einen großen Unterschied, aber SDL bietet mehr Funktionen und ist portabler
Auch das Rhythmusspiel osu! ist kürzlich von SDL2 auf SDL3 umgestiegen, wodurch sich Leistung und Latenz deutlich verbessert haben. Die Einführung von SDL3 wirkt etwas langsam, und es überrascht auch, dass Minecraft bisher GLFW verwendet hat
Besonders nach dem Umstieg auf SDL3 verschwanden bei osu! die Verzögerungen, die auftraten, wenn der Discord-Client während des Spielens geöffnet war; ich meine, das in einem YouTube-Entwicklervideo gesehen zu haben
Ubuntu 24.04 enthielt SDL3 anfangs nicht, und weil SDL3 neuer ist als gedacht, scheint das einer der Gründe zu sein, warum die Einführung langsamer verläuft als erwartet
Bei SDL2 zeigte sich besonders bei der Abstraktion von GPU-APIs einschließlich Vulkan und Metal das Alter, daher ist der Umstieg auf SDL3 sinnvoll. Ich frage mich auch, ob sich damit die langjährigen Probleme der Java-Edition unter Linux mit Eingabelatenz und Alt+Tab durch den Wechsel der Fenster-/Eingabeschicht lösen lassen
Wenn man Mods aktiv unterstützen will, scheinen Sprachen wie Java oder C#, die sich leicht dekompilieren und zur Laufzeit modifizieren lassen, oder alternativ JVM und .NET CLR sinnvoller zu sein
Wenn man interne Änderungen vornimmt und dabei auch Modder mitdenkt, bekommt man praktisch ohne Zusatzkosten eine hervorragende Modding-API