Thursday, 2 February 2012


It wasn't pretty, but Leiningen is now generating a large .jar containing almost everything required to run a chunk of stuff excised from my "random clojure braindump" folder. So now I can in theory show my tiny vestigal 3D roguelike/turn-based Dungeon Master/hex-based Legend of Grimrock clone to people! People that don't have Clojure installed!

So, yay for progress! It's not pretty yet, but that's... mostly a case of sorting out my miniature asset pipeline: exporting from Blender in a slightly richer format than .obj, generating tangent and bitangent vertex data, normal and displacement maps, and associating this all together with diffuse and specular info. Some gruntwork to finish recreating the deferred rendering setup in clojure. Mostly simple stuff, although there is a lot of it.

Enough of that, random question time:

How do people approach cross-project hacking at a small scale? In this case, I just grabbed my nascent main file, vector math and rendering files, and a bunch of utility stuff and copied it into an empty project directory, but I would really like to bounce the data back and forth between hacking at random ideas and this (theoretically) slightly more stable project...

I suppose nested Mercurial repositories would be one approach, split all the 'engine' crap into a subfolder with its own repo and use that to keep everything in sync. Anyone have any experience with this approach? I guess using the magical .hgignore file to elide the 'engine' stuff from the main project repo would work in theory.


Baishampayan said...


Does leiningen's checkout dependencies help you in any way?

Some examples here -

The FAQ mentions them as well.

Anonymous said...

That's a very pretty screenshot of a dungeon you've got there. I particularly like the freestanding wall appearance and the out-of-phase columns - it makes them look slightly ominous, somehow. The shading of inaccessible hexes also works nicely.

Snut said...

Baishampayan, I was hoping to avoid promoting the hackery to a full-blown project of its own, but maybe that's the best solution. Checkout dependencies do look like a reasonable solution for quick iteration in that case.

Fhtagn, I know yer just biased ::grin::

The columns are out of phase because I rotated the hex grid to match the ascii representation and didn't bother to update rendering of pillars. Fix it later, I shall.