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!

Sunday, July 15, 2007

Rabbit-Proof Fencing Available!

I've whipped up a subsite for a Panda3D-based game I made last semester, called Rabbit-Proof Fencing. You can see screenshots of the game, and Windows (XP and Vista) users can download the game right now and install it. I'm working on the Mac version as you read this.

Yes, all you do is hit rabbits with the spacebar. :) If the game seems a bit simplistic, that's because it is. RPF was made more for the final ETC Show than to be a particularly intricate game.

Panda3D is a very cool framework. Besides being (kinda) triple-platform, it also is why we can make these games so fast. Very cool tool, I recommend you check it out.

Friday, June 22, 2007

Nick Montfort's "Narrative Variation"

Just a quick link right now, if you're interested in Interactive Fiction at all you should check out Nick Montfort's dissertation on generating variant narratives:

http://grandtextauto.gatech.edu/2007/06/20/playing-defender/

A very cool spec for a system called nn that splits up a story between what is being told, and how it is told, something that until now has been controlled by only one entity. Montfort's approach consists of many smaller modules, and is making me pine for a version of nn to try out on my own.

Friday, June 15, 2007

BT on the iPhone

I was looking at the iPhone demos on Apple.com and noticed BT's album This Binary Universe in the music library. Click for a larger view:



I'm not really that much of an iPhone fanatic, but the end-of-semester crunch is reducing any meaningful posts, and BT is always worth a mention. :)

Sunday, June 03, 2007

Apple Prank Calls

Just a bit of humor. The first real iPhone adverts have hit the airwaves, one referencing a supposed Californian seafood restaurant named "Pacific Catch."

Engadget looked them up for reals:

"Pacific Catch, may I help you?" "Hi, I just wanted to know if you were getting a lot of calls tonight?" The hostess answered, "Yes." "Do you know why?" "Yes."
I love it.

Wednesday, May 23, 2007

StarCraft 2 and the ETC-AU Blog

A lot of people have been complaining about the new StarCraft, saying it's not different enough. I couldn't be happier that it's not changing, because that's what made the original StarCraft so good. It's a sequel done right: Take what works (superb class balance, for one) and leave it the hell alone. Now add things that don't pollute the formula. Height, 3D environments, etc etc. I guarantee you Koreans will be owning us in StarCraft 2 for many many years to come.

Life is still hectic, and I don't have much time to post these days, but that hasn't stopped me from working on yet another blog! This time, I've taken charge of the ETC-Australia blog, so yours truly will be keeping you in touch with the goings-on in Adelaide! You can also check out our podcast, again organized by me.

Wednesday, April 25, 2007

I Really Am Still Blogging

You know something's up when your last post starts with "I'm going to try to be terser and more frequent in my postings." And said last post is almost three months old.

Well, I have something to show for such a delay. Three things, actually:

Firstly, a link to a game I made here at ETC. It's not as good as I would have liked it to be, but seeing as how it's my first finished game and was made in two weeks in a language I didn't know before starting, I'm quite pleased with the result. This (and subsequent games I post about) were made in a class called Building Virtual Worlds, where you're given a game design prompt, and two weeks to implement it.

I also have a video of my most recent BVW assignment. Why no link to the game? Well, for one, I haven't packaged it up yet. But also, it uses an alternative input device (read: not a mouse or keyboard) so you'd have a hard time playing it anyway. The video will be at the bottom of the post. I made it myself. =)

Finally, some news: I'm pitching a project for next semester here at ETC-Adelaide. If it gets greenlighted (and it's looking like it might), then I get to design a game over the spring Down Under! Schweet.

That's all for now. I seriously will try to post more often, or at least regularly. Hard to keep up when you're this busy!

Thursday, February 01, 2007

Catching Up, and (Corporate) Desktop Linux

I've been inspired by Donna's impressive adherence to regular, frequent posting, I'm going to try to be terser and more frequent in my postings. I doubt I can manage daily posts, especially these days, but we'll see what comes about.

Like this guy, I'm sick of trying to get Linux to play nice with corporate networks. Granted, it's not Linux's fault. Crappy MS Exchange installations (that is to say "MS Exchange installations at all"), and other proprietary nonsense is most certainly not how one should run an office. If your business doesn't use standards like IMAP/POP3, SSH, iCalendar, OpenVPN et cetera, then getting Linux to play nice with it is more trouble than it's worth. There's another *nix vendor out there who plays much nicer with such environments. :)

More frequent posts will inevitably mean more personal posts as well, which I guess is fine with me. So, I'll just use this post to catch up to the present. As I posted previously, I'm leaving Arkansas to go to the Carnegie Mellon ETC in Australia this month. My schedule works like so:

  • My last day at Acxiom is the 9th.
  • I'm leaving on the 12th for Australia.
  • School starts the 26th.

Since I'm going to be super-bogged-down with all sorts of wonderful ETC stuff after that, I've assembled a laundry list of things to do before I go:

  • Get more acquainted with the Torque products, Game Builder and Game Engine.
  • Redesign the five-year old Khakionion.com using my newfound abilities as a Web 2.0 programmer.
  • Sell all my crap, and get my MacBook triple-booting so I only need one computer overseas.
Future entries will be less catch-up, more substance!

