One year at Google!

Happy Anniversary to me! Google’s automated HR script just emailed me its congratulations.

Although I miss my friends and former colleagues at Microsoft, and I miss the games industry, overall I’m still glad I made the switch. I’m enjoying the new work, and learning all the cool Google technologies. Now if only the stock price didn’t keep going down. :-)

Some things I like:

  • Switching from Window to Macintosh. It took me six months to get used to the subtle differences, but as a user I’m just happier with the Mac. It’s easier for me to use. Now, to be fair, at home I still maintain a Windows Vista machine for the excellent Windows Media Center, but for everything else I use the Mac.
  • Better corporate politics. There seems to be less infighting between groups. And while my overall compensation is about the same as it was at Microsoft, the way it’s managed and delivered makes it seem less competitive than MS. Perhaps it’s an illusion, but it feels better.
  • Better equipment. I love using a 30” LCD monitor and a high-end laptop, and I love the “we’ll just give it to you” technical support. At MS sometimes I felt that I had to fight to justify minor hardware purchases.
  • Fancier food in the cafeterias. I usually eat lunch and diner at work, so the tasty and relatively healthy food is much appreciated. Interestingly enough, I think Google Seattle uses the same food caterer as Microsoft does. I guess we just asked them to cook different food.
  • More connected to the Web / Valley culture. Microsoft’s pretty insular. It was good to get closer to the Silicon Valley culture again.
  • Able to use open-source projects. Sometimes the open-source projects are the best way of doing something. But Microsoft’s not able to use it, due to a combination of pride, loyalty to its own products, and fear of viral licenses. For example, using Linux for embedded devices is much better than Windows CE. I also find I liked using non-Microsoft technologies like Java, Python and Ruby.

Since you may be wondering, what do I miss from Microsoft?

  • I miss the Xbox project. Right now my old team is probably starting to plan the next generation of Xbox, and it would have been a blast to have been a part of that process.
  • I miss the free game betas, and using beta software in general. (I’m a sucker for new features!)
  • I miss some of the Microsoft-specific technologies like C# (still better than Java), Visual Studio (still better than Eclipse), and F#.
  • Surprisingly, I don’t miss my old single-person office very much. It’s true that a group office is distracting. But it’s also helpful for sharing ideas and for keeping focused on the project.

Well, that’s it, better get back to work!

Insomniac Games Shares Technology

One very nice habit of Western game companies is that many of them share their technical knowledge with competitors. Insomniac Games is a very good third party console game developer that has concentrated mostly on the PlayStation platform. Their recent games include the shooter “Resistance Fall of Man” and the action platform Rachet and Clank series.

At this year’s GDC they announced the “Nocturnal” initiative. It’s not a whole game engine, but rather a collection of useful utilities. Things like logging code, C++ object serialization, and a cross-platform performance monitor. Some of the utilities are Playstation 3 specific, but most are applicable to any modern game platform.

Much of this code would be right at home in a “Game Gems” book, but it’s even better to have it freely available, on the web, with a BSD-style license. Good for you Insomniac!

Insomniac also publishes technical papers in a GDC-presentation-like format on their Game R & D Page.

Why do so many game companies share information like this? I think it’s for a number of mutually supportive reasons:

  1. It’s a form of advertising, to show off how smart and competent the developers are. This is helpful in attracting job applicants and impressing publishers and game reviewers.
  2. It educates all game developers, some of whom will eventually end up working for the original developer.
  3. It encourages other developers to share their technology, which benefits the original game developers.
  4. It reduces the value of middleware, driving down the cost of middleware.

Game developers can give away source code because, unlike other kinds of software, the major intellectual property in the game is in the copyrighted and trademarked art assets, (the data) rather than in the code. Yet, at the same time, game quality is directly tied to the performance of the code. This creates a unique economy in which it is profitable for game developers to exchange performance tips with their competitors.

And it’s a lot of fun for armchair developers like me. Now if only we can get Naughty Dog to open-source their GOOL and GOAL Lisp-based game engines. :-)

TaxCut 2007 vs. Case-sensitive file systems

OS X allows you to format your file system as case-insensitive (the default) or case sensitive (like Linux.) I use case-sensitive, to simplify porting and working on Linux software.

Unfortunately, H&R Block’s TaxCut 2008 program won’t work if installed on a case-sensitive file system. It fails because it can’t find files, probably due to differences between the case of the file name used by the programmer and the actual case of the file name on disk.

A work-around is to use the Disk Utility program to create a case-insensitive image, and install Tax Cut on the image. I used a 600 MB image, so that I can store all my tax forms there too, and eventually burn the whole thing to CD to archive it.

