jOWE creates random worlds - height maps - (from 4x4 to 2048x2048) and displays the result in your browser in a 3d-style (2d-isometric), or with hexagonal or diamond tiles.
It is done in javascript and works with the canvas tag.
You can navigate through the grid by dragging it and you can display a cursor that follow the mouse inside the grid.
(screenshot from the demo of jOWE v0.1r9 - A simple world with its minimap on the left...)
And the world is yours... You can combine several calls to the engine (as it is done in the demo) to make your world with all the geographical characteristics you need. Below, you can see for the same world, from left to right, the relief, the fertility, the rainfall, the temperature and the population.
(click the image for full size)
Please, be advise that it is work in progress! Some buttons may not be functionnal, and you could encounter some strange behaviour.
Here it is, http://jowe.dolu.fr/jowe-demo.html (Firefox, Chrome, Opera, IE9 and every other "canvas compliant" browser).
For IE users below version 9, you can try ChromeFrame, it's a free plug-in for Internet Explorer (from version 6 to 9) that let you have Chrome functionnalities inside Internet Explorer.
At last, if you can't use it there is a specific demo, http://jowe.dolu.fr/jowe-demo-ie.html, using ExplorerCanvas. It will work for very small maps, and unfortunately, after loading, moving will take too much time to be usable.
This project looks good and you want to participate ? There's a lot of things to be done :
- Javascript optimization for the "core" and the "ui".
- Find and fix bugs.
- Makes the demo look even better.
- Every other things usefull you could have in mind...
Click on the image for full size
Content:
- jowe-alea.js : Mash() and Alea() functions, used to make repetitve random map (reusable seed). This file is optional.
- jowe-core.js : Create an heightmap.
- jowe-ui.js: Manage display of the grid.
- jowe-ui-2d-hexa.js: Object for displaying map with hexagonal tiles.
- jowe-ui-2d-diam.js: Object for displaying map with diamond tiles.
- jowe-ui-2d-pixel.js: Object for displaying a pixel map from an heightmap.
- jowe-demo.html : HTML demo file.
- jowe-demo-ie.html : HTML demo file for Internet Explorer with ExplorerCanvas.
- jowe-demo-worldmap.html : HTML demo file for world map generation.
- jowe-demo.css : style sheet demo file.
- jowe-world.js : world object to be used in the demo.
- jowe-demo.js : To be used with jowe-demo.html for the demo.
- images/
*
.png : images for the toolbar (demo). - js/
*
.js : external javascript files (for now, "excanvas", "jQuery" and "json2.js").
The name of the files could probably change in the future to reflect a better structure.
To do :
- Function to move the map with arrow keys
Add "world" to the demo (will contain many cities)- Fix bug :
- sometimes border of the canvas is not filled
- in the demo, enabling draw cursor before build is not taking in account
Random position for population within a cityManage city sizeCalculation for city average values (fertility, rainfall, ...)
- Cell object (within the ui) should be enhance :
- cell type sometimes not good
- calculate average value of each point?
- Better color management
Use function Alea() to repeat map.- Save/Load a grid
- Tools to rise/sink a cell
Add other properties to the map :fertilityrainfalltemperaturecity and population- ...
- Technical documentation (mainly for jowe_core.js and jowe_ui.js) => In progress...
jowe-core.js example
Better file organization (functions, classes, ...)Online demo"Zoom" function (increase/decrease cell size)Make flat water levelAdd minimapAdd more colors (deep ocean, moutains, snow,...)Issue with missing cells on the border of the canvasIssue when moving grid with cursor (previous selected cell with incorrect color)- ...