Skip to content
Skip to content
Вернуться в блог
Polymer: Альтернативный C++ Клиент для Minecraft

Polymer: Альтернативный C++ Клиент для Minecraft

Alexandru Maftei
Alexandru Maftei
@ice
Updated
3 просмотров
TL;DR:Polymer - это C++ клиент Minecraft с рендерингом через Vulkan, предназначенный для офлайн серверов, с оптимизированной загрузкой чанков и камерой для зрителей. Узнайте, как собрать, установить и использовать этот экспериментальный просмотрщик в своих мирах.
🐙 Открытый проект Minecraft

atxi/Polymer

Разрабатываемый клиент Minecraft на C++ и Vulkan.

⭐ 135 звезд💻 C++📜 MIT
Посмотреть на GitHub ↗

Polymer - это клиент Minecraft на C++ с рендерингом через Vulkan, предназначенный для просмотра миров на офлайн серверах. Он также оснащен камерой для зрителей, оптимизированной загрузкой чанков и поддержкой Minecraft 1.21.4. Если вы хотите изучать огромные миры без застрекания стандартного клиента, или интересуетесь, как альтернативные клиенты обрабатывают рендеринг, этот проект стоит попробовать.

Что Делает Этот Проект

Основная идея: вместо запуска клиента Minecraft на Java, вы запускаете автономное приложение, подключающееся к вашему серверу и рендерящее мир через Vulkan, современный графический API. Проект полностью написан на C++ разработчиком, явно интересующимся оптимизацией графики. Однако он загружает оригинальные активы Minecraft, строит геометрию мира и показывает все с точки зрения зрителя - летая вокруг, наблюдая, как загружаются чанки.

На данный момент ограничен только офлайн серверами. Онлайн режим запланирован, но еще не реализован.

Что делает Polymer уникальным, это то, что это не просто ланчер или мод. Это заново переписанный способ работы рендеринга Minecraft. Последняя версия (v0.0.5) поддерживает Minecraft 1.21.4 и включает серьезные оптимизации: графы связности чанков для пропуска рендеринга скрытых блоков, построение мешей отложено до тех пор, пока чанк не войдет в поле зрения, и 4x многопроборная антиалиасинг. На бумаге эти настройки должны помочь с производительностью рендеринга в тяжелых мирах.


Почему Вам Это Нужно

Честный ответ: большинство игроков не нуждаются в Polymer. Это не замена стандартному клиенту для режимов выживания или творчества. Вы не можете разрушать блоки, размещать что-либо или взаимодействовать с миром традиционным способом. Вы смотрите, а не строите.

Но если вы когда-либо пытались открыть огромный, многолетний SMP мир - скажем, что-то с 10,000+ кастомными зданиями, разбросанными по десяткам чанков - вы знаете, что стандартный клиент может застрять. Загрузка чанков застревает. Рендер дрожит. Это не непроходимо, но и не гладко. Polymer обходит некоторые из этих проблем, используя другой рендерный конвейер. Он также интересен тем, кто любит графику: это доказательство того, что рендеринг Minecraft может быть полностью переимplemented.

Другой аспект: если вы управляете сервером и хотите делать кинематографические скриншоты или создавать тур по миру без проблем с производительностью в режиме выживания, дизайн Polymer для зрителей делает его легковесным вариантом. Вы загружаете мир, летаете вокруг, делаете скриншоты, готово. Никаких изменений файлов, никаких модов, мешающих визуально.


Запуск Polymer

Здесь начинается кривая обучения. Polymer не является модпаком или ланчером. Вам нужно собрать его из исходников.

На Windows процесс выглядит так:

bash
git clone https://github.com/atxi/Polymer.git
cd Polymer
git submodule update --init
cmake -B build -S . --preset msvc

Затем откройте сгенерированный `build/polymer.sln` в Visual Studio и соберите в режиме x64 Release. Вам нужны MSVC 2022 или Clang, плюс CMake 3.28 или новее. Финальный исполняемый файл находится в `build/Release`.

Сборка шейдеров требует Vulkan SDK (конкретно `glslc`). Загрузите его с LunarG, установите переменную окружения `VULKAN_SDK`, затем запустите `compile_shaders.bat`. Это раздражающая часть, если вы не привыкли к разработке графики - это дополнительный шаг сборки, который не существует в типичных настройках игр.

