Little by little ! FINALLY actually JAMMING and in LISP Now I can work on the game by programming in lisp. Let's go through #'make-game, which is just a record of hacking along in a repl, dumping often flawed defs from a source editor. ; I added unwind-protect of SDL_Quit() which is safe. (defparameter *funs* (list)) (defun play-game () (game () () *funs*)) The game is whatever funs go in *funs*. (play-game) is a utility that should probably be a symbol-macro. Here, I push my line-drawer I wrote already in one direction, and run the game (push (draw-lines-from (coord-liner 0 (+ 2 (truncate 640 *scale*)) 1 0 (+ 1 (truncate 480 *scale*)) 1 :transpose nil) '(255 0 0)) *funs*) (play-game) Add the other direction, marvel at it again: (push (draw-lines-from (coord-liner 0 (+ 2 (truncate 480 *scale*)) 1 0 (+ 1 (truncate 640 *scale*)) 1 :transpose t) '(255 255 0)) *funs*) (play-game) ;;;Here I wrote pretty big special-scope singleton closures for the player and a base ;;;Trying them out (more than once in reality :D) (push (lambda () (Funcall (ensure-player) :paint t)) *funs*) (push (lambda () (Funcall (ensure-base) :paint t)) *funs*) (play-game) ;;; Add movement to the player using the exposed keyboardstate. (push (lambda () (funcall (ensure-player) :move (cond ((not (zerop (get-key-state *down*))) 's) ((not (zerop (get-key-state *up*))) 'n) ((not (zerop (get-key-state *left*))) 'w) ((not (zerop (get-key-state *right*))) 'e)))) *funs*) (play-game) ;; (yay, we can walk around)... ;; I added a *plants* list and (spawn-plant-in x y w h) ;; and (advance-someplants lists-of-name1->name2->fractional/probability) ;; and paint-plants. (loop repeat 6 do (spawn-plant-in -5 -5 15 15)) ;;(print *plants*) (advance-some-plants '(leaves flower 7/10)) ;;(print *plants*) ;;Nconc so the plants are always on top ;;(I wanted to see the plants - but that's probably backwards right) (nconc *funs* (list (lambda () (paint-plants)))) (play-game) So I'm pretty happy with a live CL repl as my "map editor". And it finally looks like we are doing something sensible ;p though there is basically no sensible way to write a bunch of up-front-C, but now I am very happy. The jam is almost over though! I had an offline-busy couple days.