You're looking at Less Wrong's discussion board. This includes all posts, including those that haven't been promoted to the front page yet. For more information, see About Less Wrong.

lmm comments on June 2014 Media Thread - Less Wrong Discussion

5 Post author: ArisKatsaris 01 June 2014 03:04PM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (95)

You are viewing a single comment's thread. Show more comments above.

Comment author: ShardPhoenix 02 June 2014 01:47:33AM *  3 points [-]

Just a matter of time. We're already a long way from assembler, and the indie games represent the low end which will gradually eat the high end's lunch.

It might be possible to move on with a "sufficiently advanced compiler" for Haskell or the like, but barring that I think game devs for performance-intensive games will still want more precise control over memory usage. I predict we'll see widespread use of "functional C++" (eg Rust, or C++ 11's functional features) before "low-level Haskell" (eg ???).

Given Haskell's excellent concurrency support, I'm not sure that's true.

As far as I know Haskell's performance isn't considered predictable/reliable (mainly due to GC and lazy evaluation) enough for games. If even multi-threaded C++ is still too slow for what you want to do (eg have 10000 people on one server in real-time), Haskell isn't going help.

At one point Epic was looking at Haskell, but recently they've actually gone the other way, abandoning embedded scripting languages in the newest version of the Unreal engine in favour of doing everything in C++ (although I think that was as much about consistency as performance).

(By the way, as a Scala dev I'd personally rather write Haskell than C++, and C++ is one of the things keeping me out of the gaming industry, but personally I'm not optimistic).

Comment author: lmm 02 June 2014 07:40:00AM 1 point [-]

I've worked with videoconferencing software written in Haskell. Realtime performance is certainly possible, though whether the industry will accept that is another question.

Comment author: 4hodmt 02 June 2014 08:59:31PM 1 point [-]

Videoconferencing uses fairly consistent processing/memory over time. The load on the garbage collector has low variance so it can be run at regular inteverals while maintaining very high probability that the software will meet the next frame time. Games have more variable GC load, so it's more difficult to guarantee no missed frames without reserving an unacceptably high time for garbage collection.