/kiwotigo

a world map generation tool

Primary LanguageGoGNU General Public License v3.0GPL-3.0

kiwotigo

creative-coding Go Report Card

kiwotigo is world map generation tool.

the world builder algorithm generates randomly generated 2D maps, on which regions are distributed, with the following characteristics:

  • each region has a base area that has a minimum size (can be configured)
  • each region has at least one or more connections to another nearby region
  • each region is accessible from any region via these connections

A group of regions that are close together form a continent, there may (but need not) be several continents, and a continent can also consist of only one region (like islands).

Although the generation of regions is essentially based on randomness, it can be configured quite extensively.

As output, the world builder provides a json structure, the intermediate continental format.

kiwotigo is written in javascript, whereas the core of the world map builder is developed in go and integrated via webassembly.

kiwotigo example

Just try it out for yourself!

Why?

kiwotigo creates worlds, but doesn't tell you what to do with them. that's up to you. you're a indie-gamedev and need a tool to create 2D or maybe 3D maps? or you just want to create a nice graphics demo and need random input? go ahead, let your inspiration run wild - and don't forget to drop me a message (or a PR) if you want to show something off 😉

Local Development

As a precondition a current nodejs v16+ and a go-lang (1.17+) sdk has to be installed.

Build the kiwotigo library with:

$ npm run build  # -> npx gulp buildAll

Start a http server for testing the kiwotigo.wasm module with:

$ npx serve

as an alternative you can use the gulp tasks:

$ npx gulp --tasks  # show all tasks

or just start developing with:

$ npm start

have fun!

LICENSE

the kiwotigo code is licensed under the GPLv3. see LICENSE for details.