2.15.2007

Stepping half way toward a door, forever.

There's one benefit of being stuck on the side of a hill, lonely as an Eskimo on an iceberg: Valentine's day.

Every year, I wonder what torture Cupid can put me though. Perhaps he'll remind me how single I am by sending a snuggling couple past me in the street. And maybe when I'm sick enough about all the filthy dirty breeders, fueled for a day by this annual capitalistic cash-in on basic human desire, I'll turn to my friends for sympathy and remember that they're all fucking married or in long term relationships. Bastards.

But this year the worst I got was a pink LiveJournal banner. Pink: The color of raw, exposed flesh.

Yehp, it's a lonely life being an indie gaming hermit. Just as you're getting used to the idea of never seeing another human being ('cept your mum), old friends invite you to weddings and parties to remind you what you're missing out on, restoring feelings in limbs that you hoped had numbed indefinitely. You come home and your parents tell you "We're worried you're not getting much of a social life". You and me both.

I've heard people say that if only they had a year to themselves, without distractions or interruptions, they'd produce their master opus. I'm sure I used to, but I've learned that it's really not as simple as that. For a start, you have to keep motivated, and undistracted. If you've been a designer at a fair sized studio, you might find that you get interrupted by countless questions per day (with or without a comprehensive design document to shield you). That's part of the job, but it leaves you feeling like you get nothing done yourself. Moving into independent development with a team of two, you suddenly find you've been so trained to expect distractions that you have to fill that hole somehow. You find yourself thinking things like: “Gosh, aren't rubber bands dangly?”, “That pencil looks like fun!”, “I think I could do with another brevel sandwhich.”, “I bet there's nothing interesting on telly. Oh look! There isn't, but the moving colors are too hypnotic to turn away from!”.

Actually, a lot of this sentiment has come about because of the way we've handled development. In the early stages, it was mostly setting up our engine, and then moving into R&D for the core game play. Although I could still beaver away learning HLSL, doing little experiements, or work on the Design Document (which becomes a bit redundant in a two-man team), I still felt like a second wheel on a unicycle.

Things are really starting to work out, now: Tommy has created a foundation for me to work off, and I'm picking up steam. The big thing I'm doing at the moment is a Zooming Menu Interface (ZUI). These things have been around for a while (Ken Perlin, Dasher Text Interface), and I think they're a really enjoyable and interesting ways to navigate discrete choices indiscretely. They've never really been pulled off in any mainstream real world application, though. Personally, I'd love to see clunky old onscreen keyboard interfaces replaced with the Dasher approach. The PSP (and PS3?) typing interface is especially miserable to use – I mean, I don't like typing on a number pad at the best of times - having to shift a cursor around to even select the number makes it even more of a pain. A zooming interface, at first, might be a hard transition to make, so I can see why both MS and Sony have fallen back on the most obvious approach. I just think it'd be nice if there were alternatives.

Using a game menu as a problem space seems a good way to introduce people, since it's not a huge choice-tree to map, and it's not like we're asking people to ditch the windows paradigm for this to get work done - they're just navigating into a game. It's a toy - a learning tool for them. See, there's great resistance to re-learning interfaces when you're satisfied with your current one, even if new ones are markedly better. The most I hope to do is to introduce people to this idea, rather than try to create any sort of sweeping change.

It has, however, been a complete nightmare to code (not least because I always end up trying things just out of my comfort zone). I've tried to keep the interface indiscrete, and that's been the hardest part of it. Building a zooming interface which simply snaps from one fixed zoom position to another is a no-brainer (and may have to be the backup plan), but approaching an arbitrary tree of nested options, scaling up each menu page correctly while gradually “discarding” sibling menus by sliding them to the side has been really tricky. Every day I make progress, but every stab in the right direction reveals more issues I haven't considered. I've been writing and re-writing the same area of code for some weeks, just trying to get this generalized position/scaling algorithm down. It's slow work, but I think it'll be worth it. My only fear is that since it's not going to fall into Microsoft's recommended menu spec, it needs to be a self evidently worthwhile endeavor – it needs to be perfect.

Microsoft have been chatty with us lately. The RDP application we sent a while back was badly timed because they were phasing out the use of RDPs for indie developers. RDPs require a lot of work to get people on board, and are (as far as I can tell) meant for bigger studios, rather than every Tom, Dick and Harry who wants to pitch Microsoft an idea for “a new MMO with better combat than God of War and better graphics than Crysis”.

Their idea (I think) is to use XNA as a kind of a playground for hobbyists, and to pick the most promising kids. We had our hearts rather firmly lodged in our throats as we explained that our game couldn't be created on XNA. I know, that seems like an incredulous claim; you'd think that even with limited resources, you'd be able to prototype something like Project Gotham Racing in some simple, abstract form. Unfortunately our game relies on a sort of “soft body modeling” which is highly processor intensive and needs explicit control of multi processor threading (which XNA won't give you). It's one of very few cases where technology (in this case the 360's 6 cores) enables game play.

That's the thing about XNA. I'm really looking forward to messing with it after we've done this game (tonnes of experiments stacking up in my head), and have heard nothing but positive things about it from other developers. But any system that wants to give you tools for making anything simpler always seems to inherit a few assumptions about how the tools will be used. While a wide range of game styles are possible on XNA, there's always going to be some exceptional cases which fall outside the realms of possibility. We're one of them.

We explained all this to MS, and rather than smiting us for being petulant (which I wouldn't blame them for: it's me after all.) they actually started showing real interest, asking to see the game. We don't have anything for public consumption just yet, so we had to decline. We're dying to show people the stuff we've done, just to get some encouragement, but we don't want to show things publically, because people are very quick to judge things which are still Work-In-Progress.

The unanimous advice we've had from people is to hold off showing the game (or any game) until you have something which is eye-popping and representative (over-ambitious gameplay target videos tend to set you up for a fall, so show playable demos). Rather than jumping the gun and having a demo backfire on us, we're aiming to have a demo in about 2 months. Yikes. I better crack that menu within a week or so, or I'm moving to a backup plan.

No comments: