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) :
Trackback URI | Tags: Games
(April 26, 2010: Updated with newest features)
A few weeks ago in Colorado Springs there was a fuel tanker crash on the I-25 Interstate, spilling thousands of gallons of fuel and closing the Interstate for over 5 hours. Traffic patterns were a complete mess as side-roads became major thoroughfares. As I drove home from work, I found myself wishing I had access to springscam.markwoodman.com on my iPhone. But I built that traffic-cam site in Flex (Flash), so that wasn’t an option.
That led me down the path on how to build iPhone faux-apps with iWebKit, and within a few hours I had a functioning version that worked pretty well and looked pretty good.
If you have an iPhone, check out iSpringsCam.markwoodman.com . Here’s a run-down of the features:
- Use iSpringsCam like an App
- Open iSpringsCam Home screen
- Press (+) button in Safari
- Press “Add to Home Screen”
- iSpringsCam will now run full-screen (no browser bar)
- Main Screen
- Use the “All on Map” to get all camera markers on a live Google Map with I-25 traffic conditions
- Enter part of a street name in the filter field, and the list will display only the matching camera names
- Select one of the cameras to open up the Single Camera View
- Single Camera View
- You’ll see the latest image from that camera and a static map image of the camera location
- Rotate your iPhone to fill your screen with the camera image
- The camera image will auto-refresh once per minute
- To manually refresh the camera image, tap the image or the refresh button
- Touch the “Live Map” button (or the map image) to get a live Google Map with the camera’s image and traffic conditions on I-25
- Google Map View (with current traffic conditions)
- Pinch and expand the map to zoom in or out
- Touch a marker to see that camera’s image in a balloon
- Touch the “X” on the balloon to close it
- Touch the camera image in the balloon to open the single-camera view
If you don’t have an iPhone, here are some screenshots:
Trackback URI | Tags: News
Making websites that are iPhone-friendly is easy enough, but I recently wanted to make a site that felt like a real iPhone app. I don’t own a Mac, so building a native iPhone app wasn’t an option.

I turned to iWebKit 5.0, a lightweight DHTML toolkit for making websites that look “native” on the iPhone. It is a collection of CSS and Javascript files, a few small images, and a tutorial PDF on how to use them. If you’re reading this on an iPhone, try out http://demo.iwebkit.net to see how a site built with it feels.
The iWebKit developers had these goals for version 5.0:
- It needs to be very lightweight
- Use small or no images (use css3 gradient and shadows for example)
- Use limited amounts or no javascript, always try to find a css3 solution first!
- Be user friendly (the least amount of elements possible in the html code as iwebkit is structured right now)
It’s dead-simple to use, and I think even people with scant web experience could put a static site easily enough. Safari for the iPhone has solid Javascript support, so more advanced web developers could put together some pretty decent dynamic functionality as well.
My favorite feature of iWebKit is when you use the “Add To Home Screen” button in Safari to put a bookmark icon on your iPhone. A site made with iWebKit can be made to provide its own icon for your Home Screen, show a splash image while it loads, and run full-screen (no browser bar). At that point, you can build something that most people would never suspect was a web site.
Other benefits from this approach: No need to get Apple’s approval to list it in the app store and you can update it as often as you want. You don’t get the exposure that the App Store brings, of course. There are always trade-offs.
If you decide to give it a try, I recommend using Safari on your PC (or Mac) as a test browser during development, since it will render the pages fairly close to how they’ll appear on your iPhone. You won’t get great results on IE or Firefox, but the Chrome browser works fairly well.
Have fun!
Trackback URI | Tags: How-To