News for hackers. Stuff that matters.

marcingas

Re:Clojure Hosted on Go on Thursday June 18, 2026 @06:20AM (#48583303)
https://github.com/nooga/let-go has been making huge leaps in terms of perf and interop since its launch.
Thanks! Happy that you've noticed :)
Thank you for playing!

1/2. There are no docs, in fact, the system is not really fleshed out yet. The core idea is that these runes really stand for lispy threading macro that gets evaluated by the game engine. So for instance `(magic-> fire)` sets the default target (enemy you hit, coordinates you shoot with the bow etc.) of action on fire, `(magic-> (area 2) fire)` is the same but here, the area rune expands the target into a circular zone. `(magic-> (damage 2) self (heal 2))` would damage the target, reset the target to yourself and heal you. The entire world state is chained through these expressions so it should enable some insane spells to be made: travel back in time, swap minds with a door, modify creatures ai etc.

Try looking at the runic weapons you find, they show the spell syntax in the inventory.

3. These are damage ranges.

re gamma, key binds and q: thanks for the feedback, I'll look into improving these.

Good point! Thanks.
Interesting idea... maybe it could send terminal bell or tint the screen red at low health?
I don't have a numpad so it did not occur to me to add diagonals :D

Good feedback though, I'll add it. Thanks to your 15 year old!

This totally is a bug. Was this recently? I thought I fixed this in WASM version.
I'd say don't immediately go into making an ECS and don't sweat about perf too much. You can totally do this in any programming language. This is a good talk about roguelike software design in general: https://www.youtube.com/watch?v=JxI3Eu5DPwE

Tbh the whole channel is a gold mine of inspiration. Also check: https://discord.gg/bgd2GrhR

I wouldn't even dare posting this to a game jam... or HN at this point but someone posted it for me, welp.
Love it :D
FWIW it's a good fuzz test for the interpreter ;)
Yeah that was it, the let-go stdlib changed.
This was caused by a stdlib bug in the language, I bypassed it :D
I think I fixed it!
I see your point but I like to think it's not as sloppy as you'd expect. This one is written in a programming language I've been making since 2021 and it's not a direct Brogue clone despite its looks.
Agree, will patch this.
Definitely a bug. I'll look into this at some point. Please note that this is not a finished game by any means. If anyone asked I'd call it a tech demo at this point :)
Thanks! Please check it out and leave me a star if you like it :)
Brogue is insanely well balanced and ingeniously designed. XsofY is a mere tribute ;)
Noita was another inspiartion when making this - the inverted power curve is real! Start squishy, become a god, die anyway.
I know, this is intentional :)

I took things I like from Brogue and added my own spin on it.

yeah, this is a Brogue-like. I love Brogue and have been inspired by it. XsofY is not an exact clone but I've studied Brogue C source heavily when making this.

I'll link to Brogue in the README :)

Author here! Thanks for posting! This game is written in a Clojure-like programming language I've made. So this is a (B)rogue-like in a Clojure-like :)

What I think is interesting is that this game computes the entire world state each tick and does so efficiently thanks to persistent data structures.

To anyone who dared to fire it up: thank you for playing, I'm curious what you think!

Actually, look what I just found https://github.com/tcard/gojure 12 years!
Changing name to Gojure now would only add to the confusion :D
I laughed, audibly :D
Love the demo for 9social! I'm not a user myself but I'm always inspired by the Plan 9 ways :)
I started publishing amd64 and arm (32) binaries for Plan 9 in GH releases. I tested the amd64 one on 9front and everything seems to work. The CLI is not very Plan9-y but I'm happy to make the port more native at some point :)
I think Gloat/Glojure has the best hosted runtime story because of its AOT to Go src pipeline - you can grab anything Go at compile time. OTOH let-go can roundtrip any Go value including structs, functions and channels but it does not allow pulling arbitrary go libs without wrapping them up first - they'd need to be built into the runtime for this.

Older »