
Entdecken Sie Polymer: Minecrafts alternativer C++-Client
atxi/Polymer
Entwickler-C++-Minecraft-Client mit Vulkan.
Auf GitHub anzeigen ↗Polymer ist ein C++-Minecraft-Client, der Vulkan-Rendering nutzt, entwickelt zum Anzeigen von Welten auf Offline-Servern. Er bietet auch eine Spectator-Kamera, optimiertes Chunk-Loading und Unterstützung für Minecraft 1.21.4. Wenn Sie massive Welten ohne die Stottern des Vanilla-Clients erkunden möchten oder sich für die Rendering-Handhabung alternativer Clients interessieren, ist dies einen Versuch wert.
Was dieses Projekt tut
Das Kernkonzept: Anstatt den Minecraft-Java-Client zu starten, starten Sie eine eigenständige Anwendung, die mit Ihrem Server verbindet und die Welt mithilfe von Vulkan, einer modernen Grafik-API, rendern lässt. Das Projekt wurde vollständig in C++ von einem Entwickler geschrieben, der offensichtlich an Grafikoptyimierungen interessiert ist. Es lädt jedoch die ursprünglichen Minecraft-Assets herunter, erstellt die Weltgeometrie und zeigt Ihnen alles aus einer Spectator-Perspektive - fliegen, Chunks beim Laden ansehen.
Zurzeit ist es nur für Offline-Server geeignet. Online-Modus ist geplant, aber noch nicht implementiert.
Was Polymer einzigartig macht, ist, dass es kein Launcher oder Mod ist. Es ist eine von Grund auf neu geschriebene Version, wie Minecraft-Rendering funktionieren kann. Die jüngste Version (v0.0.5) unterstützt Minecraft 1.21.4 und enthält einige beeindruckende Optimierungen: Chunk-Verbindungsgraphen, um versteckte Blöcke zu überspringen, verzögertes Mesh-Bauen, bis ein Chunk in den Blickwinkel kommt, und 4x Multisample-Antialiasing. Auf dem Papier sind dies die Arten von Anpassungen, die die Renderleistung in schweren Welten verbessern sollten.
Warum Sie es nutzen würden
Die ehrliche Antwort? Die meisten Spieler benötigen Polymer nicht. Es ist kein Ersatz für den Vanilla-Client zum Spielen in Survival- oder Creative-Modus. Sie können keine Blöcke abbrechen, nichts platzieren oder mit der Welt interagieren. Sie schauen, bauen nicht.
Aber wenn Sie jemals versucht haben, eine massive, mehrjährige SMP-Welt zu öffnen - sagen wir, etwas mit 10.000+ benutzerdefinierten Gebäuden, die über Dutzende von Chunks verteilt sind - wissen Sie, dass der Vanilla-Client Schwierigkeiten haben kann. Chunk-Loading-Hitches, Render-Stutters. Es ist nicht unspielbar, aber auch nicht glatt. Polymer umgeht einige dieser Probleme, indem es eine andere Rendering-Pipeline nutzt. Es spricht auch jeden an, der sich für Grafikprogrammierung interessiert: Hier ist der Beweis, dass Minecrafts Rendering vollständig neu implementiert werden kann.
Eine andere Perspektive: Wenn Sie einen Server betreiben und kamerareife Screenshots erstellen oder eine Welttour ohne Leistungsbedenken eines Survival-Modus-Spielers durchführen möchten, ist Polymers Spectator-Design eine leichte Option. Laden Sie die Welt, fliegen Sie herum, machen Sie Ihre Aufnahmen, fertig. Keine Dateianpassungen, keine Mods, die die Grafik beeinträchtigen.
Polymer in Betrieb nehmen
Hier beginnt die Lernkurve. Polymer ist kein Modpack oder Launcher. Sie müssen es aus der Quelle bauen.
Unter Windows sieht der Prozess so aus:
git clone https://github.com/atxi/Polymer.git
cd Polymer
git submodule update --init
cmake -B build -S . --preset msvcÖffnen Sie dann die generierte Datei `build/polymer.sln` in Visual Studio und kompilieren Sie in x64 Release-Modus. Sie benötigen MSVC 2022 oder Clang sowie CMake 3.28 oder neuer. Die endgültige Ausführungsdatei befindet sich in `build/Release`.
Das Kompilieren von Shadern erfordert das Vulkan-SDK (speziell `glslc`). Laden Sie es von LunarG herunter, setzen Sie die Umgebungsvariable `VULKAN_SDK` und führen Sie `compile_shaders.bat` aus. Dies ist der nervige Teil, wenn Sie nicht an die Grafikentwicklung gewöhnt sind - es ist ein zusätzlicher Buildschritt, der in typischen Game-Setups nicht existiert.
Linux ist leichter, erfordert aber vorher Systemabhängigkeiten:
sudo apt-get install libglfw3 libglfw3-dev glslang-tools
git clone https://github.com/atxi/Polymer.git
cd Polymer
git submodule update --init
cmake -B build -S .
cd build && makeIhre Ausführungsdatei befindet sich in `build/bin`. Führen Sie `compile_shaders.sh` für die Shader-Kompilierung aus.
Bevor Sie starten, holen Sie sich die Datei `blocks-1.21.4.json` - verfügbar auf der GitHub-Release-Seite oder generiert, indem Sie Minecraft mit dem Datengenerator ausführen. Legen Sie sie dort ab, wo Sie den Client starten werden. Bei der ersten Ausführung lädt Polymer die Spielassets (Texturen, Sounds, Modelle) von Minecrafts offiziellem Ressourcenserver herunter und cacht sie lokal in `~/.polymer/` (Linux) oder `%appdata%/Polymer/` (Windows).
Standardmäßig versucht Polymer, sich an localhost als Benutzer 'polymer' zu verbinden. Ihr Server muss im Offline-Modus sein. Überschreiben Sie dies mit Befehlszeilenflags:
polymer.exe -u IhrBenutzername -s 192.168.1.100:25565Eine kritische Detail: Sie müssen im Spectator-Modus auf dem Server sein, damit Chunks beim Fliegen heruntergeladen werden. Ehrlich gesagt, wenn der Server Sie im Survival-Modus platziert, sehen Sie nur die bereits geladenen Chunks, was nicht sehr nützlich ist. Wechseln Sie in die Serverkonsole oder verwenden Sie `/gamemode spectator`, um dies zu korrigieren.
Wichtige Funktionen, die man erwähnen sollte
Der Chunk-Verbindungsgraph ist die hervorragende Optimierung hier. Traditionelle Renderer zeichnen jede Blockfläche, auch die, die Sie nie sehen werden (die Seiten von Blöcken, die innerhalb von Chunks begraben sind). Polymer berechnet, welche Chunks tatsächlich sichtbar sind, und überspringt die Geometrie für interne Flächen. Dies reduziert, was die GPU bewegen muss.
Das verzögerte Mesh-Bauen ist auch clever. Anstatt Chunks zu meshen, sobald sie geladen werden, baut Polymer sie nur dann, wenn sie in Ihren Sichtbereich (View Frustum) treten. Für Server mit Tausenden von Chunks spart dies Speicher und CPU-Zyklen für Chunks, die Sie tatsächlich nie sehen werden.
Das 4x Multisample-Antialiasing glättet schärfere Kanten besser als die Standard-Einstellungen von Vanilla, obwohl dies je nach GPU einen Leistungsverlust mit sich bringt. Die interpolierten Texturen und die Animationszeit sind subtil, aber bemerkbar, wenn Sie nach Dingen wie Wasseranimation und Texturen-Blending suchen, die knackig aussehen.
Die Leistung variiert stark abhängig von Ihrer Hardware. Die Entwickler testeten hauptsächlich unter Windows; Linux funktioniert, ist aber nicht stark optimiert. Wenn Sie eine mittlere GPU der letzten Jahre haben, sollten Sie okay sein. Ältere integrierte Grafikprozessoren werden bei hohen Draw-Distances kämpfen.
Fehler und Einschränkungen
Polymer ist Software in den frühen Stadien. Erwarten Sie Fehler und fehlende Funktionen.
Keine Physik, keine Kollisionsdetektion, keine Spielerinteraktion. Sie können keine Blöcke abbrechen, nichts platzieren, keine Kisten öffnen oder irgendetwas anderes tun als herumzuschauen. Wenn Sie einen alternativen Client für tatsächliches Gameplay suchen, ist dies nicht das Richtige. Der beabsichtigte Verwendungszweck ist die Erkundung und Visualisierung.
Online-Server funktionieren noch nicht. Dies ist eine harte Einschränkung - der Code behandelt keine Authentifizierung. Wenn Sie Polymer auf jemand anderes Online-Server verwenden, werden Sie abgemeldet. Nur Offline-Modus mit `online-mode=false` in server.properties funktioniert.
Windows ist die primäre Entwicklungsbasis. Linux-Builds funktionieren, erhalten aber weniger Tests. Mac-Unterstützung ist nicht dokumentiert (das Buildsystem zielt auf GLFW ab, das macOS unterstützt, aber niemand hat bestätigt, dass es funktioniert).
Der Buildprozess selbst ist empfindlich. Wenn Sie mit CMake, Visual Studio-Projektdateien oder Shader-Kompilierung nicht vertraut sind, erwarten Sie, Zeit mit dem Debuggen von Umgebungsvariablen und fehlenden Abhängigkeiten verbringen zu müssen. Dies ist keine Ein-Klick-Installation.
Über Drittanbieter-Clients und Anti-Cheat
Das Deinstallieren von Polymer ist sauber. Die Ausführungsdatei ist eigenständig, und die Assets werden lokal gecacht. Löschen Sie die Ausführungsdatei und den Ordner `~/.polymer/` oder `%appdata%/Polymer/`, und Sie sind fertig. Nichts wird in Ihre Vanilla-Minecraft-Installation injiziert.
Andere Projekte, die man kennen sollte
Wenn Polymer Ihr Interesse weckt, gibt es einige Alternativen in diesem Bereich. Minetest ist ein Voxel-Game-Engine, inspiriert von Minecraft, aber nicht Minecraft selbst - es ist mehr eine Sandbox für das Erstellen von Spielen. Chunky ist ein Rendering-Tool, das hochwertige statische Bilder von Minecraft-Welten mit Ray-Tracing erstellt, aber es ist keine Echtzeit-Anwendung und kein Client. VoxelMap ist ein Mod, der eine Minikarte und Waypoint-Funktionalität für den Vanilla-Client hinzufügt, aber es ist eine Überlagerung, keine von Grund auf neu geschriebene Version.
Polymer ist einzigartig als von Grund auf neu geschriebener C++-Client mit modernen Grafik-APIs. Das ist zugleich sein Charme und seine Einschränkung - weniger Funktionen als Mods, aber potenziell bessere Leistung und experimentellere Rendering-Techniken.
Wenn Sie Ihr Aussehen anpassen möchten, während Sie erkunden, überprüfen Sie den Minecraft Skin Creator - Sie können einen einzigartigen Look entwerfen, bevor Sie sich an Ihren Server verbinden. Und wenn Sie Serverkommunikation oder Build-Labels planen, macht der Minecraft Text Generator das Erstellen formatierter Texte einfach.
Meine Meinung
Polymer ist aus technischer Sicht faszinierend. Die Anzeige einer Minecraft-Welt durch eine völlig andere Pipeline anzusehen, ist cool, besonders wenn man sich für die Funktionsweise von Game-Engines interessiert. Die Optimierungen sind real, der Code ist sauber, und es ist ein starker Beweis dafür, was Minecraft sein könnte, wenn es Java zugunsten von Vulkan verlassen würde.
Für tatsächliche Nutzung? Ich würde sagen, es ist wert, es einmal zu bauen und auszuprobieren, besonders wenn Sie eine große Welt auf einem lokalen Server haben und sich für die Renderingleistung interessieren. Aber erwarten Sie nicht, dass es Ihren Hauptclient ersetzt. Es ist ein Viewer, nicht ein Spieler, und es ist noch immer unausgereift bei v0.0.5. Der Entwickler arbeitet offensichtlich daran, und der Online-Modus kommt, aber wir sind noch nicht da.
Wenn Sie ein paar Stunden Zeit haben, um Builds und Shader-Kompilierung zu investieren, und sich für das interessieren, was moderne Grafik-APIs für Minecraft tun können, gehen Sie vor. Setzen Sie aber Erwartungen: Sie testen experimentielle Software, nicht eine fertige Alternative.
atxi/Polymer - MIT, ★135Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.


