Monday, December 23, 2013

Radiator Blog: Four Year Anniversary

This year marks the Radiator Blog's fourth year of existence. It's now ready for preschool, wouldn't you say? (They grow up so fast.)

Much like the first, second, and third times I did it, here's a "best of Radiator" list for 2013 along with some brief commentary -- and please eat some of this cake, forks and plates are on the table behind you.

Thursday, December 19, 2013

PRACTICE 2013 "Well-Made: Back to Black Mesa" talk video is now online.

So I gave a talk on Half-Life / game development at PRACTICE 2013, and the video is now online with a fancy title card and everything. Thanks again to NYU Game Center for hosting and having me!

Well-Made: Back to Black Mesa

The modern AAA single player first person shooter consists mainly of two things: shooting faces in implausibly realistic levels with a pistol, machine gun, shotgun, sniper rifle, or rocket launcher -- and obeying NPCs when they trap you inside a room so they can emit voiceover lines at you. Half-Life's legacy in the latter is well-mythologized in history, but what if we re-visit Half-Life as a masterpiece of technical design, enemy encounters, AI scripting, weapons tuning, and architecture? Spoiler: we'll find out it's a pretty well-crafted game.

To learn more about PRACTICE, visit

Thursday, December 12, 2013

Untitled co-op Wild West boomtown management game that is populated entirely by stray cats

Me and Eddie were wondering what to play. We can't play competitive games because we end up getting too upset at each other, so we usually need some sort of co-op game. However, there aren't that many co-op strategy games out there, or at least ones that are lightweight enough. Then we thought -- if we're game developers, we might as well just make the game we want to play, right?

Also, did you know: Unity particle system can emit particles based on any mesh, not just flat billboard quads?

Sunday, December 1, 2013

Reading public Google Drive spreadsheets in Unity, without authentication

I'm working on a project with a collaborator who doesn't use Unity and doesn't really have an interest in game development (gasp) but it is still important that she can add/edit item data for the game. From a practical workflow perspective, I probably would've kept the item data separate from the game code anyway, to make it easier to balance and tweak stuff. This is usually the stage at which you'd make your own level editor or game database editor or something, but maybe there's a better way -- we can just tell Unity to read from a public Google Docs spreadsheet and parse the data. That way, anyone can edit the game levels or localization strings or whatever from anywhere in the world, and the game client will update data seamlessly.

A lot of this post comes from Clark Kromenaker's great post on accessing Google Docs services with C#, and a lot of my setup process is the same as his.

However, my particular project didn't need any data kept private, the game itself didn't need write access to the documents, and authentication looked like a pain (e.g. using OAuth 2.0 requires you to open a browser window so the user can okay the permissions? Yeah, no thanks) so I worked out how to access read-only publicly published Google Drive spreadsheets without any logins or anything.