The Microworld engine. Processes a world to create new states
Find a file
2024-05-04 14:36:19 +01:00
doc Written enough to create a world; get-neighbours function isn't working. 2014-06-29 18:19:21 +01:00
docs More work on drainage and rendering. 2024-04-06 23:37:55 +01:00
resources drainage/flow-world-nr now works; drainage/flow-world still doesn't 2024-04-06 09:41:52 +01:00
src/cljc/mw_engine Allow zero coordinates in cells (d'oh!) 2024-05-04 14:36:19 +01:00
test/mw_engine Work in support of new development in the-great-game, q.v. 2024-04-05 22:13:13 +01:00
.gitignore Work in support of new development in the-great-game, q.v. 2024-04-05 22:13:13 +01:00
buildall.sh Don't do anything with mw-explore during buildall - it contains unreliable junk. 2016-12-27 15:44:57 +00:00
LICENSE Initial commit 2015-03-28 16:24:24 +00:00
project.clj drainage/flow-world-nr now works; drainage/flow-world still doesn't 2024-04-06 09:41:52 +01:00
README.md Major overhaul of rule metadata, so upversioned to 0.3.0 2023-07-21 09:35:14 +01:00

mw-engine

Core cellular automaton engine for MicroWorld.

Part of the overall MicroWorld system

While this code works and is interesting on its own, you also need at least mw-parser and mw-ui. There will be other modules in due course.

You can see MicroWorld in action here - but please don't be mean to my poor little server. If you want to run big maps or complex rule-sets, please run it on your own machines.

Version compatibility

There are substantial changes in how rule functions are evaluated between 0.1.x versions of MicroWorld libraries and 0.3.x versions. In particular, in 0.3.x metadata is held on rule functions which is essential to the functioning of the engine. Consequently, you cannot mix 0.1.x and 0.3.x libraries: it will not work.

Usage

Primary entry points are make-world and run-world, both in mw-engine.core. See source or generated documentation for details. Documentation can be generated using

lein marg

To build the whole system, place all MicroWorld projects in a common directory, and from that directory run buildall.sh. Alternatively, in each MicroWorld project directory, run

lein clean
lein compile
lein marg
lein install

and then from the mw-ui directory, run

lein ring server

License

Copyright © 2014 Simon Brooke

Distributed under the terms of the GNU General Public License v2