This is dope as heck. I used to contribute to the common lisp SDL2 bindings. Great to see a polished game on Steam written in Common Lisp! Recently saw one in Haskell too. And there have been several in Javascript over the years. Did you find you had to manually manage the GC? Did you take advantage of CLOS?
I had to do a little bit to avoid insane amounts of consing, but honestly not a lot. And the optimisations I just did after the fact, gradually. I use CLOS a lot for everything. The event system is literally just an array of handlers and a generic function called HANDLE that takes the event object and the handler object, for instance. The source code for the engine, Trial, and the game, Kandria, are both on our GitHu…
Show HN: Kandria, an action RPG made in Common Lisp, is now out
111–120 of 133 posts
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#112I've been tinkering with Emacs Lisp for a little bit. I notice some package authors use cl-* macros.. is it worth going in that direction? ...I just looked up where the macros are defined, this is fascinating: > ;; This package was written by Dave Gillespie; it is a complete > ;; rewrite of Cesar Quiroz's original cl.el package of December 1986. Congrats to the Sandra team, sorry about the off topic.
I'm not sure what you mean by "that direction," but if it implies doing CL, writing emacs lisp won't get you there, even if it might give you a head start from cl-lib, eieio, and general lisp ideas.
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#113Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#114I've got a vague recollection that the Linux platformer "Abuse" from 30 years ago used a dialect of Lisp.
Abuse was cross platform, later open source. The engine was nice engineering and probably one of the first true games with scriptability. However the game itself failed to deliver as a game was meh - not exciting. The same studio later tried their fangs in RTS, but never finished the project - I assume out of funding.
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#115Loving all the little details like the whooshing of the crops as you walk through a field, the rope swinging.
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#116Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#117This is really great to see. I’m looking forward to learning from your work. Thanks for making it public. Long Live Lisp!
I hope the fact that game code is very hacked together won't deter you :)
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#118Hey, why does it matter if it's made in 'common lisp' ?
if i've learned anything from HN, it is that the language you write something in is the most important thing you can say about it.
It's a bonus that it's written in something a bit more interesting than your average game.
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#119Earlier quoted context omitted.
Official modding support is coming as the second major post launch update. Mac version isn't supported because I got tired of Apple constantly breaking things and making them way more difficult, while still having the worst documentation on the planet. I don't have it in me anymore to chase that. But, if anyone else wants to fix things up, the engine and game are OSS.
This game looks super exciting! Unfortunately, I have a mac : So, I install sbcl, installed quicklisp and then used quicklisp to install your game after cloning and cc'ing into your directory. It looks like your game would work if you (or someone) looked into why your "Harmony" sound engine isn't working (line 28-29 in your package.lisp file). I attempted to load from your github/Harmony directory and this is the err…
Re: Show HN: Kandria, an action RPG made in Common Lisp, is now out
#120Earlier quoted context omitted.
I had to do a little bit to avoid insane amounts of consing, but honestly not a lot. And the optimisations I just did after the fact, gradually. I use CLOS a lot for everything. The event system is literally just an array of handlers and a generic function called HANDLE that takes the event object and the handler object, for instance. The source code for the engine, Trial, and the game, Kandria, are both on our GitHu…
I always wondered if CLOS multimethods would be particularly useful in gamedev - it feels like it would be most natural to model arbitrary and unpredictable interactions between many different entities. How common is multiple dispatch in practice in your codebase?