bookmark_borderLinux on the desktop? Was I crazy?!

For those of you have read my blog previously, you may have noticed I bumped in a few linux related posts here and there. This was mainly due to the fact that I was experimenting with using linux as a desktop operating system (something which I have tried in the past), as I wasn’t too confident of where Mac OS X was going. This ultimately included installing it via BootCamp on my Macbook.

Ubuntu desktop

Unfortunately I have now reached the end of my teather with regards to using Linux as a Desktop operating system. Quite simply I kept bumping into too many issues which required manual workarounds, if there was even a solution at all.

I started off by trying one of the release candidates for the latest release of Ubuntu, version 7.10. This initially impressed me as when I booted off the installation CD, almost everything appeared to work out-of-the-box. However upon installing it on my Macbook, the novelty wore off as I realised that crucial features of the Macbook – the camera, the IR, even the trackpad either didn’t work properly, or didn’t work at all.

For example:

  • The default trackpad configuration was abysmal, and I couldn’t find any configuration tool which gave me the same amount of customizability as the one in Mac OS X in order to fix it.
  • I never got the iSight working – though then again this wasn’t much of a problem as Skype for Linux doesn’t even support video cameras.
  • Whilst the sound worked, configuring it was a pain in the ass as there were too many confusing options to choose from.
  • I tried to get the DVI out to work. I ended up breaking the X server and spent ages trying to fix it. Safe to say I never got it to work.
  • OpenGL support on the Macbook was sub-par.
  • Intergration between applications varied from being good to abysmal.

( It should be stressed that all of these issues persisted through to the stable release of Ubuntu 7.10 )

In fact, you can see a nice list of all the problems you have to fix out of the box here.

A week or two ago, Ubuntu 7.10 became officially stable, so I decided to try out one of its variants to see if it fared any better on my Macbook. I chose Kubuntu as I had previous experience with using KDE from using SuSE Linux and figured it might turn out to be a better desktop experience.

Kubuntu Desktop

On the contrary, Kubuntu was anything but a better desktop experience when compared to Ubuntu. A lot of the killer features present in Ubuntu – Compiz Fusion, simple administration tools, even mappings for the brightness controls were not present in Kubuntu. It was also more difficult to configure as there were simply too many configuration options to choose from, as is illustrated by the comparison of the “Keyboard Shortcuts” dialog in Kubuntu (which uses KDE) and Ubuntu (which uses Gnome) bellow:

Would you like the other menu, sir?

I even tried the beta KDE4 packages, in the hope that maybe KDE4 had improved on KDE3. I was sorely dissapointed, as instead of this I got this.

Safe to say I have come to the conclusion that currently neither Ubuntu or Kubuntu are quite up to scratch when compared to the standards set by Mac OS X. In fact if suddenly all copies of Mac OS X were obliterated, i’d probably take a risk and use Haiku.

As for the future, who knows? But as for now, I think i’ll stick to what I like best – Mac OS X.

bookmark_borderFlash Plays SCUMM (sort of)

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

Safe to say, I ended up with this rather odd Flash-based app written in haXe which when provided with the “.000” and “.001” files of any unencrypted V6 SCUMM game will be able to load and play it. Or rather, attempt to.

Obligatory example image

Sadly I bumped into a problem in the image decode routines, so what is displayed isn’t pretty. But it is quite capable of executing enough opcode’s to get to the input event loop in Alban Bedel’s road example for his scummc compiler, which is great.

As for other games, I would doubt that they would get very far. A lot still needs to be implemented in the runtime.

In any case, if you dare you can try out my Flash-based SCUMM interpreter by downloading and extracting this archive. Simply load “test.html” into your web browser. Note though that you will need Flash 9 in order to run the interpreter.

In addition I also decided to open up the code for everyone to look at. It’s a mess, but it works. You can grab it from here.

Finally I would like to congratulate the ScummVM team for their SCUMM interpreter and Alban Bedel for his scummc compiler. Without their efforts, I wouldn’t have had any code or references from which to base my haXe-based SCUMM interpreter.

bookmark_borderHaXe – Web oriented universal language!

A while after I bumped into Doomed Online, I decided to investigate the pipeline for making Flash 9 games.

Compared to a few years ago, it seems like an increasingly lucrative game development platform. Pretty much everything you would need to implement for a game is possible with Flash 9, including such things as 3D Rendering. In a way it’s comparable to the late-90’s PC gaming scene. I have no doubt that you could probably make something as sophisticated as, say, Tomb Raider with Flash 9.

However my big problem with Flash is that it is still a closed platform. I have yet to find any open source re-implementation of the Flash runtime that fully runs Flash 7 files, let alone Flash 9. And whilst the Flash 9 compiler is supposedly going to be open source’d by Adobe, I have yet to see any indication that this is really going to happen.

HaXe Logo

Thankfully, I found a solution : HaXe. It is essentially a fully featured programming language that can output to one of three formats:

  • Adobe Flash (7, 8, or 9)
  • Neko VM (runs as a standalone app or a web app or perhaps embedded elsewhere)
  • JavaScript (though sadly doesn’t have a nice RIA toolkit which writes all the HTML like, say, OpenLaszlo)

So in essence, with HaXe I can bypass my “closed platform” nag point and instead make a version of my game or app that works in Neko or perhaps just in a bog standard Web Browser. In addition I can consolidate my web development into one cool programming language. Great!