After over two years and 1700 commits, the Nu Game Engine (the world's first practical pure functional game engine) reaches v1.0

The link - Nu Game Engine Release v1.0.0.0

The spiel -

Over two years in the making, and 1700 commits, the world's first practical, pure functional game engine, the Nu Game Engine, releases v1.0.0.0!

This release offer a greater guarantee of API stability than could be offered before.

I am hoping that Nu Game Engine will usher us toward an era of sustainable game development, because developer's lives matter, too! And if a game is torture to develop, its play experience isn't going to reach its potential.

Now that the days of being able to statically lay out the memory for an entire game are gone, it's time for developers to consider an alternative lifestyle where dynamism is a tool to be leveraged rather than eschewed.

Nu proves the efficacy and efficiency of game development with a pure functional API. Nu proves that hardcore optimizations like data-oriented physics engines, mutable spatial trees, and other computer-sympathetic data structures can be used transparently underneath a purely functional API.

Further, Nu proves that declarative programming style is also viable and sufficiently efficient for modern game development - Iterative Functional Reactive Programming with the Nu Game Engine

Whether or not people adopt Nu, I hope to at least offer it as proof that the prejudice against dynamism and functional programming in games at a high level is obsolete. And for those who don't believe, it's time to break out your profilers!

It's time for game developers to start having as much fun as we did so many years ago before we got run over by unbounded complexity!

@Moderator: Feel free to post to front page if deemed appropriate.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Isn't ifrp similar to

Isn't ifrp similar to flapjax/FrTime (aka less pure)? There isn't much to go on in the doc.

Looks to be, ya. Altho no at the same time,

Looks to be, ya. Altho no at the same time, Nu is literally purely functional in this regard. It just doesn't use continuous time.

Sorry the documentation is so sparse. I really need to develop the semantics more explicitly if only to better communicate it to others. Until then, I'm afraid one would need to delve at into the demo game code.

So if no continuous time,

So if no continuous time, then like Elm?

Similar to Elm, yes, but

Similar to Elm, yes, but again no, since Elm seems to be a bit higher order.

At some point, someone is going to have to try to categorize all these FRP flavors :)

Evan has already tried that

Evan has already tried that in his last presentation (splash/Strangeloop).


Something I've always

Something I've always wondered, how does Elm handle dynamic collections?

You have to manage them

You have to manage them yourself.

Outside of Courtney's work,

Ah, outside of Courtney's work, is that typical?

I'm not familiar with

I'm not familiar with Courtney's work, but iirc in Flapjax and FranTk there are time varying collections.

He missed some, though...

...I note this because he missed the flavor I advocate, of course. :)