Linux немного проще, но требует системных зависимостей сначала:

bash
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 && make

Ваш исполняемый файл находится в `build/bin`. Запустите `compile_shaders.sh` для сборки шейдеров.

Перед запуском получите файл `blocks-1.21.4.json` - доступен на странице релизов GitHub или сгенерирован запуском Minecraft с генератором данных. Разместите его там, откуда будете запускать клиент. При первом запуске Polymer скачивает игровые активы (текстуры, звуки, модели) с официального сервера ресурсов Minecraft и кэширует их локально в `~/.polymer/` (Linux) или `%appdata%/Polymer/` (Windows).

По умолчанию, Polymer пытается подключиться к localhost с именем пользователя 'polymer'. Ваш сервер должен быть в офлайн режиме. Переопределите это с помощью флагов командной строки:

bash
polymer.exe -u YourUsername -s 192.168.1.100:25565

Один критический деталь: вам нужно быть в режиме зрителя на сервере, чтобы чанки загружались, пока вы летаете вокруг. Честно говоря, если сервер помещает вас в режим выживания, вы увидите только те чанки, которые уже были загружены, что не очень полезно. Войдите в консоль сервера или используйте `/gamemode spectator`, чтобы исправить это.


Ключевые Функции, Строщиеся

Граф связности чанков - это выдающаяся оптимизация здесь. Традиционные рендереры рисуют каждую грань блока, даже те, которые вы никогда не увидите (стороны блоков, погруженные внутрь чанков). Polymer рассчитывает, какие чанки действительно видны, и пропускает геометрию для внутренних граней. Это уменьшает то, что GPU должно обрабатывать.

Отложенное построение мешей также умно. Вместо построения мешей чанков сразу после загрузки, Polymer строит их только тогда, когда они входят в ваше поле зрения. Для серверов с тысячами чанков это экономит память и циклы CPU на чанках, которые вы, возможно, никогда не увидите.

4x многопроборная антиалиасинг лучше гладит заостренные края, чем стандартные настройки ванильного клиента, хотя это идет с производительными издержками в зависимости от вашей GPU. Интерполированные текстуры и тайминг анимации незаметны, но заметны, если вы ищете такие вещи, как анимация воды и смешивание текстур, чтобы чувствовать себя острее.

Производительность будет сильно варьироваться в зависимости от вашего оборудования. Разработчики тестили в основном на Windows; Linux работает, но не сильно оптимизирован. Если у вас средний GPU последних лет, вы должны быть в порядке. Старые интегрированные графики будут бороться с высокими расстояниями рисования.


Питфолы и Ограничения

Polymer - это программное обеспечение на ранней стадии. Ожидайте баги и отсутствующие функции.

Нет физики, нет обнаружения столкновений, нет взаимодействия игрока. Вы не можете разрушать блоки, размещать блоки, открывать сундук или делать что-либо, кроме как смотреть вокруг. Если вы хотите альтернативный клиент для реальной игры, это не то, что вам нужно. Предназначенное использование - это исследование и визуализация.

Онлайн серверы не работают пока. Это жесткое ограничение - код не обрабатывает аутентификацию. Если вы используете Polymer на чужом онлайн сервере, вас отключат. Работает только офлайн режим с `online-mode=false` в server.properties.

Windows - это основная платформа разработки. Linux сборки работают, но тестируются меньше. Поддержка Mac не документирована (система сборки направлена на GLFW, который поддерживает macOS, но никто не подтвердил, что это работает).

Сам процесс сборки капризен. Если вы не знакомы с CMake, файлами проекта Visual Studio или сборкой шейдеров, ожидайте, что потратите время на отладку переменных окружения и пропущенных зависимостей. Это не однократная установка.


О Третьих Клиентах и Анти-Читах

⚠️
Важно многие мультиплеерные серверы используют системы анти-чита, обнаруживающие или блокирующие модифицированные клиенты и кастомные сборки Minecraft. Даже если Polymer предназначен только для зрителей и не может совершать что-либо вредное, некоторые серверы рассматривают любой не-ванильный клиент как нарушение. Прежде чем подключать Polymer к чужому серверу, проверьте правила сначала. Блокировка на сервере, который вы любите, из-за проекта-любопытства не стоит того.

