Skip to content
Вернуться в блог
WebCraft - Minecraft клон на чистом JavaScript для браузера

WebCraft - Minecraft клон на чистом JavaScript для браузера

Alexandru Maftei
Alexandru Maftei
@ice
Updated
2 просмотров
TL;DR:WebCraft - это клон Minecraft Classic на JavaScript, который работает в браузере с использованием WebGL и WebSockets. Без фреймворков, минимальные зависимости. Идеален для обучения разработке воксельных игр, хотя больше не поддерживается активно.

"Клон Minecraft на Javascript."

Overv\/WebCraft · github.com
⭐ 418 звёзд💻 JavaScript📄 Zlib

Вы когда-нибудь задумывались, что нужно, чтобы создать Minecraft полностью в браузере? WebCraft - это именно это: клон Minecraft на JavaScript, работающий через WebGL и WebSockets и требующий лишь современного браузера. Это не полный опыт режима выживания, который вы знаете из официальной игры, но если вас интересует, как работают воксельные миры, этот проект действительно очень поучительный.

Что такое WebCraft

WebCraft - это переделка Minecraft Classic, созданная с нуля на чистом JavaScript. Без Three.js, без Babylon.js, без тяжёлых 3D-фреймворков. Честно говоря, разработчик построил конвейер рендеринга прямо на WebGL - звучит мощно, пока вы не осознаёте, что это куда эффективнее для отрисовки тысяч статических кубов, чем использовать полноценный игровой движок.

Проект включает режимы одиночной игры и мультиплеера. Для мультиплеера использует Node.js на бэкенде с WebSockets для синхронизации действий игроков между клиентами. Самое интересное - насколько минимальны зависимости. Используется glmatrix для математических операций и socket.io для сетевого взаимодействия, и всё. Остальное - пользовательский код.

Важное уточнение: этот проект больше не развивается активно. Репозиторий существует и код на месте, но не рассчитывайте на регулярные обновления или поддержку. Для образовательных целей и экспериментов? Это кладезь. Для боевого сервера мультиплеера? Смотрите в другом месте.


Почему это может вас заинтересовать

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

Хотите просто играть в Minecraft в браузере без установки? Да, это возможно. Вы можете создавать миры, размещать и удалять блоки, и если настроите сервер, играть с друзьями. Но буду честен: это клон Classic, не современный Minecraft. Нет режима выживания, нет мобов, нет прогрессии. Это урезанный творческий режим.

Студенты, работающие над проектами по разработке игр, или кто-то, прототипирующий воксельную игру, смогут многое узнать, изучая кодовую базу. Архитектура достаточно чистая, чтобы отследить, как блок размещается в мире и отображается на экране.


Как работает архитектура

Проект организован в модульные файлы JavaScript, каждый отвечает за определённый слой игры. Модуль World хранит данные блоков всей карты. Представьте это как 3D-массив, отслеживающий, что находится в каждой координате. Модуль Render берёт эти данные и преобразует их в чанки (группы блоков), затем передаёт в WebGL для отрисовки.

Физика моделируется отдельно. Гравитация тянет падающие блоки вниз, вода и лава текут по простым правилам, и обнаружение столкновений не даёт вам упасть сквозь землю. Это не сложная физика, но она работает для блочного мира.

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

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


Настройка (если вы хотите попробовать)

Версия одиночной игры простая. Клонируете репозиторий, открываете singleplayer.html в браузере. Никаких этапов сборки, никаких проблем с node_modules. И всё.

Для мультиплеера нужен установленный Node.js (проект рассчитан на старые версии, но подойдёт любая свежая LTS). Установите зависимости через npm, затем запустите сервер:

bash
npm install
node server.js

Когда сервер запущен, откройте multiplayer.html в браузере - подключится автоматически. Можете открыть несколько окон браузера на одном сервере для тестирования мультиплеера или поделиться URL с другими в локальной сети. Игра через интернет потребует настройки сети (проброс портов или ngrok) - это за рамками документации проекта, но определённо возможно.

Если что-то сломается или захотите вернуться к обычному Minecraft, просто закройте вкладку. WebCraft работает в оперативной памяти и контексте WebGL браузера, поэтому ничего не сохраняется и не меняет систему. Никакого беспорядка.


