TechBrew

Informative geekery on software and technology

JourneyMap : Adventures in modding for Minecraft

October 19th, 2011 by

Minecraft is the ultimate rags-to-riches stories for game developers, and is a phenomenon unto itself.    I personally enjoy playing it because of the creative aspects, and its also something that my 6th-grader and I can play without having to worry about ESRB ratings.

A successful game written in Java?  No kidding?

But what particularly interests me in Minecraft is that it is written in Java.   (That’s a rare thing in the gaming world.  Off the top of my head, Eve Online is the only other successful game I can think of with Java in the tech stack.)  So naturally the first thing I wanted to know is whether there was a plug-in architecture for Minecraft.     As it turns out: No.   But that hasn’t deterred anyone, and there are masses of people writing their own plug-ins by decompiling (and deobfuscating) the source code and figuring it out the hard way.

I’m all for figuring things out, but I’m keen to stand on the shoulders of giants.  So when I decided I wanted to write a Minecraft mod, I started with the Minecraft Coder Pack.   MCP provides a nifty set of scripts and Eclipse integration that will decompile and deobfuscate the Minecraft jar, let you run the Minecraft client and server in a debugger, and recompile/reobfuscate whatever mods/additions you’ve made.  Very cool, and I wouldn’t want to mod Minecraft any other way.   I also ended up using ModLoader for the runtime hooks, since it lets you avoid the “unzip and stuff into the minecraft.jar” nightmare most mods require.

The joy in the journey

So now to the point:  Why did I want to write a mod in the first place?  I wanted a better map.

JourneyMap in Daylight Mode

Exploring is fun, but getting lost can get old. Minecraft has an in-game map that is neither terribly convenient nor permanent.  You die and the map dies with you.   There are several in-game map mods (like Zan’s Minimap) that improve the convenience factor,  but like the standard map, you can only see where you are, not where you’ve been.

Then there are various Minecraft mapper tools (like Tectonicus) that will generate really nice maps for you, but only as an offline process.  (A friend tried to regenerate a Tectonicus map for our server on a regular basis, but it took several hours a pop and many GB of diskspace, so the map was never current.)

What I really wanted was a real-time-generated map that I could use in a web browser.  One that showed me where I am, but especially in multi-player worlds – one that showed me where I’ve been before. I also needed an excuse to get up to speed on HTML5 and JQuery, I have to admit.  And thus JourneyMap was born.  I’m pretty happy with the results so far, so I’ve released the first public beta as JourneyMap 0.7.2 for Minecraft 1.8.1.

Here are some links if you’re interested in checking it out:

What is JourneyMap? | Requirements | Download & Install | How to Use | User Forum ]

Roll the credits

I ended up using some great technologies along the way, so I want to give them props here:

I also want to extend my thanks and acknowledgments:
Update (October 28, 2011) :
JourneyMap 0.8.0 is available, but I’ve also got a sneak peak on JM 0.9.0 posted.   Contour lines, anyone?
Trackback URI | Tags: Games

2 responses so far ↓

  • 1 JourneyMap 0.9.0 Sneak Peek: Topograph / Contour Lines // Oct 28, 2011 at 8:31 am

    [...] Here’s a followup to my initial post on JourneyMap: [...]

  • 2 Gary // Nov 2, 2011 at 11:40 pm

    Good work developing in JQuery to run on Glassfish – I like community-accessible development platforms like that, and find them to be very developer-friendly. I’ve been successfully keeping Minecraft at bay for a few months now, but with its presence heading towards XBox360, I can feel the resolve beginning to crumble…

Leave a Comment