Разработка карты семян Minecraft Java / просмотрщика семян для сайта
Разработка карты семян Minecraft Java / Seed Viewer для сайта
Описание проекта
Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть интерактивную карту мира с биомами, структурами и ключевыми точками.
Функционально инструмент должен быть близок к Cubiomes Viewer / аналогичным решениям для просмотра семян: пользователь вводит семя, выбирает версию Minecraft Java Edition, после чего видит карту мира с возможностью масштабирования / перемещения, переключением слоев, координатами и маркерами структур.
Основной акцент задачи — корректная реализация генерации мира Minecraft через Cubiomes, стабильная работа без зависаний, точность карты семян и правильное отображение структур / биомов.
Что нужно реализовать
1. Генерация карты семян на стороне клиента
Необходимо реализовать полностью клиентскую логику генерации карты на основе семени Minecraft Java.
Ожидаемая техническая база:
- Cubiomes C library
- компиляция / интеграция через WebAssembly / Emscripten
- генерация в браузере без обработки на сервере
- использование Web Workers, чтобы генерация не блокировала интерфейс
- стабильная работа без зависаний во время базового взаимодействия с картой
Семя должно быть валидным: если пользователь введет семя и затем проверит его в игре Minecraft Java Edition, ключевые биомы, структуры и координаты должны соответствовать ожидаемому результату для выбранной версии игры.
2. Поддержка ввода семян
Пользователь должен иметь возможность:
- ввести числовое семя;
- ввести текстовое семя, которое корректно конвертируется в семя Minecraft Java;
- сгенерировать случайное семя через кнопку Random Seed;
- изменить семя и повторно сгенерировать карту.
3. Поддержка версий Minecraft Java Edition
Необходимо реализовать селектор версий Minecraft Java Edition.
В MVP желательно поддержать все версии, которые поддерживаются Cubiomes, или максимально полный перечень актуальных версий, которые Cubiomes может корректно обрабатывать.
Выбранная версия должна реально влиять на генерацию карты, биомов и структур.
4. Поддержка измерений Minecraft
В MVP нужно реализовать поддержку основных измерений:
- Overworld;
- Nether;
- End.
Пользователь должен иметь возможность переключаться между измерениями, если это поддерживается Cubiomes для соответствующей версии.
5. Интерактивная карта
Необходимо реализовать карту с базовой интерактивностью:
- масштабирование;
- перемещение / перетаскивание;
- отображение координат X / Z;
- координаты при наведении или клике;
- возможность скопировать координаты;
- восстановление состояния через shareable URL.
Для рендеринга карты можно использовать OpenLayers или другое обоснованное решение, если оно лучше подходит для задачи. Если выбирается не OpenLayers — нужно коротко объяснить причину.
6. Отображение биомов
На карте должны визуально отображаться биомы Minecraft Java Edition.
Важно:
- биомы должны соответствовать выбранному семени;
- биомы должны соответствовать выбранной версии Minecraft Java;
- должна быть возможность включить / выключить слой биомов;
- желательно сделать визуализацию карты понятной и приятной, не просто технической сеткой.
Отдельно можем предоставить референсы желаемого стиля отображения карты / блоков / цветов.
7. Отображение структур и маркеров
На карте должны отображаться структуры, которые поддерживаются Cubiomes для выбранной версии Minecraft Java.
Минимально обязательно:
- точка спавна или предполагаемая точка спавна;
- деревни;
- крепости;
- древние города;
- испытательные камеры, если поддерживаются выбранной версией;
- крепости в Нижнем мире;
- бастионы;
- океанские памятники;
- лесные особняки;
- разрушенные порталы;
- посты грабителей;
- шахты;
- другие структуры, доступные через Cubiomes.
Необходимо реализовать маркеры структур на карте и переключатели слоев:
- все структуры вкл. / выкл.
- отдельные типы структур вкл. / выкл.
- биомы вкл. / выкл.
Маркеры должны быть кликабельными или интерактивными: при клике желательно показывать тип структуры и координаты.
8. Shareable URL
Необходимо реализовать shareable URL, который восстанавливает состояние карты.
Минимально в URL должны храниться:
- семя;
- версия Minecraft Java;
- желательно — выбранное измерение;
- желательно — позиция карты / масштаб.
При открытии такого URL пользователь должен увидеть ту же карту без повторного ручного ввода семени.
9. UI / UX
Необходимо сделать удобный и визуально аккуратный интерфейс для инструмента.
Базовые элементы:
- ввод семени;
- кнопка случайного семени;
- селектор версии;
- селектор измерения;
- переключатели слоев;
- координаты;
- копировать координаты;
- карта;
- панель со структурами / фильтрами.
Дизайн должен быть адаптирован под десктоп. Мобильная версия — второстепенный приоритет, но интерфейс не должен полностью ломаться на малых экранах.
Возможно, мы предоставим отдельный дизайн от нашего дизайнера. Если дизайн будет предоставлен, реализацию нужно будет адаптировать под него.
SEO / интеграция на сайт
Инструмент будет размещен на отдельной странице сайта, ориентировочно:
/minecraft-seed-map
Страница должна работать как SEO-лендинг + утилита.
Со стороны разработчика нужно предусмотреть, чтобы сам инструмент можно было интегрировать на страницу сайта. Окончательный SEO-контент, тексты и структура лендинг-страницы могут быть подготовлены отдельно.
Технические ожидания
Желательный стек / подход:
- Cubiomes;
- WebAssembly через Emscripten;
- Web Workers;
- JavaScript / TypeScript;
- OpenLayers или другой слой рендеринга карты;
- полностью клиентская генерация;
- без обязательной зависимости от сервера для генерации карты.
Важно, чтобы реализация была производительной:
- интерфейс не должен зависать во время базового взаимодействия;
- генерация должна выполняться в worker;
- необходимо оптимизировать загрузку / построение карты;
- желательно реализовать подход на основе тайлов или чанков, чтобы карта не пыталась сразу генерировать избыточный объем данных.
MVP-логика
В MVP должно работать:
- Ввод семени.
- Случайное семя.
- Выбор версии Java Edition.
- Генерация карты для выбранного семени.
- Отображение Overworld.
- Желательно — поддержка Nether и End.
- Отображение биомов.
- Отображение структур, которые поддерживаются Cubiomes.
- Минимально обязательные структуры:
- деревни;
- крепости;
- древние города;
- точка спавна / предполагаемая точка спавна.
- Масштабирование / перемещение.
- Координаты X / Z.
- Копировать координаты.
- Shareable URL.
- Переключатели слоев для биомов и структур.
- Web Worker для генерации.
- Стабильная работа без критических лагов.
Референсы
Перед стартом желательно ознакомиться с логикой Cubiomes Viewer / инструментов для просмотра семян.
Нам нужно реализовать похожий по функциональности инструмент на нашем сайте, но с собственным интерфейсом и визуальным стилем.
Дополнительно можем предоставить:
- дизайн-макет интерфейса;
- референсы стиля карты;
- референсы отображения блоков / биомов;
- список приоритетных версий Minecraft Java;
- список структур, которые точно должны быть в MVP.
Критерии приемки
Работа считается выполненной, если:
- семя вводится и корректно обрабатывается;
- текстовое семя корректно конвертируется в семя Minecraft Java;
- случайное семя работает;
- селектор версии влияет на генерацию;
- карта интерактивная: масштабирование / перемещение работают;
- биомы отображаются корректно;
- ключевые структуры отображаются корректно;
- минимально работают деревни, крепости, древние города;
- точка спавна или предполагаемая точка спавна отображается;
- переключатели слоев работают;
- координаты X / Z показываются при наведении или клике;
- копирование координат работает;
- shareable URL восстанавливает семя и версию;
- генерация выполняется через Web Worker;
- интерфейс не зависает во время базового взаимодействия;
- инструмент можно интегрировать на страницу сайта;
- код структурирован и пригоден для дальнейшей поддержки.
Что нужно от исполнителя
В отклике на проект, пожалуйста, укажите:
- Имели ли вы опыт с WebAssembly / Emscripten.
- Работали ли с Cubiomes или генерацией мира Minecraft.
- Какой подход предлагаете для рендеринга карты.
- Видите ли риски в поддержке различных версий Minecraft Java.
- Ориентировочную оценку сроков для MVP.
- Примеры похожих интерактивных веб-инструментов, если есть.
Преимущество будет у разработчиков, которые уже работали с:
- инструментами, связанными с Minecraft;
- процедурной генерацией;
- WebAssembly;
- рендерингом на canvas / карте;
- OpenLayers или аналогичными библиотеками;
- оптимизацией производительности в браузере.
-
196 У нас уже есть почти готовая база для такого решения - интерактивный браузерный инструмент с картой, слоями, состоянием по ссылке и генерацией в воркерах, поэтому можем быстро адаптировать под Minecraft seed viewer и запустить MVP.
По срокам для MVP я бы ориентировался на 5-7 недель, в зависимости от финального списка версий Java Edition, структур и того, насколько глубоко нужно покрывать Nether и End. Оценка - 180000 грн за MVP с нормальной архитектурой, а не просто демо, которое красиво дышит первые 10 минут и потом идет философствовать в консоль =)
WebAssembly / Emscripten - да, такой подход здесь уместен. Cubiomes я бы интегрировал через отдельный wasm-модуль, генерацию вынес бы в Web Worker, а карту делал бы tile-based или chunk-based, чтобы не генерировать лишнюю область и не блокировать интерфейс. Для рендеринга, скорее всего, взял бы OpenLayers, если не появится требования к более кастомному canvas/WebGL-визуалу. OpenLayers хорошо подходит для zoom / pan, координат, слоев, маркеров и восстановления состояния через URL.
Риск по версиям Minecraft вижу именно в том, что разные версии Java Edition по-разному влияют на биомы, структуры и доступность отдельных объектов. Поэтому я бы не обещал все версии одним махом, а сделал бы проверенный список поддержки на основе Cubiomes, с матрицей - версия, измерения, биомы, структуры. Это тот случай, где лучше семь раз сверить seed, чем один раз красиво нарисовать неправильную карту.
С технической стороны вижу такую реализацию:
… - компиляция Cubiomes в WebAssembly через Emscripten
- отдельный worker для генерации биомов и структур
- кэширование тайлов / чанков в браузере
- конвертация text seed в Java seed без потери совместимости
- слои биомов и структур с отдельными переключателями
- координаты X / Z, копирование координат, hover или click
- shareable URL для seed, версии, dimension, позиции и zoom
- интеграционный формат, чтобы инструмент можно было вставить на страницу /minecraft-seed-map
Уточню 2 момента, чтобы не гадать на кубиомах, хотя звучит заманчиво:
- какие версии Minecraft Java для MVP самые важные - только актуальные или нужен широкий исторический список?
- дизайн уже будет от вашего дизайнера или нужно с нашей стороны подготовить собственный аккуратный UI под desktop и адаптив?
Примеры близкого опыта Ingello:
- https://business.ingello.com/vorfahr - сложная веб-система с автоматизацией, логикой данных и интеграциями
- https://business.ingello.com/fractal - пример архитектуры для сложных процессов, агентной логики и масштабируемых модулей
- https://systems-fl.ingello.com/ua - коротко о нашем подходе к системной разработке, автоматизации и ИИ-решениям
На связи, можем обсудить состав MVP, версии Minecraft и технические риски прямо здесь на бирже.
-
1168 7 0 Добрый день! Мы имеем опыт работы с алгоритмами генерации мира Minecraft и интеграцией интерактивных карт в веб-интерфейсы. Реализуем это через оптимизированный рендеринг чанков на стороне клиента с использованием WebGL для высокой производительности. Готовы обсудить детали архитектуры и масштабируемость решения под ваши задачи.
-
Задайте ваш вопрос заказчику