Розробка Minecraft Java Seed Map / Seed Viewer для сайту
Розробка Minecraft Java Seed Map / Seed Viewer для сайту
Опис проєкту
Потрібно розробити browser-based інструмент Minecraft Java Seed Map / Seed Viewer, який буде працювати на нашому сайті та дозволятиме користувачу ввести seed Minecraft Java Edition і переглянути інтерактивну карту світу з біомами, структурами та ключовими точками.
Функціонально інструмент має бути близьким до Cubiomes Viewer / аналогічних seed map viewer-рішень: користувач вводить seed, обирає версію Minecraft Java Edition, після чого бачить карту світу з можливістю zoom / pan, перемиканням шарів, координатами та маркерами структур.
Основний акцент задачі — коректна реалізація генерації Minecraft-світу через Cubiomes, стабільна робота без зависань, точність seed map і правильне відображення структур / біомів.
Що потрібно реалізувати
1. Client-side генерація Minecraft Java seed map
Потрібно реалізувати повністю client-side логіку генерації карти на основі Minecraft Java seed.
Очікувана технічна база:
- Cubiomes C library
- компіляція / інтеграція через WebAssembly / Emscripten
- генерація в браузері без backend-обробки
- використання Web Workers, щоб генерація не блокувала UI
- стабільна робота без фризів під час базової взаємодії з картою
Seed має бути валідним: якщо користувач введе seed і потім перевірить його у грі Minecraft Java Edition, ключові біоми, структури та координати мають відповідати очікуваному результату для вибраної версії гри.
2. Підтримка seed input
Користувач має мати можливість:
- ввести numeric seed;
- ввести text seed, який коректно конвертується у Minecraft Java seed;
- згенерувати випадковий seed через кнопку Random Seed;
- змінити seed і повторно згенерувати карту.
3. Підтримка версій Minecraft Java Edition
Потрібно реалізувати selector версій Minecraft Java Edition.
У MVP бажано підтримати всі версії, які підтримуються Cubiomes, або максимально повний перелік актуальних версій, які Cubiomes може коректно обробляти.
Вибрана версія має реально впливати на генерацію карти, біомів і структур.
4. Підтримка вимірів Minecraft
У MVP потрібно реалізувати підтримку основних вимірів:
- Overworld;
- Nether;
- End.
Користувач має мати можливість перемикатися між вимірами, якщо це підтримується Cubiomes для відповідної версії.
5. Інтерактивна карта
Потрібно реалізувати карту з базовою інтерактивністю:
- zoom in / zoom out;
- pan / drag;
- відображення координат X / Z;
- координати при hover або click;
- можливість скопіювати координати;
- відновлення стану через shareable URL.
Для рендерингу карти можна використовувати OpenLayers або інше обґрунтоване рішення, якщо воно краще підходить для задачі. Якщо обирається не OpenLayers — потрібно коротко пояснити причину.
6. Відображення біомів
На карті мають візуально відображатися біоми Minecraft Java Edition.
Важливо:
- біоми мають відповідати вибраному seed;
- біоми мають відповідати вибраній версії Minecraft Java;
- має бути можливість увімкнути / вимкнути шар біомів;
- бажано зробити візуал карти зрозумілим і приємним, не просто технічну сітку.
Окремо можемо надати референси бажаного стилю відображення карти / блоків / кольорів.
7. Відображення структур і маркерів
На карті мають відображатися структури, які підтримуються Cubiomes для вибраної версії Minecraft Java.
Мінімально обов’язково:
- spawn point або estimated spawn;
- villages;
- strongholds;
- ancient cities;
- trial chambers, якщо підтримуються вибраною версією;
- nether fortresses;
- bastions;
- ocean monuments;
- woodland mansions;
- ruined portals;
- pillager outposts;
- mineshafts;
- інші структури, доступні через Cubiomes.
Потрібно реалізувати маркери структур на карті та layer toggles:
- усі структури on / off;
- окремі типи структур on / off;
- біоми on / off.
Маркери мають бути клікабельними або інтерактивними: при кліку бажано показувати тип структури та координати.
8. Shareable URL
Потрібно реалізувати shareable URL, який відновлює стан карти.
Мінімально в URL мають зберігатися:
- seed;
- версія Minecraft Java;
- бажано — вибраний dimension;
- бажано — позиція карти / zoom.
При відкритті такого URL користувач має побачити ту саму карту без повторного ручного введення seed.
9. UI / UX
Потрібно зробити зручний і візуально охайний UI для інструмента.
Базові елементи:
- seed input;
- random seed button;
- version selector;
- dimension selector;
- layer toggles;
- координати;
- copy coordinates;
- карта;
- панель зі структурами / фільтрами.
Дизайн має бути адаптований під desktop. Mobile — вторинний пріоритет, але інтерфейс не має повністю ламатися на малих екранах.
Можливо, ми надамо окремий дизайн від нашого дизайнера. Якщо дизайн буде надано, реалізацію потрібно буде адаптувати під нього.
SEO / інтеграція на сайт
Інструмент буде розміщений на окремій сторінці сайту, орієнтовно:
/minecraft-seed-map
Сторінка має працювати як SEO landing page + utility tool.
З боку розробника потрібно передбачити, щоб сам інструмент можна було інтегрувати у сторінку сайту. Остаточний SEO-контент, тексти та структура landing page можуть бути підготовлені окремо.
Технічні очікування
Бажаний стек / підхід:
- Cubiomes;
- WebAssembly через Emscripten;
- Web Workers;
- JavaScript / TypeScript;
- OpenLayers або інший map rendering layer;
- повністю client-side генерація;
- без обов’язкової backend-залежності для генерації карти.
Важливо, щоб реалізація була продуктивною:
- UI не має фризити під час базової взаємодії;
- генерація має бути винесена у worker;
- потрібно оптимізувати завантаження / побудову карти;
- бажано реалізувати tile-based або chunk-based підхід, щоб карта не намагалася одразу генерувати надмірний обсяг даних.
MVP-логіка
У MVP має працювати:
- Введення seed.
- Random seed.
- Вибір Java Edition version.
- Генерація карти для вибраного seed.
- Відображення Overworld.
- Бажано — підтримка Nether та End.
- Відображення біомів.
- Відображення структур, які підтримуються Cubiomes.
- Мінімально обов’язкові структури:
- villages;
- strongholds;
- ancient cities;
- spawn point / estimated spawn.
- Zoom / pan.
- Координати X / Z.
- Copy coordinates.
- Shareable URL.
- Layer toggles для біомів і структур.
- Web Worker для генерації.
- Стабільна робота без критичних лагів.
Референси
Перед стартом бажано ознайомитися з логікою Cubiomes Viewer / seed map viewer-інструментів.
Нам потрібно реалізувати схожий за функціональністю інструмент на нашому сайті, але з власним UI та візуальним стилем.
Додатково можемо надати:
- дизайн-макет UI;
- референси стилю карти;
- референси відображення блоків / біомів;
- список пріоритетних Minecraft Java версій;
- список структур, які точно мають бути у MVP.
Acceptance Criteria
Робота вважається виконаною, якщо:
- seed вводиться і коректно обробляється;
- text seed коректно конвертується у Minecraft Java seed;
- random seed працює;
- version selector впливає на генерацію;
- карта інтерактивна: zoom / pan працюють;
- біоми відображаються коректно;
- ключові структури відображаються коректно;
- мінімально працюють villages, strongholds, ancient cities;
- spawn point або estimated spawn відображається;
- layer toggles працюють;
- координати X / Z показуються при hover або click;
- copy coordinates працює;
- shareable URL відновлює seed і version;
- генерація виконується через Web Worker;
- UI не зависає під час базової взаємодії;
- інструмент можна інтегрувати на сторінку сайту;
- код структурований і придатний для подальшої підтримки.
Що потрібно від виконавця
У відгуку на проєкт, будь ласка, вкажіть:
- Чи мали ви досвід з WebAssembly / Emscripten.
- Чи працювали з Cubiomes або Minecraft world generation.
- Який підхід пропонуєте для рендерингу карти.
- Чи бачите ризики у підтримці різних Minecraft Java версій.
- Орієнтовну оцінку термінів для MVP.
- Приклади схожих інтерактивних web-інструментів, якщо є.
Перевага буде у розробників, які вже працювали з:
- Minecraft-related tools;
- procedural generation;
- WebAssembly;
- canvas / map rendering;
- OpenLayers або аналогічними бібліотеками;
- performance optimization у браузері.
-
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 для високої продуктивності. Готові обговорити деталі архітектури та масштабованість рішення під ваші завдання.
-
Поставте ваше запитання замовнику