

Making an RPG in Clojure - uggedal
http://briancarper.net/blog/making-an-rpg-in-clojure-part-one-of-many

======
swannodette
Great stuff. I'd just like to add that working with Clojure+OpenGL has gotten
a lot simpler with Zach Tellman's Penumbra,
<http://wiki.github.com/ztellman/penumbra/>. Penumbra is well integrated with
Leiningen so getting an OpenGL app up and running now takes a matter of
minutes if not seconds.

I've been porting the Nehe tutorials to Penumbra and it's been ridiculously
straightforward. Being able to update OpenGL on the fly via REPL is also
really great fun, especially if you're used to the slow and tedious nature of
OpenGL programming with pretty much everything else,
<http://github.com/swannodette/clj-nehe>.

~~~
prospero
I've just posted an example of using Penumbra to create a simple game:
<http://news.ycombinator.com/item?id=1141556>

------
ErrantX
This is one of the best articles I've read for a while. Really interesting
insights into the writers thought process while coding.

------
pragmatic
I've played around with making a strategy game in Java/Scala. It was
surprisingly easy to work with. I didn't take it too far but performance was
adequate (for a 2D, turned based game).

Anyone with experience making a "real" game in Java. I know
<http://www.freecol.org/> is built in Java.

Just wonder why it's not more popular for indie/casual games. Does performance
degrade that much?

I'm do mostly C# but I wanted to try the JVM for cross platform deployment.

~~~
Zarkonnen
I'm writing a Java-based game ( plug:
<http://www.metalbeetle.com/spaceexploration/> ). Performance can be very
tricky if you want a good screen resolution, and there's lots of gotchas, like
having to make sure that you force your sprites into the right colour space
for your screen.

On the plus side you get a reasonably fast, garbage-collected language to
write your game in.

~~~
tmountain
Looks great! I'll definitely be giving this a try.

------
zandorg
Also useful is 'line of sight' algorithm so the character can 'see'.
Basically, you cast out rays of light (in 8 directions or 360 if you want to
be really accurate), and when the light beam hits a solid object (a wall, for
instance), you stop casting the ray.

All the non-solid objects encountered (eg, grass, tiles) are noted as
'visible'.

What you get is that the character (NPC or human) can see through windows and
open spaces, but not through walls. Re-scan every time they move.

------
andrewbrown
I like how he said that when the code didn't suck he would release the source,
so really we'll never get that code. Wish he'd put it on a git so others could
just commit to it.

