- [Screwlisp proposes kittens](https://screwlisp.small-web.org) # Plant insect bird game jam colorized likert probability mechanic I could feel myself getting a little frayed in my fourth devlog yesterday. But between that and a dream, I think the ending is in sight. In particular, between [Ksaj, Doug Merritt, Vassil Nikolov and sigh on the Mastodon](https://mastodon.sdf.org/@screwtape/114483135834607296)'s feedback about conway's game of life and agents being basically more nuanced and maybe game-theoretic automata, listen, here's what we're going to do. ## Game probability mechanic This is what the player plays while the game is running. All those probabilistic-type things are going to be user-controls while the world evolves (the world is persistent in the software individual, so it is always running). Like literally (yes I am still eepitching from markdown listen I will write that up after the jam and KMP's interview). ``` put likert-scale type thingtype put likert-scale attributes {probability} addmember (get board contents) likert-scale writefil board loadk board put a-lot type likert-scale put a-lot probability 4/4 put often type likert-scale put often probability 3/4 put sometimes type likert-scale put sometimes probability 2/4 put occasionally type likert-scale put occasionally probability 1/4 put not-normally type likert-scale put not-normally probability 0/4 put board contents (union (get board contents) {a-lot, often, sometimes, occasionally, not-normally}) writefil board loadk board ``` Now this isn't the whole trick # Add colors that store probabilities Since now probabilities are a mutable property, the player might want to change the probability as a world evolves. However, what if they want the world as such to continue, but to introduce a new species (= color = probability) of plant or insect or bird. ``` put color type thingtype put color attributes addmember (get board contents) color writefil board loadk board ``` now we can snapshot the current probabilities into a color: ``` ssv .c pink put .c type color put .c a-lot (get a-lot probability) put .c often (get often probability) put .c sometimes (get sometimes probability) put .c occasionally (get occasionally probability) put .c not-normally (get not-normally probability) addmember (get board contents) .c ``` ## View inside the plant-insect-bird individual's brain: ``` ses.152) ssv .c pink ses.153) put .c type color put: pink type color ses.154) put .c a-lot (get a-lot probability) put: pink a-lot 1 ses.155) put .c often (get often probability) put: pink often 3/4 ses.156) put .c sometimes (get sometimes probability) put: pink sometimes 1/2 ses.157) put .c occasionally (get occasionally probability) put: pink occasionally 1/4 ses.158) put .c not-normally (get not-normally probability) put: pink not-normally 0 ses.159) addmember (get board contents) .c ses.160) . (symbol-plist 'pink) (not-normally 0 occasionally 1/4 sometimes 1/2 often 3/4 a-lot 1 type color) ``` with some apologies, we can turn this into a one-liner: ### sequence of actions, soact ``` put not-normally probability 1/20 ssv .c blue soact [put .c type color] [put .c a-lot (get a-lot probability)] [put .c often (get often probability)] [put .c sometimes (get sometimes probability)] [put .c occasionally (get occasionally probability)] [put .c not-normally (get not-normally probability)] [addmember (get board contents) .c] ``` Well, the /result output/ is nice: ``` put: blue type color put: blue a-lot 1 put: blue often 3/4 put: blue sometimes 1/2 put: blue occasionally 1/4 put: blue not-normally 1/20 ``` check pink. ``` (get pink not-normally) ses.164) (get pink not-normally) => 0 ``` Don't forget to write changes. ``` writefil board loadk board ``` # Summary We introduced a likert-scale identified with changeable probabilities. Since these can change, we introduced a color type to snapshot any particular qualitative five-point-scale of probabilities. These will allow the player to explore mixed dynamic ecosystems. We learned about soact one-liners - basically a human would not want to write this, unless they are a hack like me, but imagine if the software-individual themselves is writing it, and the human is just exposed to the nice output summary. # Talk on the Mastodon - [Mastodon thread (mutuals, please)](https://mastodon.sdf.org/@screwtape/114491977636211241) - [Lispgamejam thread](https://itch.io/jam/spring-lisp-game-jam-2025/topic/4858711/what-genre-is-simulation-eat-things-or-you-die) - [Live interview with Kent Pitman on Tuesday night/Wednesday 0UTC (watch the Mastodon)](https://communitymedia.video/c/screwtape_channel/videos).