Thursday, January 18, 2007

NYC Games Salon

I was going to sum up the NYC Games Salon that I went to on 9 January, but: 1) I got into the Carnegie Mellon ETC in Adelaide, Australia which has thrown my schedule off-kilter with doctor's appointments, visa applications and the like, and 2) seeing as Gamasutra has already blogged it better than I would have been able to, I'll just refer you to that and point out two things that really, really bothered me:

The DWI Simulator's development started in Torque, until they decided it wasn't as good as they wanted, so they switched to a web-based Java app. What? As you programmers know, Java runs on OS X and Linux, and even Windows. As does Torque. The big difference? Java can run within a web browser, without installation. Torque, while required to run natively in a "full app" context, has significantly more graphical/input chops. It's better for full-fledged games, and could make the simulation that much more immersive, by not having to deal with the headaches of a browser paradigm.

As was evidenced when the Java-version of the game failed to run properly in his web browser. Now, he didn't say what, exactly, they didn't like about their Torque version, but I'd wager it has more to do with developer familiarity than any sort of defeciency in Torque. There's nothing wrong with being upfront about such unfamiliarity, but there is something wrong with asserting (without evidence!) that the pathetic Java3D toolkit could somehow make a better simulation experience than Torque.

And I realize that there was no actual Inspector Carbone game, it was still being designed, but I really don't like these non-material metrics for gameplay, we'll call them "Glue Points."

See, Inspector Carbone used a system of "Eco-Points" to represent several metrics: financial capability of residents, willingness to live greener, capacity for ecological responsibility education, et cetera. These nebulous points grew with time, but fell with upgrades. There's a flaw in the mechanics when a metric representing education falls after installing CFL bulbs.

I think that's just a symptom of the simulation being too simple. SimCity simulates urban development quite well, but it breaks simulation parameters up sufficiently to resemble real-life parameters. Taxes, energy, water, population, zoning. It all adds up to a realistic simulation, than if something like "City Life Points" had been used to "glue" several distinct aspects together.

Anyway, it was a great event and I wish I could go to another. Here's hoping one comes to Australia. :)

Saturday, January 06, 2007

Off to Meet Jesper Juul

I'm heading to New York City to attend a game salon at The New School/Parsons, where Jesper Juul's a featured speaker. Expect a full summary here, but for now, just know that when flights are delayed at Little Rock International Airport, there's only one place I get my Cinna on:

Tuesday, December 26, 2006

Christmas Defcon: Everybody Gifts

I'm going to forgo my aversion to simply linking interesting stuff and point out an awesome DEFCON: Everybody Dies mod called Christmas: Everybody Wins.

Kudos to some very imaginative and skillful ASM hacking.

Friday, December 01, 2006

Guest Lecture Slides

On November 28th and 30th, I gave guest lectures at UALR and UCA on video games as interactive narrative.

I've reproduced the slides here in Flash. (The Flash version doesn't have the movies intact, sorry.)

Simply click on the presentation to advance the slides.

Tuesday, October 24, 2006

NULL as the Absence of Value

I'm quickly becoming a fan of SQL. Not just because of the revered database query language's utility (in all its incompatible dialects, natch), but because it reflects a well-thought-out design that makes sense beyond the usefulness of the language down to the philosophy of computer languages in general. Let's take, for example, IS NULL.

In C++, to check if something is NULL, you can compare it to NULL. Or zero. Or false. And, according to the language, these are all actual values: if "int a=0;" then "a==false", "a==0" and "a==NULL". I don't like this.

See, the null set, ø, is not just a set with nothing in it. It is, quite literally, the set with no thing in it. Comparisons between something that "IS NULL" and something that has a value shouldn't even make sense. Thus, in MySQL, Oracle et al, you have to use "WHERE a IS NULL" instead of "WHERE a = 0" or "WHERE a = 'false'".

"NULL IS NULL" is true.
"0 IS NULL" is false.
"NULL = 0" is also false.

I like SQL.

Tuesday, October 10, 2006

Album Artists in iTunes 7

Oh sweet, sweet iTunes 7. Aside from all the graphical glitz of its "cover flow" view, and gapless playback goodness, music can now hold three different authorial tags: Artist, Composer, and the brand-new Album Artist.

See, with the cover flow view, you get a bunch of duplicate albums in the display when you browse by album. For example, Tranceport by Paul Oakenfold contains a bunch of songs that aren't by Paul Oakenfold. Not only do you lose the Paul Oakenfold credit when you tag "Time" as being by The Dream Traveler, you make browsing by artist a nightmare.

Enter the Album Artist tag. Set all the tracks to have the same Album Artist, and iTunes will wisely group them together, despite being by different artists. Hooray, now your music collection sucks less.

Thursday, October 05, 2006

Defcon on the Mac!

Want to play Introversion's latest hit, Defcon, on your Macintel but don't have the license nor the inclination to install Windows via Boot Camp?

Not to worry, Defcon works perfectly under the new version of the CrossOver for Mac beta. Just download the Defcon client installer, select "Install unsupported software..." and install it into a Win2K or XP bottle.

Viola, now you've got Defcon, the world's first Genocide 'Em Up, running natively on the Mac! (Well, "native" in that it's not being emulated.)