Development of Minecraft Java Seed Map / Seed Viewer for the website
Project Description
A browser-based tool Minecraft Java Seed Map / Seed Viewer needs to be developed, which will work on our website and allow the user to enter a seed from Minecraft Java Edition and view an interactive world map with biomes, structures, and key points.
The tool should function similarly to Cubiomes Viewer / similar seed map viewer solutions: the user enters a seed, selects the version of Minecraft Java Edition, after which they see a world map with zoom/pan capabilities, layer toggles, coordinates, and structure markers.
The main focus of the task is on correct implementation of Minecraft world generation through Cubiomes, stable operation without freezes, accuracy of the seed map, and correct display of structures/biomes.
What needs to be implemented
1. Client-side generation of Minecraft Java seed map
It is necessary to implement fully client-side logic for generating the map based on the Minecraft Java seed.
Expected technical base:
- Cubiomes C library
- compilation/integration via WebAssembly / Emscripten
- generation in the browser without backend processing
- use of Web Workers so that generation does not block the UI
- stable operation without freezes during basic interaction with the map
The seed must be valid: if the user enters a seed and then checks it in the game Minecraft Java Edition, the key biomes, structures, and coordinates must match the expected result for the selected version of the game.
2. Support for seed input
The user must be able to:
- enter a numeric seed;
- enter a text seed that correctly converts to a Minecraft Java seed;
- generate a random seed via the Random Seed button;
- change the seed and regenerate the map.
3. Support for Minecraft Java Edition versions
A version selector for Minecraft Java Edition needs to be implemented.
In the MVP, it is desirable to support all versions that are supported by Cubiomes, or as complete a list of relevant versions that Cubiomes can correctly process.
The selected version must actually affect the generation of the map, biomes, and structures.
4. Support for Minecraft dimensions
The MVP needs to implement support for the main dimensions:
The user must be able to switch between dimensions if supported by Cubiomes for the corresponding version.
5. Interactive map
A map with basic interactivity needs to be implemented:
- zoom in / zoom out;
- pan / drag;
- display of coordinates X / Z;
- coordinates on hover or click;
- ability to copy coordinates;
- state recovery via shareable URL.
For rendering the map, OpenLayers or another justified solution can be used if it better suits the task. If OpenLayers is not chosen, a brief explanation of the reason is needed.
6. Display of biomes
Biomes from Minecraft Java Edition must be visually displayed on the map.
Important:
- biomes must correspond to the selected seed;
- biomes must correspond to the selected version of Minecraft Java;
- there must be an option to toggle the biome layer on/off;
- it is desirable to make the visual representation of the map clear and pleasant, not just a technical grid.
We can provide references for the desired style of map/block/color display separately.
7. Display of structures and markers
Structures supported by Cubiomes for the selected version of Minecraft Java must be displayed on the map.
Minimum requirements:
- spawn point or estimated spawn;
- villages;
- strongholds;
- ancient cities;
- trial chambers, if supported by the selected version;
- nether fortresses;
- bastions;
- ocean monuments;
- woodland mansions;
- ruined portals;
- pillager outposts;
- mineshafts;
- other structures available through Cubiomes.
Markers for structures on the map and layer toggles need to be implemented:
- all structures on/off;
- individual types of structures on/off;
- biomes on/off.
Markers must be clickable or interactive: when clicked, it is desirable to show the type of structure and coordinates.
8. Shareable URL
A shareable URL needs to be implemented that restores the state of the map.
At a minimum, the URL must store:
- seed;
- version of Minecraft Java;
- preferably — selected dimension;
- preferably — map position / zoom.
When opening such a URL, the user should see the same map without re-entering the seed manually.
9. UI / UX
A user-friendly and visually tidy UI for the tool needs to be created.
Basic elements:
- seed input;
- random seed button;
- version selector;
- dimension selector;
- layer toggles;
- coordinates;
- copy coordinates;
- map;
- panel with structures/filters.
The design should be adapted for desktop. Mobile is a secondary priority, but the interface should not completely break on small screens.
We may provide a separate design from our designer. If a design is provided, the implementation will need to be adapted to it.
SEO / website integration
The tool will be placed on a separate page of the website, approximately:
/minecraft-seed-map
The page should function as an SEO landing page + utility tool.
From the developer's side, it should be ensured that the tool can be integrated into the website page. The final SEO content, texts, and structure of the landing page can be prepared separately.
Technical expectations
Desired stack/approach:
- Cubiomes;
- WebAssembly via Emscripten;
- Web Workers;
- JavaScript / TypeScript;
- OpenLayers or another map rendering layer;
- fully client-side generation;
- without mandatory backend dependency for map generation.
It is important that the implementation is performant:
- UI should not freeze during basic interaction;
- generation should be offloaded to a worker;
- loading/building of the map should be optimized;
- it is desirable to implement a tile-based or chunk-based approach so that the map does not attempt to generate excessive amounts of data at once.
MVP logic
The MVP must work:
- Seed input.
- Random seed.
- Selection of Java Edition version.
- Map generation for the selected seed.
- Display of Overworld.
- Preferably — support for Nether and End.
- Display of biomes.
- Display of structures supported by Cubiomes.
- Minimum required structures:
- villages;
- strongholds;
- ancient cities;
- spawn point / estimated spawn.
- Zoom / pan.
- Coordinates X / Z.
- Copy coordinates.
- Shareable URL.
- Layer toggles for biomes and structures.
- Web Worker for generation.
- Stable operation without critical lags.
References
Before starting, it is advisable to familiarize yourself with the logic of Cubiomes Viewer / seed map viewer tools.
We need to implement a similar functional tool on our website, but with our own UI and visual style.
Additionally, we can provide:
- UI design mockup;
- map style references;
- block/biome display references;
- list of priority Minecraft Java versions;
- list of structures that must be included in the MVP.
Acceptance Criteria
The work is considered completed if:
- the seed is entered and correctly processed;
- the text seed is correctly converted to a Minecraft Java seed;
- the random seed works;
- the version selector affects generation;
- the map is interactive: zoom/pan work;
- biomes are displayed correctly;
- key structures are displayed correctly;
- at a minimum, villages, strongholds, ancient cities work;
- the spawn point or estimated spawn is displayed;
- layer toggles work;
- coordinates X / Z are shown on hover or click;
- copy coordinates work;
- the shareable URL restores the seed and version;
- generation is performed via Web Worker;
- the UI does not freeze during basic interaction;
- the tool can be integrated into the website page;
- the code is structured and suitable for further maintenance.
What is required from the performer
In the project response, please indicate:
- Whether you have experience with WebAssembly / Emscripten.
- Whether you have worked with Cubiomes or Minecraft world generation.
- What approach you propose for rendering the map.
- Whether you see risks in supporting different Minecraft Java versions.
- An estimated timeline for the MVP.
- Examples of similar interactive web tools, if any.
Preference will be given to developers who have already worked with:
- Minecraft-related tools;
- procedural generation;
- WebAssembly;
- canvas/map rendering;
- OpenLayers or similar libraries;
- performance optimization in the browser.