To help people with their graphical endeavours in Clojure, I created a new library Imagez which provided a set of handy image processing functions.
Neural Network Visualisation
April 10, 2013 at 5:44 am (machine-learning)
Been working on some improved Neural Network visualisation in Clojure.
Here’s a view of a trained 4-layer classifier. The bright yellow dot at the top indicates that the network has classified this particular training case into the 4th class.
Game development in Clojure : Alchemy 7DRL post-mortem
March 21, 2013 at 5:26 am (Uncategorized)
Last week I joined the “7 Day Roguelike Challenge” and wrote the game Alchemy. The goals I set myself were.
- Complete a playable roguelike game in 7 days
- Learn more about Clojure!
- Share some of my experiences
Having successfully completed the first two goals, this is my attempt to deliver on the last point. In this (somewhat extended) post I’m going to describe my experiences using Clojure for the 7DRL challenge – with discussion how to get the most out of Clojure for game development.
Alchemy Day 7: Completion!
March 18, 2013 at 7:40 am (Uncategorized)
Final day of coding on Alchemy!
It was a bit of a scramble to bring everything together and tune the gameplay, but it all somehow worked out as a finished game in the end.
You can download the final .jar file here:
- alchemy.jar (final 7DRL version)
- alchemy-latest.jar (post 7DRL version – with some fixes / UI improvements)
And then run it in the usual way (either double click it, or do “java -jar alchemy.jar”). You need Java 1.6 or higher.
Alchemy Day 6: Alchemical wonders
March 17, 2013 at 11:00 am (Uncategorized)
Today I focused on a key gameplay element: the crafting and use of potions
Potions offer a lot of interesting gameplay:
- You can drink them for (hopefully!) positive effects
- You can throw them at monsters
- You can use an analysis lab (pictures) to identify a potion and determine what ingredients a potion requires. This costs you a potion though…
- You can create them if you find the right ingredients and know the recipe. But ingredients are scarce! So you need to plan with care….
Alchemy Day 5: Dungeon generation
March 17, 2013 at 2:12 am (Uncategorized)
Today was about getting dungeon generation working:
I was going for a fairly traditional Rogue-style effect in my dungeons: Rooms connected by twisty corridors. I’m quite pleased with how it is starting to look.
My algorithm is roughly:
– Recursively sub-divide the dungeon into zones, BSP-style
– At each division, add one or two connection points between the zones. The connection points will be either doors or corridors
– At the lowest level, build either a specific room with the connections turned into doors or a set of twist passages
I’m still working on room decoration: I maintain a list of rooms and after the basic level is laid out I run a “decorate” function that adds items of interest, monsters and other scenery to specific rooms.
Alchemy Day 4: Scary monsters and nice sprites
March 16, 2013 at 7:56 am (Uncategorized)
Today I worked mainly on monsters and combat.
Lots of nice features:
- Hits can cause effects to be added to the target, e.g. poisoning from snake bites. The time spent implementing the effect system has really paid off here!
- Various factors affect combat: you can dodge blows (with agility), block blows (with your weapon/ shield) and score critical hits if you are skilful enough
- Support for different weapons / attack types is implemented though I’m not sure if I will have time to make all the weapon items and related functionality
- Events can be trigger when something dies – currently just using this to create random item drops
Would like to write more but have more coding to do…. another update soon!
Alchemy Day 3: Of monsters, items and effects
March 14, 2013 at 12:30 pm (Uncategorized)
Today was another day of good progress. The race against time is definitely on – I’ve spent probably too much time on the core engine, which is pretty cool but probably overkill for a 7DRL.
Nevertheless, I’m feeling optimistic that I will be able to finish a working game in time, although it might no be possible to get in all the advanced features I would like.

As you can see, it is now starting to look like a proper Roguelike. I’ve decided to go for a fairly “classic” look.
Alchemy Day 2: As far as the eye can see
March 13, 2013 at 12:59 am (Uncategorized)
Day 2 of Alchemy was tough – trying to snatch some hours of game coding in between “real work”. Nevertheless still managed to make some good progress.
As you can see, it’s starting to look a bit more like a real Roguelike. But equally importantly, things are starting to come together under the hood.
Alchemy Day 1: A room with a view
March 12, 2013 at 1:42 am (Uncategorized)
I’m entering this year’s 7 day Roguelike challenge using Clojure. It’s a fun challenge to write a complete game in just 7 days and hopefully I will learn some new Clojure tricks doing so.
My game is “Alchemy”, where you play as a brave young Alchemist who must descend into a dangerous dungeon to obtain the Philosopher’s Stone. Roguelikes, as you can see, are characterised (among other things) by the level of originality in their story lines.
Here’s my progress report from day 1







