bookmark_borderFlash Plays SCUMM, Take Two

Last month after bumping into haXe and Doomed Online, I somehow got the strange idea that I could get flash to play SCUMM games, like ScummVM.

While I did get it working as a proof of concept, there was a really off-putting bug in the image decode routines which meant that any displayed room graphics were a jumbled mess.

Recently though I decided to do a bit of intensive debugging to try and solve the problem. To sum it up, after:

I managed to fix the decode routines. Now instead of a jumbled mess like this:

Before, courtesy of Albans Road example

You get something more like this:

After, courtesy of OpenQuest

Which safe to say is much nicer to look at. It’s also as far as I am willing to go with this SCUMM implementation.

With a lot of work put into it, i’m sure it could run Day of the Tentacle or Sam N Max Hit the Road. But there would not be much sense in doing that, except for that 5 seconds of awe after seeing it running in a web browser.

As previously, you can download the hiscumm code for reference here.

bookmark_borderRailsCollab Prodding

In my quest to learn the Ruby on Rails (a web development framework), I re-writ a PHP-based project management app (ActiveCollab) in it. In fact, I wrote about all of this a few months ago.

Now i’ve had my ups and downs with RailsCollab. The biggest down being that there is little interest in it, especially compared to alternate solutions such as ProjectPier. Which is unfortunate.

In any case, a little problem I noticed recently was that RailsCollab still wasn’t really finished. There were still numerous bugs and missing features which made it feel more of a hack than a real product.

So I set aside some of my spare time to fix it. After a few days, I managed to get it stable enough so that it worked properly in the latest version of Rails. I also got the mail notification working, which I felt was a very important feature of ActiveCollab.

But there was still a lingering problem: Apart from the OpenID support, RailsCollab didn’t really offer anything more than ActiveCollab or ProjectPier offered.

So I thought for a while: What feature could I implement that wasn’t present in either solutions?

And then it hit me: an API! Though not just any API, no. Rather, the BaseCamp API.

For those of you that don’t know, BaseCamp was the inspiration behind ActiveCollab (and thus, RailsCollab). From an API standpoint, it pretty much has the same features, which was great for me as it mapped quite nicely to the BaseCamp API. There were only a few features missing, such as the Message Categories, but those didn’t take too long to implement.

So I pretty much ended up with a nice and shiny implementation of the Basecamp API (minus two minor functions which I have yet to implement). Which meant that I could use all of those fancy third party Basecamp tools widgets with RailsCollab as well.

However there was a snag. While RailsCollab worked fine in development mode, it failed to work properly in production mode due to some problem with controller helpers – which as you can imagine was highly frustrating.

Ruby on Rails might be a great web development framework for getting things up and running quickly, but when you start having such simple problems that cannot easily be debugged, and to top it all off it’s inherently slow, then it starts to look more like the web development framework from hell.

Rants aside, I somewhat hope the lure of the Basecamp API implementation will generate more interest in RailsCollab. Though even if it doesn’t, I will still have the satisfaction of knowing I put some effort into polishing it off and turning it into a real product.