I guess everyone can make an s-expression file suitable for a map, but I better make one using some of the s-expression file tools I put in NicCLIM for my lispgamejam submission (a game which will be included in NicCLIM).

Here I will just make the s-expression file and pull some art from https://analognowhere.com/ .
• (setq inferior-lisp-program "ecl")
• (setq eepitch-buffer-name "*slime-repl ECL*")
• (slime)
(ql:Quickload :McCLIM)
(compile-file "~/Downloads/nicclim.lisp" :load t)
(in-package :nic)
(string '~/game)
(ensure-directories-exist *)
(uiop:chdir (string '~/game/))
(uiop:chdir (string '~/game/)) ;; Twice, for some reason.
oops I got sidetracked by discovering that John Mashey is on the Mastodon and also cares about the climate crisis.
I would like to realize https://analognowhere.com/techno-mage/stranded/ as a game map. I am going to decompose the comic into its characters and features. I might try 50 pixels x 50 pixels for the bitmaps.
Sun TREE
PENTIUM-HEAD
OPENBLADE
SODA-CAN
PUFFY
PENGUIN
BAG
DUNE
DESERT-SKY
DESERT-HORIZON
DESERT-RUINS
DESERT-SCRUB
TECHNO-MAGE-SIT
Phew! This was absolutely exhausting for me. My flow in GIMP was:
C-x themC-x unselectable or small leftoversPNGPlease remember to correctly attribute https://merveilles.town/@prahou when using my cc/sa-but-no-llm-stuff 50x50px extractions. https://analognowhere.com/techno-mage/stranded/
But onward, onward
I guess the top row will be sky, the 2nd row horizon, and the 3rd, 4th and 5th desert.
(rect-file 'sky 5 1 '(sky))
(rect-file 'horiz 5 1 '(horizon))
(rect-file 'ground 5 3 '(ground))
(vertical-cat 'sky 'horiz 'sky-zon) ; oops. (fixed)
(vertical-cat 'sky-zon 'ground 'sky-ground)
oh, vertical-cat was broken [], great. Redownload nicclim.lisp (itch)
NIC> (vertical-cat 'sky-zon 'ground 'sky-ground)
T
NIC> (cat 'sky-ground)
(SKY) (SKY) (SKY) (SKY) (SKY)
(HORIZON) (HORIZON) (HORIZON) (HORIZON) (HORIZON)
(GROUND) (GROUND) (GROUND) (GROUND) (GROUND)
(GROUND) (GROUND) (GROUND) (GROUND) (GROUND)
(GROUND) (GROUND) (GROUND) (GROUND) (GROUND)
seems to be working.
(setf (get 'ground :bitmap) 'imgs/techno-mage/dune.png)
(setf (get 'sky :bitmap) 'imgs/techno-mage/desert-sky.png)
(setf (get 'horizon :bitmap) 'imgs/techno-mage/desert-horizon.png)
and look at it
(enclose-map 'sky-ground)
(setf (get 'sun :bitmap) 'imgs/techno-mage/sun.png)
(setf (get 'mage :bitmap) 'imgs/techno-mage/techno-mage-sit.png)
(setf (get 'tree :bitmap) 'imgs/techno-mage/tree.png)
(setf (get 'scrub :bitmap) 'imgs/techno-mage/desert-scrub.png)
(setf
(get 'bag :bitmap) 'imgs/techno-mage/bag.png
(get 'puffy :bitmap) 'imgs/techno-mage/puffy.png
(get 'soda :bitmap) 'imgs/techno-mage/soda-can.png
(get 'ruins :bitmap) 'imgs/techno-mage/desert-ruins.png
(get 'penguin :bitmap) 'imgs/techno-mage/penguin.png
(get 'openblade :bitmap) 'imgs/techno-mage/openblade.png
(get 'head :bitmap) 'imgs/techno-mage/pentium-head.png)

SKY-GROUND file(SKY) (SKY) (SKY SUN) (SKY) (SKY)
(HORIZON) (HORIZON TREE) (HORIZON PUFFY) (HORIZON) (HORIZON)
(GROUND) (GROUND OPENBLADE) (GROUND MAGE) (GROUND PENGUIN) (GROUND)
(GROUND) (GROUND SODA) (GROUND BAG) (GROUND) (GROUND)
(GROUND) (GROUND) (GROUND) (GROUND) (GROUND)
I have to say
This raises the interesting question for me as to what the different items of work here were.
I guess first Prahou authored a comic. Then, I authored NicCLIM and the NicCLIM-maps-as-a-game ANSI CL programs. Then I cut out pictures from Prahou’s comic and ascribed lisp symbols them as properties
Towards literally bridging the comic as such and programmatic NicCLIM maps as such. Seems like food for thought.
48 hours left if you want to hazard one. I guess before-the-Sunday-morning-in-Europe-peertube-live would be a good deadline.
Talk on the Mastodon thread as always. Specifically, coordinate / send me your game coauthoring of s-expressions there! Or the itch lispgamejam thread.
screwlisp proposes kittens