Tuesday, August 28, 2007

GMail Collaborative Video

GMail's recent call for videos (CfV?) to make a collaborative "behind the scenes" movie has finally borne fruit. Here's the final version. It ended up looking pretty good:


My favorite part is when the arrow hits the next guy in the ear.

Sunday, August 26, 2007

WTF Mac Store


WTF Mac Store
Originally uploaded by Jeff Carlson
Wish I could say I found this like I found the MacOS graffiti, but it's still some cool found Mac stuff. It's supposed to say "The Mac Store," but the word "the" is laid out...........ah, awkwardly.

Monday, August 20, 2007

Found Mac Art: MacOS Graffiti

Here's a cool piece of found art: A MacOS menu bar pasted up on a wall near my uni.

Couldn't even get a picture of it in time before someone ripped and tagged it. Apparently I'm not the only one upset that Adelaide isn't getting the new Bluetooth keyboards for four weeks. :)

Friday, August 17, 2007

Original ADVENT Source Code Found!

Too cool not to blog about....

This guy has analyzed the original source code to Adventure. Notable in that sentence is that he actually has found the source code to Adventure, in a backup of Don Woods' account. This is a phenomenally important piece of code, and I think it's incredible that it's managed to survive into an age where it can be preserved.

Looking at it a bit, it's funny to think just how unlike the game itself this code is. Today, you can at least read many parts of code and see the game itself in the source. Whereas some game code to pick up an item may look like:

int Player::itemCollision(Item item)
{
if(Player.myInventory.isFull())
{
Alert("You can't carry any more items!");
return -1;
}
Player.myInventory.append(item);
}


The Adventure 0 code (in Fortran-IV!) to "CARRY" something is:

C CARRY

9000 IF(JOBJ.EQ.18)GOTO 2009
IF(IPLACE(JOBJ).NE.J) GOTO 5200
9001 IF(IFIXED(JOBJ).EQ.0)GOTO 9002
CALL SPEAK(25)
GOTO 2011
9002 IF(JOBJ.NE.BIRD)GOTO 9004
IF(IPLACE(ROD).NE.-1)GOTO 9003
CALL SPEAK(26)
GOTO 2011
9003 IF((IPLACE(4).EQ.-1).OR.(IPLACE(4).EQ.J)) GOTO 9004
CALL SPEAK(27)
GOTO 2011
9004 IPLACE(JOBJ)=-1
9005 IF(IOBJ(J).NE.JOBJ) GOTO 9006
IOBJ(J)=ICHAIN(JOBJ)
GOTO 2009
9006 ITEMP=IOBJ(J)
9007 IF(ICHAIN(ITEMP).EQ.(JOBJ)) GOTO 9008
ITEMP=ICHAIN(ITEMP)
GOTO 9007
9008 ICHAIN(ITEMP)=ICHAIN(JOBJ)
GOTO 2009


My, my, how far code has come. Anyway, if you're interested, I recommend at least thumbing through the source. It's a nigh-mystical artifact to some of us. :)

Thursday, August 09, 2007

Why Unreal Engine Is Closed Source

Silicon Knights is suing Epic because improvements that Epic made to Unreal Engine 3 didn't trickle down to SK, thus making Gears of War superior by default to Too Human. This is a great example of why you should be hesitant to trust closed-source technology in your multi-million-dollar game production.

What I think happened is that Epic and SK defined "Unreal Engine 3" in two different ways. Epic made this thing called "UE3," and aside from building their own games on it, they also licensed it out so others could, too. While Epic made some enhancements to the engine, they considered such work part of Gears of War, and didn't distribute it to UE3 licensees (their competitors).

What if both Epic and SK had been using an open-source engine? Gears of War's release would have required the release of the entire source tree for the game, and the same would have applied to all other users of said technology.

Is this a bad thing? Well, it depends. Do you want your games to advertise their superior engine features, or superior game design? In an open-source world, the playing field is leveled, and your skill in crafting a good game is now more important than your skill in supporting the latest shaders, environmental audio, et cetera.

Gee-whiz technical features versus compelling game experiences. Your choice.

Twitterfication

Oh sheesh, I signed up for Twitter. I've got it installed on this blog and Facebook, and I'm running Twitterific on my Mac. Follow me if you're on Twitter, and I'll follow back!