cl-rebonoise is a Common Lisp implementation of the Simplex/Perlin noise approach described in Amit Patel’s “Making maps with noise functions”.
Includes primitives and also helper functions, e.g.:
(grid-to-file 500 500 "./examples/img/7-biome2.png" :coefs '((1 6) (2 11) (4 8) (18 2) ) :power 1.45 :offset 166 :biomes t)
Amit’s page has a wealth of resources on game-related topics, from an implementation perspective, and I’ve been following it for years.
Part of this is because one of my long-term projects is to recreate a turn-based, play-by-(e)mail game that I was addicted to decades ago 8, a project I keep coming back to only to get derailed in building more “infrastructure” instead of actual code: my commits to a Common Lisp in-memory datastore where part of this, and this library another.
While I end up getting side-tracked, one of this days I will piece together all the side quests and make that game available. Well, that’s the plan, anyway.
It was very a local phenomenon called “Idade das Trevas” (“Dark Ages”), and was very popular in the small-but-connected world of strategy games enthusiasts in the 90s.