Google Earth:
Now available for GNU/Linux from
http://earth.google.com/Cars: Radiator Springs Adventures:
This is shipping now, as a Universal Binary on a hybrid Win/Mac disc.
http://www.macgamestore.com/detail.php?ProductID=583 PLEASE be aware that this is the kiddie game! It's meant for really young
kids. It's the sort of thing you see in the Apple retail stores in the
children's section that you instictively ignore if you're older than 10.
That being said, if you park your kid in front of one of these Macs while
you wait at the Genius Bar, then they'll probably have a lot of fun with
this game. Just be conscious of the target market, and whether you are it.
COD2:
The Linux server 1.3 patch got kicked back to me from Activision QA as
hopelessly broken, I sent in a new build, they kicked it back to me again.
Discovered that there was a series of unfortunate events that, chained
together, conspired to cause this screwup:
- My Windows installation of COD2 was hosed. It was still the 1.2 binaries,
after a "successful" run of the 1.3 patch program (a second run reported
that I was all patched up, too) This basically left me with a client
talking the 1.2 protocol, but having the right pakfiles to pass the
sv_pure test.
- The Linux server codebase had a mismerge: the protocol version didn't
get bumped. This basically left we with a server that would only talk
to a 1.2 client.
So there we are, scratching our heads over why Activision is seeing an
absolute failure to do anything whereas it's working great on my LAN.
Much time was spent running the server through Valgrind and gdb and
sniffing packets with Ethereal. Eventually I noticed that my damned
Windows client said "1.2" in the lower left corner of the main menu.
A reinstall of the game made it much easier to track down the problem.
So, back in QA. Assuming I've managed to outgrow my stupidity this time
around, I'm hoping they'll sign off on it soon. Updates as I have them.
Second Life:
Cleaning up the dependency hell. Usually I work on games that have one or
two dependencies (SDL, OpenAL, maybe a statically linked libpng or
whatever), but Second Life has quite a pile of them, some of which have
fairly complex dependencies of their own (Mozilla, anyone?) and many that
depend on each other (all projects grow until they reference zlib, I swear).
Fortunately, working on Google Earth, also a bit of a middleware magnet,
taught me a lot about how to manage this sort of thing. Tapdancing around
misconfigurations and symbol clashes and unnecessary dependencies (oh my!)
is really a science...or a black, unholy art. If you ever have to make this
happen yourself, my best advice is this: automate the hell out of it. Write
a big shell script that builds (and rebuilds, and rebuilds, and rebuilds...)
every third party library from scratch. This is both because you won't
remember how you did it in six months when you need to change something, and
because you won't remember how you did it in five minutes when you are
iterating yet again to tweak a piece of the build. In some cases I adopted
the Gentoo Portage mentality (build to a temporary --prefix, then copy the
bits you actually care about from the installed image), and in some cases I
wrote a simple shell script that explicitly compiles each file the way I
want it, bypassing the autotools badness. Time spent on this in the past
week: pretty much every waking hour, minus the COD2 issues above. For all
the effort, progress is really incremental (especially when you find out
your 4-in-the-morning typo makes the Mozilla build die yet again, 30 minutes
into the run...how painful!)
Other stuff:
I can't believe how much email I got due to being on the FLOSS Weekly
podcast! Almost all of it was positive, and some of it was downright
inspirational.
Also, if you're still looking for a last-minute Subversion repository for
your Summer of Code work, please drop me a line, as icculus.org might have
some resources that'll be of use to you.
--ryan.