Live data from Hacker News

Core: an experimental new way to write videogames

github.com

11–20 of 224 posts

Re: Core: an experimental new way to write videogames

#13
post #11

I love Clojure, but isn't a functional language with immutable data structures an odd choice for developing a video game?

I find it very natural to work with because clojure is based on the JVM so the project uses libgdx under the hood (deploys to all platforms, huge library) and I can use lisp for everything else to do basically anything.

Combined with clojures way of handling immutable datastructures so well & the excellent protocol system (https://www.freshcodeit.com/blog/clojure-protocols-and-the-e...) I could separate the whole game easily into separate components.

Re: Core: an experimental new way to write videogames

#14
post #12
post #11

I love Clojure, but isn't a functional language with immutable data structures an odd choice for developing a video game?

High performance real-time games it is questionable. Any genre that is more static turn based can be a great boon.

Check it out, it is handling hundreds of entities at >>60 FPS. And I still did not do much performance optimization (there are still many lazy seqs around and unoptimized code).

Also most of the sprite rendering is the main problem, which an atlas texture could also improve even more. (Right now all creature animations are separate texture files).

And you can always step down a level to java if the need arises!

Re: Core: an experimental new way to write videogames

#15
post #11

I love Clojure, but isn't a functional language with immutable data structures an odd choice for developing a video game?

It's not that weird -- your next AA game or AAA game will probably not use it, but in React (reducer, or Redux), very interactive stuff, immutability is often seen.

Also Clojure has better performance prospects than Ruby and Python, both have seen "real" usage in commercial indie games.

Re: Core: an experimental new way to write videogames

#17
post #11

I love Clojure, but isn't a functional language with immutable data structures an odd choice for developing a video game?

I find it very natural to work with because clojure is based on the JVM so the project uses libgdx under the hood (deploys to all platforms, huge library) and I can use lisp for everything else to do basically anything. Combined with clojures way of handling immutable datastructures so well & the excellent protocol system ( https://www.freshcodeit.com/blog/clojure-protocols-and-the-e... ) I could separate the whole g…

Sorry, but I feel like your comment does not actually address my concern of whether having to deal with immutable data structures in a functional way would lend itself especially well to video games.

Of course, the Clojure approach is great for a lot of use cases, but video games traditionally do a lot of mutable changes to components. That doesn't mean, of course, that it cannot be done any other way, but it would certainly be a different approach.

Re: Core: an experimental new way to write videogames

#18
post #10
post #9

Earlier quoted context omitted.

But I don't know exactly what this thing is. I have coded like crazy on it and created a new component system & datomic-like transaction-data like effect system, so it is more than just an RPG maker. Its a whole new way to write games. For example side effects are just vectors of `[:tx/foo param]`.

Then maybe something more generic sounding like ClojEngine? Naming is hard lol. Core is fine, but maybe add one more word to it, because googling just "Core" to find your repo is difficult. But I highly recommend changing the capitalization of Maker to maker to avoid being mixed up with the product RPG Maker. Adding "an" helps signal that it's a descriptor instead of a name too. Core: An RPG maker and engine for Cloj…

GamesCore - generic but serviceable name.

CrystalCore - because RPGs must have some sort of magic crystal, it's the law

CreataCore - why limit the name to RPG theme in case it develops into something larger?

Just a few quick name suggestions for OP.

Re: Core: an experimental new way to write videogames

#19
post #17

Earlier quoted context omitted.

I find it very natural to work with because clojure is based on the JVM so the project uses libgdx under the hood (deploys to all platforms, huge library) and I can use lisp for everything else to do basically anything. Combined with clojures way of handling immutable datastructures so well & the excellent protocol system ( https://www.freshcodeit.com/blog/clojure-protocols-and-the-e... ) I could separate the whole g…

Sorry, but I feel like your comment does not actually address my concern of whether having to deal with immutable data structures in a functional way would lend itself especially well to video games. Of course, the Clojure approach is great for a lot of use cases, but video games traditionally do a lot of mutable changes to components. That doesn't mean, of course, that it cannot be done any other way, but it would c…

I don't understand your concern. Would you mind phrasing it differently?

Re: Core: an experimental new way to write videogames

#20
post #17

Earlier quoted context omitted.

I find it very natural to work with because clojure is based on the JVM so the project uses libgdx under the hood (deploys to all platforms, huge library) and I can use lisp for everything else to do basically anything. Combined with clojures way of handling immutable datastructures so well & the excellent protocol system ( https://www.freshcodeit.com/blog/clojure-protocols-and-the-e... ) I could separate the whole g…

Sorry, but I feel like your comment does not actually address my concern of whether having to deal with immutable data structures in a functional way would lend itself especially well to video games. Of course, the Clojure approach is great for a lot of use cases, but video games traditionally do a lot of mutable changes to components. That doesn't mean, of course, that it cannot be done any other way, but it would c…

Oh, and allow me to add: I'm not criticizing, I'm just putting a possible concern out there for discussion. That's why my original post was worded as a question.
Post reply on HN