4 ms·
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
by agentultra 4y ago
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?
- trenchgun 4y agoWhat was the Haskell game if you dont mind me asking?
- agentultra 4y agohttps://www.reddit.com/r/haskell/comments/z98ubk/defect_process_full_haskell_source_62k_loc_action/?utm_source=share&utm_medium=ios_app&utm_name=iossmf https://www.reddit.com/r/haskell/comments/z98ubk/defect_proc...
- Shinmera 4y agoI 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 GitHub under Shirakumo.
- agentultra 4y agoNice! Thanks for sharing! Update Bought a copy, definitely my jam. Played on the steam deck, noticed that the first time I used an action (move, jump, attack) there was a noticeable pause/stutter but has been smooth as butter afterwards. PS: are you able to talk about the steam integration? I assume it's a C or C++ library of sorts and fairly straight-forward to extend; curious if you plan on releasing to another platform if it's possible to keep similar "achievments." Also, kudos on the accessibility settings; changing damage and game speed, etc! Nice.
- Shinmera 4y agoHmmm. I might have to take another look at optimisation for the deck, then. Sure. I use the cl-steamworks library I wrote. https://shinmera.github.io/cl-steamworks/ https://shinmera.github.io/cl-steamworks/ Their API frankly sucks and getting the integration going was a big pain. However, if all you want is the minimum, like achievos, you can omit all of that and just do a couple C calls. The engine has abstracted support for achievements and such integrations, so it is possible to integrate with other platforms, too, should we ever release on GOG or EGS.
- Annatar 4y ago[dead]
- int_19h 4y agoI 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?
- Shinmera 4y agoVery common.