Удаление Polymer чистое. Исполняемый файл автономный, активы кэшируются локально. Удалите исполняемый файл и папку `~/.polymer/` или `%appdata%/Polymer/`, и вы готовы. Ничто не внедряется в вашу установку ванильного Minecraft.


Аналогичные Проекты, Которые Стоит Знать

Если Polymer вас интересует, есть несколько альтернатив в этом пространстве. Minetest - это движок игр в стиле Minecraft, но не сам Minecraft - это больше sandbox для построения игр. Chunky - это инструмент рендеринга, создающий высококачественные статические изображения миров Minecraft с помощью трассировки лучей, но это не реальное время и не клиент. VoxelMap - это мод, добавляющий миникарту и функцию путешествий в ванильный клиент, но это наложение, а не заново переписанный клиент.

Polymer единственный в своем роде как клиент с нуля на C++ с современными графическими API. Это одновременно его привлечение и ограничение - меньше функций, чем у модов, но потенциально лучше производительность и более экспериментальные методы рендеринга.

Если вы хотите настроить, как выглядит ваш персонаж при исследовании, посетите Создатель Скинов Minecraft - вы можете спроектировать уникальный вид перед подключением к серверу. А если вы планируете запускать любую серверную коммуникацию или метки для построек, Генератор Текста Minecraft делает создание отформатированного текста простым.


Мое Мнение

Polymer fascинирован с технической точки зрения. Смотреть, как мир Minecraft рендерится через совершенно другой конвейер, интересно, особенно если вам интересно, как работают игровые движки. Оптимизации реальны, код чист, и этоsolid доказательство того, чем мог бы быть Minecraft, если бы он отказался от Java в пользу Vulkan.

Для实际ного использования? Я бы сказал, что это стоит собрать и попробовать хотя бы раз, особенно если у вас есть большой мир на локальном сервере и вы любопытны относительно производительности рендеринга. Но не ожидайте, что он заменит ваш основной клиент. Это просмотрщик, а не игрок, и он все еще груб вокруг углов на v0.0.5. Разработчик явно работает над этим, и поддержка онлайн режима идет, но мы еще не там.

Если у вас есть несколько часов, чтобы потратить на сборку и компиляцию шейдеров, и вы интересуетесь тем, что могут современные графические API для Minecraft, вперед. Просто установите ожидания: вы тестируете экспериментальное программное обеспечение, а не используете законченный альтернативный клиент.

atxi/Polymer - MIT, ★135
About the author
Alexandru Maftei
Alexandru MafteiLead Writer

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Share with your friends!

Comments

No comments yet. Be the first to share your thoughts!

Похожие статьи

Radiance: Взлом ограничений Minecraft'а через Vulkan

Radiance: Взлом ограничений Minecraft'а через Vulkan

Radiance заменяет рендерер OpenGL в Minecraft на Vulkan, обеспечивая аппаратную трассировку лучей в Windows и Linux. В этой статье рассмотрим установку, функции, требования к производительности и стоит ли пробовать.

08.06.2026
VulkanMod: Модернизация рендеринга Minecraft Java с помощью

VulkanMod: Модернизация рендеринга Minecraft Java с помощью

VulkanMod заменяет рендерер OpenGL в Minecraft на Vulkan, обеспечивая значительное улучшение производительности. Это полная переработка рендеринга, снижающая нагрузку на CPU, идеально подходящая для игроков и серверов, нуждающихся в более быстрых кадровых частотах.

20.04.2026
Minecraft-XDP-eBПФ - защита Java серверов от DDoS атак

Minecraft-XDP-eBПФ - защита Java серверов от DDoS атак

Minecraft-XDP-eBПФ - это брандмауэр уровня ядра, защищающий Java серверы от DDoS атак 7-го уровня. Он блокирует вредоносные пакеты на уровне сетевого драйвера до того, как они достигнут вашего серверного ПО. Бесплатно, открытый исходный код, использует eBПФ для защиты нулевого копирования с минимальными накладными расходами.

02.05.2026

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy