Tuesday 23 October 2007

Portal

Just finished Portal. I have to say I'm glad I bought it as part of The Orange Box, rather than on it's own - it's length puts it quite firmly in the "tech demo" category. That said, it is a very interesting idea, if a little nauseating (I'm one of those weird people who gets motion sickness playing FPS's for too long - Portal's bouncy-flippy-which-way-is-up shenanigans meant I had to have a lot of breaks :)

It will be interesting to see how Valve (or anyone else for that matter) try to fit the idea into a more traditional FPS setting.. it would surely make level design a nightmare if you have to make sure the player can't just leap across huge sections of level - and if you invert it so the player can only use portals in particular sections I think it could very easily seem contrived. Hopefully we'll see soon enough..

My favourite thing about Portal is the sense of humour throughout - the ending particularly is great: the idea of having the game finish with a psychotic computer singing to you about cake approaches Tim Schafer levels of oddball. It gives me some faith that there are some left in the western games industry who remember that it's more important for games to be fun than cool. Blue skies in games!

Monday 22 October 2007

Leenooks

I installed the new version of Ubuntu ("Gutsy Gibbon" - what?) this morning. I was running the old version and tried to upgrade, but during the install I somehow lost support for my USB hard drive and various apps stopped running. I decided I'd be best off reinstalling completely (not that much of a problem if your user data is on a separate partition - most Windows users I know are only just coming round to this idea). After downloading the .iso I burnt it to a disc using cdrecord (the gnome burner was one of the apps that had died earlier) and restarted.

The installer was nice enough; pretty much the same as when I installed the previous version. One new little feature that impressed me was when the installer asked if I'd like to copy personal settings (everything from browser bookmarks to desktop wallpaper) from my Windows partition. It's features like this that make Ubuntu fans declare every new version a "Windows-killer". While ease-of-use features are always welcome, I wouldn't go that far (I'm not sure I want something to kill Windows.. unlike Microsoft I recognise the need for competition).. but I digress!

Everything installed nice and smoothly, like the previous version of Ubuntu all my hardware was detected and setup perfectly first time - even my wireless network, once I remembered where I'd put the network key :)

On to the most fun part: the eye-candy! Most of the noise about this new Ubuntu is about the inclusion of Compiz-fusion, a pretty-if-somewhat-pointless system that takes advantage of your 3D card to do silly things with your desktop. There are plenty of videos of it on youtube, have a look. There are quite a few features that are gratuitous if not entirely useless (unless you consider painting a burning particle effect over your windows useful) but the main features are pretty without getting in the way. I particularly like Expo and the shift-switcher. Now that I've written that it sounds like a band name. Anyway.

So - Ubuntu 7.10 gets the thumbs-up from me. To the various people who ask me fairly often which Linux they should try - this one!

PS I know! A post where I didn't whinge about anything! You can tell I'm on holiday :)

Monday 1 October 2007

What's so bad about J2ME anyway? I forget - ho, ho.

This is something of a continuation of my earlier rant.. you have been warned :)

Not many people buy mobile games, in comparison to the number of people who own them. So the carriers want games that work on as many handsets as possible to maximise the number of potential customers. This is one of the things that makes J2ME game development more like PC dev than console, in the sense that we don't have a fixed platform. This I think was the original selling point of Java on mobile devices - that it standardised the way games would be developed and distributed; the much-touted "Write Once Run Anywhere" promise. But that only makes sense if you completely blind yourself to all other technical questions: while games developed for similar-spec'd PCs were created using all manner of low-level assembly tricks to squeeze every precious cycle out of the processor, Java actively prevents the programmer from finding out any information about the hardware on which the program is running. John Carmack made some mention of this during his experience creating Doom RPG. There are even more fundamental questions like "how do you make a sprite-based game that simultaneously works on a 120x120 screen and a 240x320 screen?".

The reality is even devices that are very similar behave completely differently, due to the manufacturer's JVM implementation. Since I make 3D games I'm somewhat blessed in that I only have to deal with fairly few devices, all of which are fairly high-end. On my first couple of 3D titles the worst device by far was the Nokia 6680 - it has a severe issue whereby the garbage collector either doesn't reclaim unused memory or never compacts memory, allowing it to fragment. The end result is, as you release the resources from one level to load the resources for the next, a big chunk of memory disappears, and very soon the phone runs out - at which point Crazy Things happen. The accepted "solution" to this problem is to work around it i.e. to load all the resources for all the levels at startup and never release anything ever. Thankfully the 6680 was eventually superseded by the n70, which doesn't seem to suffer from the same problem.

On my most recent project we deliberately "pushed the envelope" in terms of graphical quality, meaning we had a hell of a lot of resources. So many in fact that they couldn't all be loaded at once on the 6680. It was fine on the n70, so the client didn't seem to mind too much. I created reference builds for various other devices, leaving the new one until last: the n95. This is the phone Nokia are very heavily pushing at the moment with their "what the PC has become" ad campaign. When I first looked at it I was very impressed - it has a great screen, and hardware acceleration allowing it to spew polygons onto the screen faster than any other device I've seen. When I finally came to do a full build of the game I was soon disappointed - after a couple of levels I noticed the loading times became incredibly slow. I discovered a call interrupt was enough to kill the game after this had happened. It took me some time to conclude that the 6680 memory issue was never resolved. Nokia's "fix" for its n-series devices was to put vastly more memory in them, so you'd need to play a game for several days non-stop before the phone crashed. Unfortunately the n95 has about as much available memory as the 6680 - so the issue has returned. The annoying part is Nokia are perfectly capable of producing a phone without stupid memory issues - the 6280 is such a good phone I even own one, yet its an arguably low-end s40 device. Actually no, that's not the annoying part - the annoying part is Nokia's refusal to admit that there is even a problem.

Now if only SonyEricsson could get their M3G implementations right, I would convert!