Gamedev in Lisp. Part 2: Dungeons and Interfaces

(gitlab.com)

125 points | by awkravchuk 3 hours ago ago

20 comments

  • mark_l_watson 21 minutes ago

    Wow! Your package.sh and in general managing builds for three operating systems is a master class in itself - reading through the GitHub repo was a good learning experience.

    I usually build command line Common Lisp apps in SBCL or LispWorks, but I might do the next one in ECL because having builds for both macOS and Linux would be cool, and it would be fun to try something new.

    • awkravchuk 10 minutes ago

      Oh thanks! I've been building that CI stuff on top of CL infrastructure for a few years now, and it constantly breaks :D

  • fredrikholm 2 hours ago

    Few (tech) things pull at the heart string more than great projects/articles about Common Lisp. Man what a treat!

    Read the first part when it came back, really excited to read this one. Kudos to the author!

    • awkravchuk 2 hours ago

      Thanks mate, I appreciate it :)

  • davexunit an hour ago

    I didn't know that bit of history about A* and Lisp! All roads lead to Lisp, it seems.

    As mentioned at the end of the article, the next Lisp Game Jam starts next week on the 25th. Join in here: https://itch.io/jam/autumn-lisp-game-jam-2024

    • awkravchuk an hour ago

      I also learned it by chance while preparing the article :)

  • zelphirkalt an hour ago

    I like the SICP references.

  • dunefox 2 hours ago

    Nice, just this week I started developing a roguelike in Python, but Lisp might be cool as well.

  • sourcepluck 3 hours ago

    I was only looking back over Part 1 yesterday! What timing!

  • Guthur 2 hours ago

    The event loop is brilliant example for how much `loop` is a full blown iteration DSL... love it or hate it ;)

    • awkravchuk 2 hours ago

      I used to scoff at it at first, but after a few years of CL programming loop is one of my favourite CL constructs :)

      • taeric an hour ago

        I'm with you there. Is a bit of a mind bend, as I really disliked it the first few times I saw it.

        For an even sillier mind bend, I'm using tagbody to be able to directly transcribe some of Knuth's algorithms as I am learning them.

        • awkravchuk an hour ago

          Cool! Using tagbody feels like writing supercharged C or even assembler to me (not that I've used it much, but still).

        • CyberDildonics an hour ago

          I don't understand why turning a simple loop into a 'mindbend' is considered good. The downfall of programming is complexity, if you're getting your mind blown by a loop how are you going to do the rest of the program?

          • zelphirkalt an hour ago

            Something can be mindbending in its implementation, but offer a very convenient interface at the same time.

            If mindbending isn't relating to its usage, but to its implementation, then I could see, how it could still be a good thing.

            • CyberDildonics 10 minutes ago

              How does that relate to a simple loop construct though? Why would you want that to be mind bending in interface or implementation? Every other language makes it as simple as possible.

            • exe34 38 minutes ago

              mindbending can also refer to something being deceptively simple. you might think it would be a big complicated mess, but using this one weird trick makes it really obvious what's going on.

          • taeric an hour ago

            The mindbend was more of my approach to the construct. It began with disdain before even really using it much. Looking back, I really couldn't articulate what I disliked about it.

          • 0xdeadbeefbabe 9 minutes ago

            He started with a bent mind though.