Fork me on GitHub
#clojure-gamedev
<
2020-02-05
>
Kelsey Sorrels16:02:34

Hi @zygon4 yes. I work on one as a hobby in Clojure.

zygon418:02:18

Fun! Do you use a specific framework or all custom? Is it open source?

zygon418:02:36

github is a small world, turns out

zygon418:02:47

you wrote a ton of code for this game

Kelsey Sorrels19:02:31

Haha for sure! Some of the outputs have been a terminal emulator library for Clojure(zaffre), a REXPaint reader/writer(rockpick), and some color manipulation(tinter).

Kelsey Sorrels19:02:01

I'm kind of in a weird position because I've been doing hobby solo Clojure development for years without any proper feedback system in place. So take the code with a big grain of salt. There are likely idiosyncracies that I'm not aware of.

☝️ 4
Kelsey Sorrels19:02:13

I'm interested in your plans. Are you starting on a new roguelike or chipping away at an existing project?

zygon421:02:24

I've written some RL code, all in Java. This would be a fresh project in Clojure. Part of the motivation is to rehash my Clojure chops, and part because I enjoy Clojure.

zygon421:02:54

Modelling the data isn't that bad, but the core game loop, keyboard input, threading models, which UI framework, etc. are still big questions.

zygon421:02:17

i could go back and use libGDX again with interop

zygon421:02:30

but i'd be just as interested in using something else

Kelsey Sorrels21:02:55

I used LWJGL+glfw+stb_truetype+yoga and there is quite a bit of code which makes that happen. Kind of fun to write, but challenging to make performant.

Kelsey Sorrels21:02:22

One of the better ideas was writing a little component+layout system based on yoga. If I squint hard enough it looks almost like writing regular React.

zygon422:02:28

my first RL was java+libGDX and it was an open world RL -fully open - and oh boy the performance is tricky.

zygon422:02:53

i was also trying for as much immutable data as possible, which sadly only goes so far

Kelsey Sorrels22:02:00

Did you have an alloc-less render loop? That's something I'm struggling with right now. If it's something to even strive towards.

zygon422:02:46

oh i doubt it

zygon422:02:12

the render loop was hard to clean up, there was a lot of copying initially

Kelsey Sorrels22:02:20

Happen to have the code on github or elsewhere? I'd love to take a look.