Technology

Will Wright is making *the* god game

Oliver Brown
— This upcoming video may not be available to view yet.

Will Wright, creator of the Sims and SimCity is working on a game called Spore. Spore will not only be a god game, but will be the god game. In fact it may become the best game ever.

It sounds like a combination of Sims, SimCity, Civilisation, Populous, Humans, Command & Conquer and 3D Studio Max.

The game starts with you controlling a little micro-organism (a spore perhaps) that has to survive and eat things and not be eaten by other things. You have a nicely textured but relative simple top down view of your little creature swimming around. Survive long enough and get enough food and you can lay an egg. This is the central theme of the game - your creatures evolve. But you choose *exactly* how they evolve. Need another tail or a couple of spikes? No problem. Put what you like where you like. The game works out how your creature should move and attack. Evolve a few more times and the game switches to 3D (well it was actually in 3D before but you were limited to a fixed camera angle and movement in a single plane).

Once in 3D, the goo you were previously swimming in is revealed to be a pond of sorts. You continue evolving and getting more complex. Add legs and you can walk out of the pond. Or maybe you’d just like fins and be the best sea creature around. Or perhaps you want legs and fins and get the best of both worlds. Your choice.

And so the game continues with your creature evolving. Eventually so does their brain. You can manufacture weapons (designed with the same flexibility as the creatures) which your creatures work out how to use (even if that means holding them with their tails because you forgot to give them hands). By this stage you control a whole tribe.

Of course other tribes will spring up and they have to be dealt with. So make some tanks or something, all with an agonising amount of control.

After that it just keeps going. Control the planet, fly to other planets, control the solar system etc. The sheer scope of this game is unbelievable.

Search Google Video for quite a few clips of the most ambitious game ever conceived.

Complete review from GameSpy of their showing at the 2005 Game Developer’s Conference which is more in depth.

So where are the Google gadgets

Oliver Brown
— This upcoming video may not be available to view yet.

If you use Google personalised homepage, you can add Google gadgets to them. A Google gadget is just an XML file (or more usually the XML output of some dynamic page) that is displayed. There is a well developed API and you can do quite a lot of nifty stuff with them. But they don’t seem to be that popular (searching for Google gadgets, with Google gets very few relevant results).

There are quite a few in their gadget directory but very little mention of them outside Google…

I wrote a bash script

Oliver Brown
— This upcoming video may not be available to view yet.

You may possibly have noticed the intermittent availability of the site during the last hour. Well I’ve been fiddling around trying to get my clever “restart Apache and MySQL if they crash” script working.

To that end, I did something unexpected: I wrote a shell script in bash. Not something I ever came close to trying before but it was surprisingly straightforward. The implicit availability of regular expressions everywhere definitely made things easier.

Have a look at this bash scripting guide for more info…

Multiple forms in ASP.NET

Oliver Brown
— This upcoming video may not be available to view yet.

I previously ranted that being unable to have two ASP controlled forms in a single ASP.NET page is a serious flaw. They may be a way round it though. I would assume that ASP.NET can’t output two “smart” forms (the ones with runat="server") on the same page but I’m pretty sure that there is nothing stopping a HTML page itself actually holding two of them. Of course that could be wrong.

Essentially all you have to do is load the extra forms using AJAX and I think everything will work.

(I’m working a on a page (not in ASP.NET) that has a table of data with a status column. Each column needed to have a drop down box letting you change the status. Since the number of statuses is large I decided to have a link that AJAXly changed into the dropdown box and a button when you clicked it. Of course you could click all the links and not submit any of the forms leaving you with a page that actually has a bout 30 forms on it.)

Explaining the Matrix

Oliver Brown
— This upcoming video may not be available to view yet.

The Matrix was quite a good series of films. But without any extra interpretation left most viewers reasonably underwhelmed.

Well see what you think of this theory.

It’s specifically about the second movie, The Matrix Reloaded (there is a link to one about Revolutions too) but I think the second is where the most understanding is required.

It also has a prediction about what could happen in the third movie (it was written before it was released) and I think I like it more…

Silly things with JavaScript closures

Oliver Brown
— This upcoming video may not be available to view yet.

From a theoretical programming point of view, JavaScript is immensely cool. You can do some amazing things with it. Although I’m not entirely sure whether you should.

For example I had a bunch of elements on a page I needed to update using AJAX. I needed a function I could pass the URLs and ids of elements to replace with those URLs and then have it perform each replacement in turn (I’ve seen IE have problems with simultaneous AJAX requests).

First I replace a simple replace_id function that accepts three arguments. An element id, a URL to GET to replace its contents with and finally a function to be called when it’s all completed.

And then things got silly.

function chain_replace(urls, ids) {
    id = 0;
    next_id = function() {
        if (id < = ids.length) {
            return function() {
                replace_id(urls[id], ids[id++], next_id());
            }
        }
    };
    next_id()();
}

Now the next_id()(); bit towards the end should be a clue that something a little odd is going on. But I must confirm that this code does actually work. With enough arguments it might make the browser explode with some sort of call stack problem though…

Coop gaming

Oliver Brown
— This upcoming video may not be available to view yet.

Finally someone in the mainstream agrees with me.

There is a section in PC Format magazine that says cooperative play in upcoming games will be a bigger part. Coop gaming, especially in first person shooters is tremendously fun. I spent a lot of time playing Duke Nukem 3D and Doom coop on my PlayStation. Very few games after that supported coop modes (although I realise that it brings some complicated design issues).

Windows XP Media Center Edition 2005

Oliver Brown
— This upcoming video may not be available to view yet.

I’m getting a new computer. Well most of a new computer. And I’ve been considering whether to get Windows Media Centre Edition or not.

The first two versions of MCE were rather lacking but after reading a lot I’ve decided 2005 is actually quite cool.

What is Windows XP Media Center Edition 2005?

Good question. One I didn’t know the answer to until recently. It’s Windows XP a with range of new utilities for working with video, music and images (as well as bits of hardware associated with them) all wrapped inside one interface. The idea is to have your computer as the hub for your whole home entertainment system.

Digital Video Recording (DVR)

The most useful component is the built in DVR software (sometimes called Personal Video Recorder or PVR). Plug your TV into your TV tuner card and Windows can record stuff straight to your hard drive. But of course most TV tuners come with software to do this. Well MCE does it better to be honest. And you can also get a hardware bundle (ready built systems come with it) that includes a IR blaster. Basically it’s an infra-red transmitter you stick to the front of your set top box (Sky, cable, whatever) to allow your MCE computer to change channels.

Disk space

The lowest quality recording takes up between 1Gb and 1.5Gb per hour. Reasonable hard drives these days are about 200Gb which gives you about 100 hours of video (leaving space for other stuff). Not really suitable for storage but it does allow you to burn things to DVD. Most of the time. The software apparently supports any content restriction specified in incoming media and won’t let you copy such content of the computer that made it.

But it’s still a computer, right?

MCE is actually Windows XP Professional underneath. It took a while to confirm (most references are vague about whether it’s XP Home or XP Pro) but I did find a page on Microsoft’s website saying it’s XP Pro. This means you can do everything with it that you can normally do with a PC.

One final note… you could always install MCE on a Mac.