I've written a game in Clojure (http://github.com/ShardPhoenix/SAGame) and it wasn't that hard, despite it being my first serious Clojure (or Lisp in general) project (also note that this means that the code isn't ideally concise or idiomatic). The main datastructure is all immutable. It wasn't always immediately obvious how to update everything but by using a tree of update functions that mirrored the data itself, it wasn't a big problem. I probably should have used a mutable set for sounds though, and perhaps things might have been trickier if I'd had more complex interactions.
I also converted the project to Java for Android (http://github.com/ShardPhoenix/Minotaur), retaining mostly the same structure. Apart from being about 3x more verbose, it was interesting in that mutability made some parts easier to implement, but also led to bugs that I'd never had in the original.
I also converted the project to Java for Android (http://github.com/ShardPhoenix/Minotaur), retaining mostly the same structure. Apart from being about 3x more verbose, it was interesting in that mutability made some parts easier to implement, but also led to bugs that I'd never had in the original.