summaryrefslogtreecommitdiff
path: root/src/world/README.md
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2023-10-31 00:03:32 -0500
committersanine <sanine.not@pm.me>2023-10-31 00:03:32 -0500
commit19d89c43e5552f16080240ebf739cce142515c94 (patch)
tree899f35259919b8b5354a7b816d4af8a8bb92efa1 /src/world/README.md
parent70252c2ef37ddf974349fa092dce92782ffd302a (diff)
begin designing world
Diffstat (limited to 'src/world/README.md')
-rw-r--r--src/world/README.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/world/README.md b/src/world/README.md
new file mode 100644
index 0000000..a88eadc
--- /dev/null
+++ b/src/world/README.md
@@ -0,0 +1,53 @@
+# world
+
+The world is composed of a cell lattice. Each cell can contain a specific type of cell, and these cells
+evolve according to fixed, regular rules.
+
+Agents exist on top of the cell lattice. They occupy specific cell locations, but those locations are
+otherwise considered empty. Agents exist independent of the cells and evolve independent of them, though of
+course they are intertwined.
+
+Time step process:
+
+ * Agents update internal state and propose moves.
+ * World updates
+ * Agent moves are resolved in the new world, and agent status is updated.
+ * World state is updated to include agents.
+
+Cell types:
+*(all cells, except for Empties and Flags, count as GoL living)*
+
+ * Empty (territory-colored, GoL dead)
+ * Immutable
+ * Mutable
+ * Active (GoL living)
+ * Flag
+
+Agent aspects: (64)
+ * team (4)
+ * orientation (4)
+ * mobile/frozen (2)
+ * has flag (2)
+ * identity (3-channel)
+
+Agents have *internal state* corresponding to the state of their internal neurons (and roughly corresponding to their memories and experiences) and *status*, which refers to things like their current orientation, position, and mobility.
+
+
+Agent senses:
+ * Hearing (inverse square, infinite range)
+ * Sight (2D top-down, see further ahead than behind or to the sides, 7-channel)
+ * Match timer
+ * Epoch timer
+
+Agent actions:
+ * Move forward/backward
+ * Turn left/right
+ * Place mutable
+ * Trigger mutable -> active (5x5 square ahead of agent)
+ * Play frozen
+ * Unfreeze
+ * Take flag
+ * Drop flag (immediately ahead of agent)
+
+
+ When carrying a flag, an agent counts as a flag tile (and other agents can steal the flag from them!). Otherwise, an agent counts as an empty tile.