HNHacker News
TopNewBestAskShowJobs

Shinmera

598 karma · joined December 5, 2014

https://shinmera.com
submissionscomments
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
I hope the fact that game code is very hacked together won't deter you :)
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
My mind about this has always been in a couple directions, but none of them point towards not open sourcing things. So, for one, I very heavily doubt that anyone would take this source code in Lisp of all things and release a product that could actually damage my sales. And even if they did so history shows that there's very likely practically nothing I could do about it. I'd just have to be upset about it happening, with no real chance of repercussion.

It is far more important to me to show confidence in my vision and to let other people learn from what I've done. In my view a lot more games should be open source, because far too much of the process is hidden behind mysticism, with far too many people wasting a ton of time reinventing things from scratch.

And, well, finally, I'd ultimately like to make everything I do available for free, anyhow. The only reason I'm selling Kandria is because there is no UBI in this country and probably won't be for many years to come, so I have to fund things somehow.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks!
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thank you very much!
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
SBCL. Yes. OpenGL, using GLFW for the context wrangling.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Not a dumb question at all.

You need a full copy of the game from Steam or somewhere else to hack the game. You can get the source code here: https://github.com/shirakumo/kandria and hack on it that way.

You can also just look at the asset files in the install folder and mess around with those. Nothing's encrypted.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Sorry, my brain is fried. It's already available for Linux on itch and Steam is what I meant to say.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
All that steam requires is a native executable to launch, and that you load their steamworks library and initialise it, which should be one or two FFI calls.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
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.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
It's already available for GOG. You can get it on Steam, Itch, or on our website. All versions are DRM free.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
There's also https://github.com/Shinmera/talks/blob/master/gic2021-highly... which gives a broad overview for non-lispers.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Yeah I know about GOAL and OpenGOAL and all that.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks! I hope you have a good time with it.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
It definitely has Knytt influences in there and features a lot of exploration, but there are a lot more platforming challenges especially in the later sections.

There are accessibility options that let you toggle infinite dashes on and off at any time, which lets you bypass most of the challenges pretty easily should you get frustrated.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thank you :)
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks! Hope you enjoy it!
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Yeah, it started out with just Celeste mechanics before everything else happened.

Thanks!

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Common Lisp is pretty cool, and to my knowledge this is the first major game title using it that is actually released.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Hmmm. 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/ 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.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks!
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks, hope you have a good time with it!
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
I want to investigate Switch support more deeply this year, and we have a potential way to do it. However, consoles are difficult due to their restrictive nature, especially regarding JIT and other techniques like signals and interrupts, which are important for many Lisp implementations.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
The source code for the engine, Trial, and the game, Kandria, are both open and on our GitHub under Shirakumo.
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
I use Emacs, Slime, SBCL, yes. Since it uses SBCL, game code is compiled to native machine code for each supported platform and architecture.

You can find more info on the dev process here: https://reader.tymoon.eu/article/413 And the source code for the engine, Trial, and the game, Kandria, are both on our GitHub under Shirakumo.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thank you! I hope you enjoy playing it!
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks! I wrote about exactly that a while ago: https://reader.tymoon.eu/article/413
Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
There's a lot of aspects that are extremely Lispy. The best example is our dialogue scripting language, Speechless: https://shirakumo.github.io/speechless

You can run arbitrary lisp snippets to form conditions, branching, and effects in the game. This makes integration and extension very easy, and I don't have to constantly extend some special purpose scripting API to expose new bits.

The heavy use of CLOS is another good example, and of course the interactive development. Shaders, assets, etc can be reloaded while the game is running, not to mention all game behaviour.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
The source code for the engine, Trial, and the game, Kandria, are both on our GitHub under Shirakumo. It's all zlib licensed.

The code base isn't great for learning though, I'd say. Game development usually does not leave the time to architect things neatly, rewrite large chunks, or document stuff deeply.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
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 GitHub under Shirakumo.

Shinmera··on Show HN: Kandria, an action RPG made in Common Lisp, is now out
Thanks! Hope you enjoy playing it on the Deck! :)
← PreviousPage 2 of 3Next →