clojure-gamedev

theeternalpulse 2017-09-12T20:01:17.000559Z

What's the leading clojure game development platform would you say?

theeternalpulse 2017-09-12T20:01:34.000745Z

I'm using quil to prototype out some stuff but is there something more fully featured?

the2bears 2017-09-12T20:05:09.000370Z

https://github.com/oakes/play-clj

the2bears 2017-09-12T20:05:13.000165Z

https://github.com/oakes/play-cljs

the2bears 2017-09-12T20:06:32.000230Z

I haven't used the 'cljs' version, but I used a similar library to LibGDX w/Java in the past and have so far quite enjoyed using the first link posted.

the2bears 2017-09-12T20:06:48.000711Z

My work in progress above uses play-clj.

theeternalpulse 2017-09-12T20:08:48.000471Z

oh cool. thanks.

theeternalpulse 2017-09-12T20:09:34.000592Z

quil is also based on processing

the2bears 2017-09-12T20:12:05.000622Z

I used quil once, to provide an example of generating a 'pixel-ship'. Incidentally, they're from Dave Bollinger's work, which has sadly left the web. He used 'processing' a lot.

theeternalpulse 2017-09-12T20:16:08.000092Z

do you organize it any different to separate the draw phase from the update state phase?

the2bears 2017-09-12T20:31:11.000546Z

organize what different from what? 🙂

the2bears 2017-09-12T20:31:27.000707Z

ambiguous references 😉

the2bears 2017-09-12T20:32:34.000300Z

play-clj has a very explicit life cycle model

the2bears 2017-09-12T20:32:48.000550Z

I don't know/remember enough about quil

the2bears 2017-09-12T20:32:56.000513Z

if those are the two things you refer to.

theeternalpulse 2017-09-12T20:37:12.000301Z

sorry, yeah I'm very vague when I want specific answers lol.

theeternalpulse 2017-09-12T20:37:23.000558Z

so I saw that you are updating the state in the main draw function in play-clj

theeternalpulse 2017-09-12T20:37:38.000363Z

whereas quil has a setup hook that has a function that is the state reducer

theeternalpulse 2017-09-12T20:37:46.000158Z

while the main is just a consumer

theeternalpulse 2017-09-12T20:38:14.000041Z

and passes the last state into it. It's more functional rather than updating an atom

the2bears 2017-09-12T20:38:30.000262Z

It's not really a "main draw" function in play-clj

the2bears 2017-09-12T20:38:35.000134Z

it's the main game loop

the2bears 2017-09-12T20:38:53.000049Z

so you really should update all things in there each time, ending (usually) with a render

the2bears 2017-09-12T20:40:04.000422Z

but it does go by :on-render so I can see why you're asking

theeternalpulse 2017-09-12T20:40:22.000529Z

yeah, I need to look into it when I get home

the2bears 2017-09-12T20:40:24.000413Z

essentially that's the function that will be called each game loop

theeternalpulse 2017-09-12T20:42:10.000178Z

ah

theeternalpulse 2017-09-12T20:42:52.000107Z

cool thanks for clarification. I was going to look into arcadia but the whole Unity on linux thing I couldn't get working

theeternalpulse 2017-09-12T20:43:06.000301Z

but this seems like a good start

the2bears 2017-09-12T20:45:17.000675Z

Yeah, it's working quite well for the old-school 2d arcade things I like to do. I've never tried 3d, not likely to either 🙂

theeternalpulse 2017-09-12T20:57:53.000519Z

yeah, the barrier to 3d I'd like to at least mix with 2d. have an idea for a mario 3d styled game dungeon roguelike