Tim Sweeney Too - DX 10 last relevant graphics API

A good, three-part interview with Tim Sweeney (the other FPS graphics guru):

Part 1

Part 2

Part 3

His main thesis is that soon GPUs will be come so programmable that you won’t bother using a standard Graphics API to program them. You’ll just fire up a C compiler. I think he’s right.

Carmack speaks on real next-gen graphics

John Carmack is experimenting with a “sparse octree” data structure for accelerating 3D graphics rendering:

Carmack on Octrees

Best quote:

The direction that everybody is looking at for next generation, both console and eventual graphics card stuff, is a “sea of processors” model, typified by Larrabee or enhanced CUDA and things like that, and everybody is sort of waving their hands and talking about “oh we’ll do wonderful things with all this” but there is very little in the way of real proof-of-concept work going on. There’s no one showing the demo of like, here this is what games are going to look like on the next generation when we have 10x more processing power - nothing compelling has actually been demonstrated and everyone is busy making these multi-billion dollar decisions about what things are going to be like 5 years from now in the gaming world. I have a direction in mind with this but until everybody can actually make movies of what this is going to be like at subscale speeds, it’s distressing to me that there is so much effort going on without anybody showing exactly what the prize is that all of this is going to give us.

Second-best quote is that he wants lots of bit-twiddling operations- per-second to traverse the data structures rather than lots of floating-point- operations-per-second. Must be scary for the Larrabee and NVIDIA CPU architects to hear that, this late in their design cycles.

Hopefully John will come up with a cool demo that helps everyone understand whether his approach is a good one or not. Hopefully the Larrabee / NVIDIA architectures are flexible enough to cope. (Interestingly, no mention of ATI – have they bowed out of the high-end graphics race?)

ForumWarz - a game about the web forum culture

This is an interesting role-playing-game set in current-day web forum culture:

http://www.forumwarz.com/

It’s somewhat not-safe-for-work, and the humor is pretty low-brow. But what’s neat is that you play it through your browser, and it recreates the look-and-feel of web forum culture perfectly. It wouldn’t surprise me if the authors just captured the HTML for various real-world forums to create the resources for the game. (Or alternately, created their own fictional forums using web tools, and then captured the HTML from those fictional forums.)

The actual game didn’t hold my interest for very long, but it’s free and it’s fun for a few days.

We write for posterity

The Google Analytics numbers for this blog are dismal. (Hi Mom! Hi Friends!) I think it’s because right now I don’t have much to say that’s both unique and interesting. Partly this is because so much of my life is off limits: I don’t want to talk about the joys & cares of raising a family, and I musn’t talk about the joys & cares of raising a new product. What’s left are comments on the general state of the web, and essays on general topics like this one.

Why write then, and who am I writing for? I write because something inside me compells me to, and because it helps me think to get my ideas down in written form. Who do I write for? From my Analytics numbers it’s clear that I’m writing primarily for search engines (Hi Googlebot!) rather than people. And that’s something interesting to think about: Baring a world-wide disaster or cultural revoloution, what I write today will persist for thousands and probably even millions of years, and will be read countless times by search engines, and only occasionally, if at all, by people.

My words will be torn apart and merged with other web pages from other authors, becoming a mulch out of which new insights will be gleaned. (Hmm, not unlike how my body will be recyled when I die, its atoms used to make new things.)

Perhaps the last time my essay will ever be read by a live human is in some far distant future when some graduate student is writing an essay on early-web-era civilization, and is trying to find out what those poor benighted souls thought of the future. (Hi posterity!)

No doubt my words will be automatically translated from 21st- century English into whatever language wins the world-wide language wars. Perhaps my essay will even be automatically annotated, with a description of who I was, and a best guess at what I looked like, from searching the world’s photo archives. There will be footnotes and links to explain the archaic topics I’m referencing. “Search engine” - they used to store data in seperate computers, and brute-force building the search index. How primitive! How quaint!

And no doubt the grad-student-of-the-future will glance over my words, then move on to the hundreds of other essays on similar themes. (Good luck with your own essay, future-guy!)

3dMark price/performance charts

3DMark is a GPU/CPU benchmark used by PC gamers to measure system performance. Here are some great charts showing

My home computer system is very weak compared to these charts, except in one dimension, which is that my 1600 x 1200 display puts me in the top 10% of gamers. Woot!

While many people (myself included) have switched to laptops and/or all-in-ones, if you’re planning on building a new desktop, check out the Ars Technica system guide. The guide does a good job of speccing out a “Budget Box”, a “Hot Rod”, and a “God Box”, and it’s updated every quarter.