Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

The Cow Ate My Jam

A topic by screwtape created 62 days ago Views: 235 Replies: 10
Viewing posts 1 to 10
Submitted(+1)

https://lispy-gopher-show.itch.io/lispmoo/devlog/821630/lisp-kind-of-society-urg...

Right after this jam started, I heard I was causing my friends some trouble by letting other people know how cool it is to MOO. So starting now, I am going to do my best to write a new playable multiplayable MOO server in common lisp.

This will also accentuate the spritely institute's development, which I consider to be similar.

I'll reply here with my itch phlogs as I go if someone wants to chatter about them.

I'm on the Mastodon if you would like to mutually toot over there. https://mastodon.sdf.org/@screwtape

I'll also be talking about this and this jam on the show on the next two Wednesdays at 000UTC and Friday 1400UTC. https://anonradio.net:8443/anonradio https://archives.anonradio.net/#screwtape.

I had previously written some low level MOO engine infrastructure in lisp (my moonclimb) which I will use for infrastructure.

Submitted

I accidentally rounded the time of the jam starting, please don't crucify me

Submitted(+2)

Timezones are hard. Best of luck for this jam!

Submitted

Attempting to get anything at all turned in I wrote

https://lispy-gopher-show.itch.io/lispmoo2/devlog/826784/figuring-out-how-my-moo...

just now. I'll try and get the then-implementing-this-plan scratched out in the next 24 hours. I think even just this will be surprisingly interesting (to me personally!). I'm also excited to poke around all the diligent jamming lisp users have gotten to here in my quiesence!

The Lispy Gopher Climate (https://archives.anonradio.net/#screwtape https://mastodon.sdf.org/@screwtape/113393326797991173) after this jam ends, I will mention and poke around in (or if the barrier to entry is very lispy, play) your game and mention what I can.

Submitted

Alright I did somehow muddle my way through the first step, though I skipped connect

While there isn't any high level interface to my engine, In hypothetical high-level I did this:

  1. @create $room named start-locn
  2. @create $room named forest
  3. LISP> (push 'screwtape (get 'start-locn :inhabitants))
  4. @verb $room is (com-north (progn #<find 'north in exits and move PLAYER there>)
  5. north
LISPMOO2/MAIN> (funcall *krnl*)
  You head north to FOREST. 
(SCREWTAPE) 
LISPMOO2/MAIN> (symbol-plist 'forest) 
(:OWNER SCREWTAPE :PARENTS ($ROOM $OBJECT) :CONTENTS NIL :INHABITANTS
  (SCREWTAPE) :EXITS NIL) 
LISPMOO2/MAIN>

https://lispy-gopher-show.itch.io/lispmoo2/devlog/826836/defining-north-between-...

Submitted

3 for 3 (I'll let you go back to sleep now.

I fixed the ugliness of my low level interactions using a reader macro in https://lispy-gopher-show.itch.io/lispmoo2/devlog/826908/a-moonew-language-for-i....

To illustrate, above you read me write

(verb-plist :verb 'com-@create :dobj '$room :prep :named :iobj 'start-locn)

which I have now implemented as

{ @create $room :named start-locn

Where { enters this reader. It also accepts additional explicit keys, but evals their arguments.

Submitted (1 edit)

Okie dokes, I submitted it. devlog retrospective will be forthcoming, but here is where I ended up though with quite a few downsides:

Admittedly, it is quite a short and linear game with deficient narration. Sorry for spoilers.

> { north
> x
You navigate north to FOREST.
(:OWNER SCREWTAPE :PARENTS ($ROOM $OBJECT) 
:CONTENTS NIL 
:INHABITANTS  (DISTRESSED-PRINCESS SCREWTAPE) 
:EXITS  ((SOUTH . START-LOCN) (WEST . CLEARING)))
> { west
> x
You wander west to CLEARING. 
(:OWNER SCREWTAPE 
:PARENTS ($ROOM $OBJECT) 
:CONTENTS (GOLD-RING) 
:INHABITANTS  (SCREWTAPE) 
:EXITS ((EAST . FOREST)))
> { @take gold-ring
> x
"You take " GOLD-RING GOLD-RING
> { east
> x
You exit east to FOREST. 
(:OWNER SCREWTAPE 
:PARENTS ($ROOM $OBJECT) 
:CONTENTS NIL 
:INHABITANTS  (DISTRESSED-PRINCESS SCREWTAPE) 
:EXITS  ((SOUTH . START-LOCN) (WEST . CLEARING)))
> { @give gold-ring :to distressed-princess
> x
"You give " GOLD-RING to DISTRESSED-PRINCESS

However! I am classifying playing the game as doing anything possible in lispmoo2, which includes @creating whatever and @verbing what you want as well. For example, I did this:

{ @verb $thing :is (com-@give
                 (if (and (member dobj (get player :inventory))
                          (member iobj (get here :inhabitants)))
          (progn
             (setf (get player :inventory) (remove dobj (get player :inventory)))
            (push dobj (get iobj :inventory))
            (print \"You give \") (princ dobj) (princ \" to \") (princ iobj))
          (progn (print \"You can't or don't want to give \") (princ dobj))))

To allow myself to @give the gold-ring to the distressed-princess. (whom was @create $player :named distressed-princess -ed).

The one million pages of warning every time you execute { x } , generally for typos, all from moonclimb are ignored as they don't proximally cause any real problems. There are a few miles of devlog to be had but it was some kind of completion, even if I didn't get to being gamey again.


Looking forward to playing your game! (Person, whom will ideally want to hang out on Wednesday's show, I'm looking at you mdh)

Submitted

https://itch.io/jam/autumn-lisp-game-jam-2024/rate/3062506 oops linky

Submitted

I suppressed all the warnings in my last commit. (Well, they are placed in *last-warnings*). So now you just see the meaningful returns and standard output I was showing above and in general, and changed the instructions to reflect quicklisp's default useage.

Submitted

Okay, I will pay at least a little attention to everyone else's games on the show tomorrow ( 000UTC Wednesday https://anonradio.net ) but indulge me indulging me for just one second here. Is this crazy or not.

https://lispy-gopher-show.itch.io/lispmoo2/devlog/828749/my-very-own-computing-r...

Submitted

Chat during the show is in lambda

(

telnet lambda.moo.mud.org 8888

co guest

@join screwtape

)