Чем это выделяется

Создать воксельный рендерер с нуля непросто. Самое сильное в проекте - что это сделано без графической библиотеки. WebGL достаточно низкоуровневый, чтобы видеть, как генерируется геометрия чанков, как отсекаются скрытые грани и как работает расчёт освещения.

Структура одиночной игры
Структура одиночной игры

Мультиплеер настроен минималистично. Socket.io обрабатывает сложные части двусторонней связи, но видно, как состояние игры сериализуется, передаётся по сети и согласуется на клиенте. Это реальная сетевая проблема, которую большинство уроков проходят мимо.

Ещё один момент - проект не раздувается лишними функциями. Сосредоточен на основном: размещение блоков, отрисовка мира, синхронизация игроков. Никаких GUI-фреймворков, никаких библиотек анимации, никакого балласта. Это прагматичный код, а не витрина фреймворка.


Ограничения, о которых нужно знать

Производительность - главное ограничение. На разном оборудовании и браузерах может начать подтормаживать при больших структурах или огромных мирах. Рендеринг тысяч кубов возможен, но не бесконечно масштабируется. На современных машинах работает гладко с небольшими зонами, с большими может подвисать.

Нет сохранения данных. Обновите страницу или перезагрузите сервер - мир исчез. Чтобы сохранять миры, нужно самому добавить логику БД. То же с конфигурацией сервера, админ-инструментами, аутентификацией. Это каркас, не готовый серверный продукт.

Режим Classic означает отсутствие режима выживания, ИИ мобов, подземелий, добычи. Сравнивая с современным Minecraft, не хватает всего, кроме строительства. Не недостаток - проект просто ограничил область и придерживается её.

И совместимость браузера. Создано для эры WebGL, поэтому старые браузеры не подойдут. Что-то из последних лет работает, но на Internet Explorer или древних Android не рассчитывайте.


Если вы ищете похожие проекты

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

Если хотите учиться разработке воксельных игр, есть более подходящие проекты. Рекомендуют Voxel.js или Python-библиотеку Panda3D, если предпочитаете другой язык. У них активные сообщества и свежая документация.

Для модов и инструментов Minecraft наше сообщество ведёт списки серверов и скинов, если хотите расширять ванильный Minecraft. Наши инструменты Votifier Tester и Text Generator помогут управлять серверами и создавать контент без JavaScript.


Мои впечатления

WebCraft решает очень конкретную задачу. Если хотите понять, как работает блочная игра, или учитесь веб-графике и игровым циклам - стоит пару часов внимания. Код читаем, архитектура продумана, узнаете больше, чем знали.

Чтобы играть? Официальный Minecraft. Учиться? Это вариант. Что проект не поддерживается - для обучения не важно. Код останется, и он хорошо написан.

Это проект, который показывает - опытный разработчик не нуждается во фреймворке для создания интересного. Нужны навыки, ясность мышления, понимание задачи. Само это стоит внимания.

Overv\/WebCraft - Zlib, ⭐418
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!

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

Создание пользовательских лаунчеров Minecraft с CmlLib.Core

Создание пользовательских лаунчеров Minecraft с CmlLib.Core

CmlLib.Core - это библиотека .NET для создания пользовательских лаунчеров Minecraft со встроенной поддержкой аутентификации, управления версиями, модлоадеров и кроссплатформенного развертывания. Идеально подходит для разработчиков, распространяющих модпаки или серверы сообщества.

29.06.2026
LiquidLauncher - лаунчер Minecraft, полный обзор

LiquidLauncher - лаунчер Minecraft, полный обзор

LiquidLauncher - это лаунчер на базе Rust для управления установками LiquidBounce на Windows, Mac и Linux. Узнайте, как он работает, когда его использовать и важное предупреждение о защите от читов, которое должен знать каждый игрок.

30.06.2026
Играйте в Minecraft в браузере с prismarine-web-client

Играйте в Minecraft в браузере с prismarine-web-client

prismarine-web-client - это открытый исходный код браузерного клиента Minecraft, который подключается к реальным серверам через WebSocket прокси. Построенный на mineflayer и prismarine-viewer, он работает в Chrome или Firefox без необходимости установки игры.

03.06.2026