This blog has moved. Visit Groundswell Games for the latest. Remember to update your bookmarks and RSS feeds.

Friday, November 28, 2008

Morph targets and a disembodied head

It's been a while since I posted something for you to play with.

Well, here you go.

A man's faceIt will take a minute to load (lots of stuff to calculate). Once it does, just play around with the sliders to customize the guy's face. You can click and drag on his face to turn him around. Cool, huh?

Unfortunately, I can't say that I whipped this up after Thanksgiving dinner. Actually I've been working on it for a week or so, trying out different methods of achieving what I wanted -- and some methods of getting nowhere close. Actually, this version is the most complex one I did. The fact that it works is reason enough to post it.

How it works
Now the thrilling explanation. One of the features that Unity lacks at the moment is the ability to handle morph targets (aka blend shapes) imported from 3D tools like Maya or Cheetah. So, the only way to implement them is to code a system by hand. After scouring the Unity forums, I found a script that would handle simple mesh morphs but didn't do anything as complex as multiple blended attributes.

Using the basics of that script, I manged to put together a system that works pretty well. Here's the basic flow of things:

  • To set everything up, I assign the base mesh (3D shape) in Unity, then create a list of attributes that I want to adjust. Each attribute has a reference mesh created by editing the original mesh to get the most extreme version of each facial attribute.
  • When the scene loads, it first stores several pieces of information (this is why it takes a while to load):
    • For each attribute (24 of them in this scene), it builds a list of vertices in the mesh that are affected by that attribute.
    • At the same time it builds a list of offset vectors for each vertex affected by each attribute. This information stores the maximum possible offset for each vertex per attribute. Lots of data building up here...
    • Then we build a list of which attributes affect each vertex. This is the converse of the first list above, and it's necessary to keep the code running smoothly.
  • After all that data has been stored, the default mesh loads along with a bunch of sliders to control the various attributes.
  • Each time a slider is adjusted, we calculate the proper amount to adjust each vertex affected by that attribute. This is done by using a weighted average of all the attributes affecting each vertex in question. By using a weighted average, we can combine attributes like the width and height of the eyes without getting conflicts (this part took me forever to figure out).
  • Once we have the right offset vectors, we adjust the affected vertices by those values and redraw the mesh. Voila!
Optimization
Because there's so much manipulation of individual vertices in this code, it was really hard to optimize. I spent almost the entire day trying to get it to run at an acceptable speed, and I still don't think it's good enough. The main problem is that when a vertex (or group of vertices) is affected by multiple attributes at once, the weighted average becomes harder to figure out and requires more processing juice. I attempted to store offset values rather than recalculating the average every time a vertex is affected, but I couldn't figure it out before dinner. This version runs well enough, so it will have to do.

Oh, and happy (late) Thanksgiving!

EDIT: I posted a new version of the file after getting some serious optimization help from Jamie. It still takes a while to start up (but not as long), and it runs considerably faster once it loads. My code now also morphs the normals as well as the vertex positions, which I had overlooked before.

Tuesday, November 18, 2008

Untold fortunes await

This is the kind of article I don't need to read. It puts crazy thoughts in my head. The article relates the stunning success of a young fellow who developed an iPhone game over the course of four months, put it on the App Store, and made $250,000 in the first two months. Now he's quit is day job, started a company and employs several people. He's living the dream.

The article does point out (a little slowly) that untold fortunes aren't exactly guaranteed. I don't have any serious notions about creating an overnight sensation--though it would be pretty cool. In fact, being the realist that I am, I can think of three big reasons why my path probably won't match his:

  • He designed a puzzle game. Puzzle games have very broad appeal and are great to play for five minutes at a time.
  • He made a game that required minimal art assets (just a few triangles that can flip over). This fact alone probably saved him months of development time.
  • His game was available at the launch of the App Store. This is the big one. The number of games available on the App Store has grown ridiculously fast over the last few months. The difficulty of cutting through the clutter increases with every game that gets added.
I'm not trying to say that puzzle games are easy to make. It's a space that will get crowded really fast, and few have the right addictive qualities. I'm also not that interested in making them. For some reason that will probably doom my game development career before it begins, want to make games that have some element of character and space to them.

The real point probably is that, while there's real money to be made in iPhone gaming, it's going to get harder all the time to get people's attention. But with a great idea and a lot of polish, it just might be possible to create something really special. Success might also take quite a few failures.

Thursday, November 13, 2008

More clout for iPhone gaming

Saw this article about the fact that several game industry heavyweights are throwing their ... weight ... behind iPhone gaming. There's one EA exec that has gotten quite a bit of press the last week or so for saying that Nintendo and Sony should be scared of the possibilities for Apple-based mobile gaming.

The fact that the iPhone isn't a dedicated gaming device doesn't seem to be a problem for these folks -- nor should it be. In fact, the idea that you can carry one device around to occupy every odd minute of your life seems quite appealing to people.

I've been reading about some of the technical limitations of the iPhone, and it definitely seems possible to overcome them. I'm trying to think of it like a retro game development exercise. I'll just pretend I'm developing for the original Playstation or N64.

In case you're wondering, I'm not actively developing for the iPhone, yet. I'm hoping in the next couple of months I'll be up and running. My brother and I are working on a game right now that we're planning to port over, and I have another idea for a game that could be really cool, if I can pull it off. SPUDZOOKA is on the list, too. It might be a good one to practice on, since the game is pretty much done. I would want to add some new levels, though (how long have I been saying that?).

Monday, November 10, 2008

A confession of loyalty betrayed

I have always been an Apple fan. (That's not the confession.)

It wasn't long ago that such a statement would cause listeners' eyes to roll uncontrollably. Often this reflex was accompanied by a sharp exhale of breath that most people would mistake for an impatient sigh laced with sarcasm. Lifelong Apple fans like myself, however, have always been able to recognize the true emotion behind those reactions: jealousy.

Don't bother to deny it -- denial is just part of the friendly game we all play. It's ok; I understand. Now that Apple's cool and Microsoft isn't, I do like saying that I knew that from the beginning, and I told you so, and Mac OS 6 beats Windows 3.1 any day.

All these things are self-evident, and my gloating undoubtedly suits a Mac user admirably. Nevertheless, there is one little problem: I love my Xbox 360.

Maybe it's the allure of hi-def gaming. Or the number of games that appeal to my taste more than the PS3. Or maybe it's the promise of a true all-in-one media center in my living room (not that I've downloaded any TV shows or movies through Xbox Live, yet).

I don't know the reason, but I find, strangely, that I'm excited by the impending arrival of the New Xbox Experience on Nov. 19. Not just a little excited, either -- I'm excited like Steve Jobs is giving a keynote at WWDC. How did this happen?

But there are plenty of things to be excited about, right? I will be able to:

  • Create a Wii-worthy avatar to replace my stupid gamer picture
  • Navigate through thousands of downloadable goodies much faster
  • Stream Netflix movies straight to my TV
  • Some of the Netflix movies are even hi-def
Sure, mostly I'll just be playing games like I always did, but there's something about the new wrapper that has me giddy as a schoolboy. The Netflix streaming itself is pretty awesome, so maybe that's the reason. Netflix is way cooler than Microsoft anyway.

If anybody's interested, here's a review of the New Xbox Experience from Ars Technica.

Wednesday, November 5, 2008

Lament of an anti-social gamer

There was a primer posted on Gamasutra a couple of weeks ago about the growing role of social communities in games (and the challenges of building one that works). It's probably obvious by now that there are huge advantages to building an online social community around games -- give your players a place to compare notes and shoot the breeze with other players, and you've got an almost surefire hit, particularly if the game already has a fanbase. Even games that are entirely played online anyway (say, World of Warcraft) have thriving internet communities because they give players another reason engage with each other while they should be working.

But is it possible to provide too many social options for players? It's a lot of work to set up such things, and there may be a point at which actual gameplay can be sacrificed for the sake of "social" features. The case in point is Spore. I was pumped about Spore before it came out. I bought it within a week after release. It's a great game, and it's revolutionary in several ways, but when you really dig into it, there's not much game there.

The Spore experience is so focused on encouraging players to share their creations with each other that I felt from the beginning as if I were missing half the game because I didn't care about looking at other people's creations. I love that other creations are pulled into my universe automatically, but I haven't spent a single minute looking at sporepedia online or making friends in the online Spore community.

(Full disclosure time: I'm not a heavy user of social media. I get it, and I think it's changing the nature of the internet before our eyes. But I lead quite an anti-social online life.)

It's becoming accepted generally that, if you don't build social features into your game, you better do it online. In fact, one of the suggestions I've heard for indie developers is to focus lots of attention on your online social presence. Make your game about connecting, not just playing, say the experts. They're probably right--all my favorite and most enduring entertainment experiences have thriving communities. My lack of participation doesn't mean it isn't there.

What I'm trying to find, being an ultra-indie, is the right balance. I can't build or support a big-time social platform to supplement my games. Even if I could, it would almost certainly seem incongruous with the scope of the games themselves. Nor can I hope to compete with the big casual game sites (which naturally have full-featured social elements).

Probably, as with most things, the answer is somewhere in the middle. Create a game with in-game social elements (like multiplayer) and then give players a simple way to connect with each other outside the game using existing platforms like Facebook apps or embeddable web site widgets. Guess I'll add those to the list of things to learn.

Thursday, October 30, 2008

Puerto Rico and The Fountainhead

My wife and I got back from Puerto Rico a few days ago. It was a fun trip, very relaxing, and much needed. Basically the only thing I did while in the Caribbean was sit by the pool and read (with some eating, drinking, and snorkeling thrown in).

In my pre-trip search for a book to read, I stumbled on an old copy of The Fountainhead by Ayn Rand that I got from my father several years ago. It's hard to say what drew me to it, not knowing much about Rand or her books, except that I had never read it, and everybody says it's a classic. I'll forego a full review, but I will say that it started out really well, with interesting, complex, and often surprising characters. Unfortunately the story quickly took a back seat to a lot of preaching about the eternal struggle between society and the individual.

Any Ayn Rand critics who happen to be reading this, don't worry. I haven't turned into a raging Objectivist. Nevertheless, Rand's perspective (it's not hard to make a connection between the author's ideas and those of Howard Roark, the protagonist) did strike a chord with me. The notion of the self as humankind's quintessential trait and most valuable asset is hard to refute -- self-awareness being what separates us from the the animals, etc. But more than that, her portrayal of mass media and its influence on unthinking hordes of people was eerily reminiscent of today's reality TV culture.

The Banner
(a newspaper in the book) used sex, violence, and gossip the same way CSI uses the shiny object effect ("it's...so...pretty") to draw millions of viewers, and ridiculous editorials in the book's fictional newspaper affected public opinion like today's 24-hour news stations, both of which spew nonsense because they know people just want to be told what to think. There's even a character who bears a healthy resemblance to Jerry Bruckheimer or Rupert Murdoch -- a media mogul who made his fortune by appealing to the lowest common denominator.

So what does any of this have to do with game development? Directly, nothing. But it's easy to make the same arguments about the money-grubbing and lack of originality in the video game industry as Rand made about architecture in The Fountainhead. Ultimately, I wonder if there's anything truly original to be gained from big studios whose collective goal is to rehash past success as quickly as possible. Rand places all her hope in lone, single-minded, and frequently outcast geniuses (Copernicus, Galileo, DaVinci) to move the human race toward a greater future.

Will some indie game developer take the industry in a whole new direction? With the ballooning budgets and shrinking quality of most games today (and art in general), it seems the indie scene is the only place left to look.

Thursday, October 9, 2008

iPhone development tips

As a follow-up to my last post, Game Career Guide just published an article on iPhone game development tips. there's some good info there, particularly about the general immaturity of the market and some of challenges for designing control schemes for the iPhone. The accelerometer, in particular, is one of the phones most unique features and also, I'd guess, one of the trickiest things to use effectively.

The article also warns against using the touch screen to simulate directional pads or joysticks, since there's no force feedback to tell you when you've slipped off the controls.

I'm still not sold on the idea of iPhone game development, but I have to say it's looking more interesting every day.

Tuesday, October 7, 2008

The future of gaming on the iPhone?

Unity Technologies announced last week the details of their iPhone development license for Unity. I've been waiting for this since they first said it was coming, and the specifics are about what I expected:

  • The iPhone development license is an add-on to an existing Unity license.
  • There are two versions of the license -- one that clearly targets indies and one for larger studios. The indie version is significantly less expensive, but it comes with some limitations, including a mandatory Unity splash screen as the game loads.
  • There is no limit on the number of games you can create with a license (as opposed to the Wii development license for Unity, which has a per-title fee).
With iPhones selling like hotcakes and the complete distribution channel Apple has set up with the App Store, it's quite tempting to get myself a basic license and start work porting SPUDZOOKA.

I can't help but wonder, though, how much of a future the iPhone has as a gaming platform. Certainly it's a great device. The accelerometer and multi-touch display make it perfect for simple, addictive games. But how much is just a novelty? Will every new iPhone owner buy a couple of games because they can and then play them for a grand total of five minutes? Everyone I know that owns an iPhone is constantly messing with it, sending texts or looking things up on YouTube. But when do they play games? During the morning commute? On planes? Though where does any adult play mobile games?

Still (can you tell I'm undecided?), the cost of entry is pretty low -- just a few hundred dollars, which, if you consider it the cost of starting a small business, is unbelievably small with very little risk. And, considering that Unity is perfect for developing games quickly, you can't really go wrong.

For a small team with limited resources, there are remarkably few reasons not to develop games for the iPhone. But the one that makes me hesitate is a big one: in another year, will anyone still be buying games for their phone? What do you think?

Wednesday, October 1, 2008

A whole new look

Hi folks. Believe it or not, I'm still here. In case you didn't notice, I updated the look of the blog. I'm going to be making some more changes soon; this is just a starting point. Among the changes: blogging more often. I have no excuse but laziness for my long lapses lately. Things have certainly been busy, and you'll be happy to know I haven't just been sitting around. Anyway, I hope you like the new look. Stay tuned for more.

Tuesday, August 12, 2008

IdentiFiction: Can it deliver?

I stumbled today on a new project called IdentiFiction, an upcoming online channel for episodic, browser-based games. After checking out the site, I definitely agree with the Rampant Coyote's assessment. IdentiFiction's vision is totally in line with the direction I want games to go: complex characters and stories presented in a way that will appeal to more than our most juvenile instincts.

The weekly episodic format is also appealing to me, since it's something that makes increasing sense as people get used to paying small fees for downloaded television episodes. It's also a great way to tell intricate stories without requiring hardcore time committments.

The question, of course, is whether this team of 50 people can deliver something compelling with their first game, Aosphere. The odds are against them, but maybe that's part of the appeal. In any case, I've marked my calendar for October 15th.

Tuesday, July 29, 2008

Unity 2.1!

Ok, this news is pretty stale at this point, but it's worth posting anyway. Unity Technologies released Unity 2.1 on Friday. This update was a long time coming (about nine months I think), but it's a doosy. The message around this update is that it finally makes Unity MMO-enabled. How? Well...

  • Endless streaming terrains. Yes, that's right, Unity now supports as large a world as you want to create. You can build multiple terrain tiles and stream them in to create truly massive worlds. Anyone following TGNM the last month or so knows I've been working toward a home-grown version of the same thing. I had a feeling the Unity folks would throw something like this, but I couldn't be happier. Ok, I could be happier: I haven't figured out how to make these nifty new features work yet. The documentation is noticeably lacking so far.
  • More realistic terrain lighting. Terrains in Unity 2.0 would only work with directional lights and lightmaps, which severely limited things. You couldn't, for example, light a road with torches in any realistic way. Terrains also now work with projectors, which means better shadow effects (for poor indie owners like me--terrains support real-time shadows for pro licenses) and the possibility for projected spell effects or selectors.
  • Procedural control over characters and animation. Unity always had a really flexible animation scripting system, but now it's possible to create even more advanced effects like on-the-fly creation of skinned meshes. This stuff is pretty advanced, but it seems to open the door for really flexible MMO-style character creation. You can also sync scripted events with animations, making it easy to spawn things like footprints, footfall sounds, impact effects, etc.
  • Streaming assets. This feature, alas, is reserved for pro licenses, but you can now pack up any group of assets in Unity into a bundle and stream it in as the player approaches.
All in all it's a pretty amazing release. There are still plenty of things huge things that would be required to build an MMO with Unity, like all the back-end databases and server configurations, but this is a major step.

Sure, I suppose I could feel annoyed that I spent so much time doing things the hard way with terrain, but who am I kidding? I always do things the hard way.

Saturday, July 26, 2008

SPUDZOOKA updates

In a few free moments the other day I implemented some much-needed improvements to SPUDZOOKA. There aren't any new levels yet, but I did make some changes several people had requested:

  • I made the second level easier. It's a sign that you didn't do enough testing when people repeatedly tell you they can't get past the second level. Mostly it was people who don't play games very often, but in a casual game they're the ones to accommodate.
  • I added a counter that tracks how many targets you've hit and how many are required to beat the level. This helps people track their progress and gives a better sense of how urgent things are as time ticks away.
  • I fixed a bug where the money you earned at the end of the last level wasn't being added to your total. This meant you couldn't buy anymore cannon parts after playing through once.
  • I also added some bonus money to your total when you beat the final level. Now when you enter free play you should have enough money to buy any remaining components and customize your cannon any way you like.
So if you're a SPUDZOOKA fan but haven't played in a while, go back and check out the new enhancements!

Wednesday, July 23, 2008

Seamless tiling terrain, in pieces

I've still been working away on several things since my last post, but most of the sweat has gone into correcting a few issues with the looping terrain I linked a couple weeks ago. I'm happy to report that I've finally fixed the two things that were driving me crazy:

  • Published versions of the file were strangely not rendering the main instance of the terrain from certain angles. Something about it was not working nicely with the camera. I never figured out why the problem was happening, but I did manage to work around it.
  • It was painfully obvious where the seams were between tiles. The cause for this was pretty obvious as well: While the vertices lined up perfectly on the edges of the terrain tile, the normals did not, which made light react differently to two vertices located in the same place along the edges. Unfortunately it took way too long to fix the problem. In the end, very little code was involved (which is not to say that I didn't write a lot of unnecessary code along the way), but I used quite a bit of scratch paper trying to figure out how to access normals on the mesh's borders.
Anyway, check out the new, improved version.

But wait, there's more! I also developed a system to generate floor tiles around you as you walk. This means you could walk forever in any direction, and there will always be something to walk on. By itself this isn't terribly interesting, as you can see. Still, the possibilities are pretty cool. If I could generate random terrains a little more quickly, I could generate a truly endless, randomly generated terrain.

Or, even better, I could create any number of seamless terrain meshes and load them in as necessary around the player a la World of Warcraft. I would just need to store a master grid of terrain tiles and keep track of the player's location. I'm still a few steps away from there, but it's starting to look doable. Pretty cool, huh?

Wednesday, July 2, 2008

Notes from the abyss

Absentee bloggers are no fun. They entice you with a stream of regular posts and then disappear for weeks at a time, offering not a peep. When they do return it's just to supply excuses about a busy schedule or an obsession with the latest big game or to post frivolous items like creatures of the week.

Well, I'll not become an absentee (denial is an ugly thing). I have no excuses. But, for those few loyal readers who still stop by from time to time, here's a little update on my activities.

In short, I've been scattered, lacking focus. When I started writing this blog, I was working steadily on a single, massive, impractical project. Then I decided to turn my attention to SPUDZOOKA, and still I was focused. After releasing SPUDZOOKA, though, I haven't been able to settle on anything. I still work on things, a little here, a little there. But three things have primarily held my attention the last few months:

  • A new game. No specifics yet, but I've been working on a concept for a new game quite a bit different than SPUDZOOKA, one that will focus more on story and character and, I hope, have a wider appeal (not that potato cannons aren't universally entertaining). The difficulty so far is that story and character are tricky to develop and, while I think the concept and setting are good, I haven't been able to find the game in it. People might explore for a while, but what would compel them through the story?
  • A web site concept. I had an idea for a web site recently that I've been exploring, which means reading a lot about databases, php, and xml, and then tinkering with them to see if I've got the programming chops to make this idea happen.
  • Procedural terrain generation. Huh? I don't know where this stuff comes from, but I got it in my head that I would try to see if I could generate an application in Unity that would dynamically generate and display an endless terrain. The usefulness of something like that is maybe a little suspect, but it could spin off into some interesting applications. Unity's terrain system is a little limited right now, for example, so something like this could help people generate more realistic terrains and link them together to create truly massive worlds. Even just linking sections of terrain terrain together is something that could be useful right off the bat, particularly in, I don't know, an RPG. I hit a few tricky parts, but I did manage to create a randomly generated terrain that loops forever. Check it out (it may take a few seconds to compute).
So, I've been working, just not on a single project. Once I settle, I'm sure regular posting will resume. For now, don't forget to check back for the next creature of the week.

Edit: I fixed the bug that people were seeing in the web player and put a new file at the same location.

Tuesday, June 24, 2008

Creature of the week: Quanazillicus

The Quanazillicus prefers to go by Quana, for short.

Tuesday, June 17, 2008

Spore Creature Creator is here

I've been surprised the last couple of days just how excited I was about the Spore Creature Creator (released today). So I downloaded it the minute I got home from work, and I've been playing with it for hours. As expected, it's tons of fun. A stripped down version is available for free (you should definitely check it out), and you can get the full version, complete with hundreds of creature parts, for $9.99.

Unfortunately, the full version for Mac won't be available until tomorrow. Not sure why the delay, but I suppose I can handle it. If you're interested in how it works, there are thousands of videos and tutorials on YouTube (the creator allows you to post videos of your creations).

I'll avoid elaborating further (you can read a good overview here) and simply tell you again to go download at least the free version. All your creations can be made available to populate other players' universes when the full game comes out in September. For inspiration, check out a few of the creatures I've made today.


Thursday, June 12, 2008

3D without (extra) headgear

Not much on the game development front to report today. I've been doing some modeling in preparation for my next project (or at least a pilot test of some concepts). Progress is slow so far. Even with a decent shortcut for character modeling, there's still a lot to learn. The hardest part has been keeping the model simple and clean so it doesn't have too many polygons and will deform properly once it gets into the game. Character design is quite tricky.

Regarding the title of this post, I saw an article this morning about a new television technology that can simulate 3D video without goggles. It basically sends two signals to the screen for every frame -- one contains the image itself, and the other contains a grayscale version of the image, which conveys the depth information. The grayscale image is used by a thin layer of...something...laid over the screen that tricks the eye into seeing depth where there isn't any. That's right, no 3D headgear required (except the round ones you've already got).

In addition to sounding quite cool, it struck me that this technology is reminiscent of bump mapping in games, which uses a similar grayscale image to trick your eye into thinking there's more detail on an object than there really is.

I think there's some amazing stuff coming in the next few years in computer interaction (multi-touch technology) and entertainment technology. It's hard to imagine the kinds of games we'll be playing in another five years, or on what kind of screen.

Wednesday, May 28, 2008

A shortcut for modeling people

As a way to settle on my next project, I decided to do some character prototyping. It's something I haven't done in a while, and it seemed like a good time to try a more in-depth 3D modeling project.

The human form is, as you might imagine, a fairly complex thing to model. It's easier with a solid reference drawing, but I'm not a particularly skilled artist either. So, armed with a basic line drawing enough skills to be dangerous, I set out to figure a way to cut some corners.

After some digging for a free alternative to Poser, I stumbled on a relatively new, open-source product called MakeHuman, a free piece of software designed to help people create 3D models of the human form. Turns out it's not quite complete, but I think it's going to be pretty effective for my purposes.

Upon first opening the program, though, my first thought was, Wow, that's quite an androgynous figure. This might not work at all. The model had kind of a masculine face and a vaguely female body. It turns out, though, that MakeHuman takes an interesting approach to body shape. Rather than selecting "male" or "female" when you start, you get to adjust the values along several continua, including male/female, age, muscle mass, body shape, and weight. The default model happens to lie right in the middle of the male/female spectrum.

After tweaking parameters for an hour or so, I had a character that I thought looked decent, so I exported a model to fine-tune in Cheetah. I've been working the last few days to dress it and simplify the mesh.

The only hitch so far has been that MakeHuman outputs a fairly high-resolution model with about 12,000 polygons. I ultimately want one that has four or five thousand, which should provide plenty of detail. Though Cheetah doesn't have a method for polygon reduction, Blender has a good one, so I used that first to get things down to a reasonable level. Despite the extra step, I'm hoping to end up with a decent model that doesn't require building a human form (particularly the head and face) from scratch.

It remains to be seen whether MakeHuman provides a shortcut that's actually shorter, but so far it looks like it will be a huge help in modeling.

Thursday, May 22, 2008

Blender 2.46 released

This news is a few days old now, but Blender 2.46 was released on Tuesday. This new version adds an impressive list of features, including:
  • Better hair and fur simulation
  • An improved particle system
  • Cloth simulation
  • Render baking for effects like normal maps
  • Ambient occlusion
  • UV texture editing
I haven't used Blender much in my game development process so far, since Cheetah provides most of the features I need in a friendlier package, but this program continues to amaze me. In my opinion, Blender is one of the true success stories of the open-source movement. It is actively developed and delivers a host of professional-quality features in a cross-platform package, for free. To buy a program with the same capabilities would cost thousands of dollars.

And, by the way, it plays nicely with Unity. Blender is definitely my app of choice for advanced 3D modeling and animation effects.

Take a look at the official Blender gallery if you want to be amazed.

Monday, May 19, 2008

New hardware

Got a new computer over the weekend. I've been eyeballing the latest round of iMacs for a while, and they announced a hardware refresh a few weeks ago, so the time was right. This new one replaces my last iMac, which was nearly six years old.

The new one has a 24" monitor -- it's hard to know what to do with all the space, but game development will be a completely different experience. I see a lot less window switching in my future. I might actually be able to have the debugging console and the main Unity window open at the same time. Or maybe even have a programming window up along-side Unity. Oh, goody.

But...I don't have Unity loaded up quite yet. My license wouldn't work on the new machine for some reason (though it is supposed to), but I expect the problem will be worked out in the next day or so. That's really the last piece of the puzzle. Most of the other important software is in place and ready to go.

I'm working on a couple of concepts, trying to figure out what to develop next. Trying to find the right mix of interesting and possible. Stay tuned.

Thursday, May 15, 2008

A musical interlude

Tonight, a musical interlude. I traveled to Charlotte to see Radiohead last Friday. I've listened to Radiohead almost constantly since I was in college, and this was my first time seeing them perform. It was worth every penny and the long drive. They sounded great, put on a fantastic show, and played a lot of my favorite songs. Here's a video of them performing Weird Fishes/Arpeggi at the concert I attended (just ignore the drunk girls in the beginning). This is one of my favorite songs on their latest album, In Rainbows. Check it out.



Am I writing about this to bide time until I have something video game-related to say? Perhaps.

Monday, May 12, 2008

Life lessons from SPUDZOOKA

I still find it difficult to call SPUDZOOKA finished. There are still so many things that would make it better. More levels, more cannon parts and paint jobs, more things to shoot at, a new environment to play in (something other than a warehouse) -- all would help. I even planned to build a level editor at one point.

But, as I've said before, SPUDZOOKA was never supposed to be more than a learning experience. What did I learn, you ask? Did any life lessons stick in my head? Here are a few:

Programming is the easy part
Yes, it's essential. Interaction (gameplay) is what makes games tick, and programming makes gameplay possible. There's no denying its importance. But I learned that it's much more difficult to create compelling visuals than compelling gameplay. Gameplay either works or it doesn't. There are levels of quality in there, certainly, but once you've got your central game mechanic humming along, you're done with the bulk of the work. Everything else is details.

The visuals, though, can go on forever. You've got to model dozens of objects, texture them, and possibly animate them. The process is endless, and it's made even more nerve-wracking by the fact that it's always possible to make something look better. I could have spent weeks trying to create the perfect cardboard box, giving it so much character that you would gasp at seeing it for the first time. But I found that the "good enough" threshold for modeling and texturing comes fairly early in the process for me. Partly I was frustrated my lack of knowledge. I don't know the right tricks to make things look perfect, and I found my patience was limited for experimentation. So I generally created something that was close enough and went with it.

Maybe this means I'm not a natural-born modeler/texturer. Or that I should have been a programmer.

Self-promotion is a tricky game
I loved building the web site for SPUDZOOKA. In my day job I work on a large, convoluted corporate web site. It was fun to create something very simple from scratch. But now that it's there, how do I get people to see it? I can blog about it endlessly, be sure the site shows up on Google searches, submit it to game publishers like shockwave.com (we'll see if they respond), post about it on the Unity forum, and post something about it on Facebook. I've done all of the above, and I even added an e-mail-a-friend feature to the page where you play the game. But there's a critical mass to these things, and I haven't hit it yet. It's been an interesting test. I'll keep plugging away, but I've learned that it's a full-time job to promote something like this using the grass-roots tools of the Web.

If a target-shooting game takes four months...
How long will it take to create an RPG with memorable characters, a sweeping story, and a vast world to explore? This is the big one. It will take (more) years, and a lot of dedication to make it happen. I might be better off focusing on a series of smaller projects and putting the big project aside indefinitely. Or I could figure out a way to divide the big project into smaller ones. Maybe there's another kind of story I can tell that won't be so ridiculously large. Instead of aiming right an an epic, perhaps I should start with a short story.

Regardless of what I decide, I have to decide on something. I'll probably spend the next week or two mulling the possibilities and see what develops. SPUDZOOKA is the first step. Now I have to take the next.

Tuesday, May 6, 2008

Grand Theft Auto IV: early thoughts

Clearly I've been a bit absent from the blog lately. I've got two excuses. One is that I wanted to let the SPUDZOOKA announcement percolate a little. The other is that I've been playing Grand Theft Auto IV in every spare moment. It's amazing that I managed to get SPUDZOOKA out the door at all considering the fact that I bought GTA a couple days before I finished it.

So here are a few thoughts about GTA based on my experience so far. The reasons I play? Entertaining gameplay and world-class writing.

Gameplay
Grand Theft Auto games have been known in the past for having some spotty gameplay. Driving has always been fun, but the weapon targeting system seems to get a complete overhaul with every release. As expected with GTA IV, the driving system and car physics are top notch. It's still amazingly fun just to cruise around town. Now that I've made may way to the second area of the game, there are finally some straight roads to fly down at top speed. I'm still getting used to the hand brake in this one, since it's so easy to skid, but I like the fact that you have to learn how to use the brakes if you're going to get around quickly.

The targeting system again has been revamped, and this time it's pretty good. After a little while getting used to it, I realized that it basically operates like a modified shooter control with a lock-on system added to it. You can walk around with your free target mode engaged and the system will automatically lock onto any enemies that come into view. It works pretty well.

They've also added a cover system, which lets you hide behind obstacles during a firefight. I've found this quite fun so far, since it gives me a way to take out targets systematically rather than just running in shooting like a madman, which I did a lot of in previous GTA titles.

Writing
Lots of people probably argue that gameplay is what makes GTA shine. It's just a fun world to interact with. This is certainly true, but I think the real difference between GTA and a lot of other games is its writing. The characters are bigger-than-life and well developed. Niko, being a typical GTA hero, basically just does what people ask him to, but he seems to have a nicely layered back story that's coming out bit by bit. Plus, a big reason I can drive around for hours is that the radio stations crack me up. This is comedy writing at its finest and a brilliant commentary on American culture.

It's not just the radio stations, though. GTA IV finally seems to have latched onto something that others in the series have flirted with but never explored fully: the American Dream. Sure, all the GTA titles have dealt with the idea of one man pulling his own way up through whatever means necessary. But III and Vice City were simple mob stories. There wasn't much to make you relate to the hero (in III he never spoke at all). He was just a criminal trying to get rich. San Andreas developed Carl's character a bit more and toyed with the idea that he was a product of his circumstances and was somehow trying to rise above all the violence in his life.

But Niko Bellic is different to me. He's a man ruined by his past, and he has come to the U.S. both to escape something and to find something (or someone). He finds Liberty City a very different place than he expected, complicated and damaged. It's this interaction between Niko and Liberty City, his search for inner peace in a complex and chaotic place, that gives GTA IV something special. Niko in effect personifies the city, which in turn is a powerful American symbol, full of as much repressed anger and fear, but full of life as well. I can see him slowly forming a connection to the city and its inhabitants, just like I am as the player, and it's a beautiful thing.

Thursday, May 1, 2008

SPUDZOOKA is here!

Yes, at long last, SPUDZOOKA is live and ready to play. You're excitement is intense, I can tell.

I made a few visual enhancements since the beta version, and I fixed a number of bugs, including one irritating one that would randomly cause people's browsers to crash (never a good thing for web-based game).

There's also a web site where you can learn a little about the tools I used to create the game and leave comments letting me know what you think.

Oh, and one more thing: there's a little surprise for people who play all the way through the levels. It was a much-requested feature. I hope you enjoy it. Ok, enough jibber-jabber. Go play SPUDZOOKA!

Monday, April 28, 2008

Spore Creature Creator

Anyone following Spore with as much interest as me (by that I mean anyone who has signed up for the Spore newsletter) has no doubt already heard about the Spore Creature Creator. For everyone else, here's the deal:

On June 17 you'll be able to download the entire Spore creature interface, which lets you design as many zany, fantastical creatures as you want (I'm kind of curious how closely I can approximate millipede--or maybe one with hooves). The free version gives you access to about a quarter of the creature bits available in the full editor. For $9.99 you can get access to everything.

Aside from the little bit of extra income (yeah, I think they should just offer the whole thing for free), this little package does two important things for Maxis:

  • It introduces people to the game's editors. Not that Spore needs anymore hype, but the creature editors and the others like it in the game are likely to be the heart and soul of this thing. If people get hooked, they'll come back and buy the full game.
  • It gives the developers a way to populate their universe. This was one of my main questions about the game. How were they planning to create millions of creatures for people to interact with? Sure, the volume would be there over time, but a game has to be fun right out of the box if people are going to buy it in any large numbers. And, while I'm sure a sizable team of people is working on the game, they couldn't possibly create the number (or variety) of creatures necessary to make the game really stand out. This way, just get yourself a hundred thousand or so downloads (just being conservative). If each person creates 10 creatures, you've got your first million right there in a few days. Not bad at all.
For anyone who's wondering, any creatures you create will be available to you when you buy the full game in September.

Pretty exciting stuff. And since Apple announced a refreshed iMac line today, I can pick up my new Spore gaming machine in time for the June 17. Oh, and GTA IV tomorrow. When is that government rebate check supposed to get here?

Tuesday, April 22, 2008

SPUDZOOKA...almost...finished...

It's getting close. I can smell it. I'm putting on the finishing touches now -- well, the last touches before I call it finished. Then there's a little matter of creating a web site for the game to live on.

I'm going camping this weekend, so the big launch will be most likely be sometime early next week. Maybe I'll be ready to do it Tuesday in celebration of the GTA IV release. Plus, games always come out on Tuesday. It's easier for the press that way.

On second thought, while maximizing the amount of press for SPUDZOOKA should certainly be a top priority, I think I'll just release it when it's ready. What is a solo game studio for, after all, if not rebellion?

Tuesday, April 15, 2008

14 days and counting...




Monday, April 14, 2008

Shout out(s) and shaders

Wanted to give a quick shout out to a kindred spirit, Marraboy over at Unity 3D -- Zero to Hero. He recently started a blog to chronicle his progress building a game with Unity and Cheetah 3D. He's only written a handful posts so far, but I just want to say, "You can do it, Marraboy!"

It's still by no means proven whether I can do it, but I did get some much-needed words of encouragement from a good friend over the weekend. This no-budget-game-development thing can get pretty daunting, particularly on days when I realize how much more there is to learn.

Case in point: Unity's ShaderLab. It's a programming interface for creating shaders in Unity (a shader describes how an object will look in the game -- what textures it will use, how it will react to light, etc.). This mind-bogglingly powerful feature of Unity is, I'm beginning to discover, the difference between amateur work and real professional visual quality. Sure, modeling and texture art are essential, but custom shaders add the flair.

Of course, working with shaders requires some knowledge of OpenGL's shader language, of which I have none, so I feel quite outmatched at the moment. As usual, though, I'm probably getting ahead of myself. SPUDZOOKA isn't done yet, and I can't get too caught up in the next thing.

No, I shouldn't be worrying too much about shaders yet. They just remind me that I need to take things one step at a time. Visual polish is not my strong suit, since I never had any formal training. But that's ok. I like to think that what I lack in skill, I make up in blind determination.

Tuesday, April 8, 2008

Casual games, social portals, and lots of money

I've never been that interested in casual games. Aside from Tetris, which I played as a child when it was the coolest thing around, I've never spent more than 10 or 15 minutes playing a casual game.

And yet, with SPUDZOOKA getting closer to being finished, I find myself strangely drawn to the money-making possibilities of more laid back virtual entertainment. I don't expect SPUDZOOKA to make money. The main reason for this defeatist attitude is, of course, that I don't intend to sell it. It's my first game. It's not that good.

I do think a lot, though, about how I might make some extra cash making games. Developing casual games is one way to do that. It wouldn't be a lot of money, but this new feature article on Gamasutra by Daniel Cook (have I mentioned I really like their articles?) has put some crazy ideas in my head about how it might be possible. The secret? Online community. Create a place where people come to play your games and, once they arrive, make some friends. Sure they'll come back because they like your games, but they'll also come back to hang out.

There are some pretty daunting challenges, though, like customer support and the growing super-power of online casual game portals (or maybe the fact that you still have to crank out games). Cook suggests that well-known portals like Shockwave.com are essential to a blossoming casual-game business, but that their value is to help you win long-term customers, not sell one-off games. This is a good thought, since most portals don't demand exclusive rights to publish a game.

But, as one reader pointed out in a comment, what happens when the portals realize what's happening and won't promote your games unless you agree that they won't be attached to any other social space? Then you're left with nothing but word-of-mouth to generate new customers. That's where I am now with SPUDZOOKA. It's a struggle, and I'm not even selling it.

Despite the challenges, this article has my head buzzing with possibilities. But that's nothing new; my head is always fuzzy with crazy ideas and delusions of grandeur.

Thursday, April 3, 2008

SPUDZOOKA beta is live!

The SPUDZOOKA beta test is now live and ready for vigorous testing. Please leave comments and let me know your thoughts.

I made a number of enhancements to make gameplay a little smoother and the overall experience a little more interesting. Keep an eye out for:

  • Cannon animations
  • A new ammo type
  • Customizable paint jobs!
  • A simpler cannon editor (It's no longer possible to have more than one cannon, but that feature wasn't necessary anyway.)
  • Better ammo switching (Use the number keys now instead of the tab key.)
  • Some new sound effects
  • Two new levels
It's pretty exciting to have things coming together. There's still a long list of things I'd like to add to the game, but I'll have to decide how much more time to invest. Like I've always said, my real goal is to make games that tell stories, so I don't want to take away from that.

Hope you enjoy the beta!

Monday, March 31, 2008

SPUDZOOKA on the iPhone?

Unity Technologies announced today that Unity will support development for the iPhone. Probably this means that the ability to build games in iPhone native format will eventually be built right into Unity. Currently it's possible to build games in a variety of formats (including Web player, Mac stand-alone, Mac Dashboard Widget, and PC stand-alone simply by choosing which one you want to build.

There's a lot of hype now, with the iPhone SDK now on the market that mobile gaming is going to take off. It could very well happen, and the Unity game engine is likely to be at the forefront of 3D gaming on the iPhone.

Very cool. Someday you might even be able to play SPUDZOOKA on your phone.

Wednesday, March 26, 2008

Narrative "modes" in video games

As a follow-up to my last post about differences between Japanese and Western-style RPGs, I thought I would point to another article from Gamasutra (what can I say, they publish great articles) that I saw today. It's an interview with two of the people behind Portal, on which, if you haven't been reading lately, I have a bit of a fanboy crush.

It's a great interview (if a smidge rambly in spots), but the part that's relevant here is the bit about, well, narrative. Here's a quote from Eric Wolpaw, Portal's lead writer:

We had this theory that games tell two stories. There's the "story story" which is the cutscenes and the dialogue, and the "gameplay story" which is the story that's described by the actions you take in the game world. The theory was that the closer you could bring those two stories together, the more satisfying the game would be.

I spent years and years reviewing games, and that's something that always bothered me in games, where the delta between the two stories was real high. I promised myself someday that if I ever got the chance, I'd try to make a game where that delta was almost zero. It was a conscious decision that we wanted to try and keep that world.

This to me is a really important insight and helps explain the special sense of immersion and, for me, empowerment that comes from playing a game where your own actions in the game world are tightly aligned with the narrative being "told" in the game.

I've only played a few games that gave me this feeling. Portal is one; Myst is another. Both are first-person perspective games (where that perspective is never broken), and both are puzzle games. Both present a profoundly coherent sense of place. Seems like the start of a promising recipe. Even Myst, though, doesn't completely close the gap between "story story" and "gameplay story." As the player you wander around creating the "gameplay story." The "story story" has, for the most part, already happened and is revealed as you play through pages you find on the various islands.

In other words, your goal as the player in Myst is just to supply an ending to the "story story." In Portal you supply the whole thing, which is pretty special.

Seems like the same idea could be applied to RPGs in their various incarnations. In Japanese-style games a la Final Fantasy, the gap can be pretty wide. The story might be compelling and the characters unforgettable, but the gameplay mode and the story mode are totally distinct. Gameplay stops when narrative starts and vice versa. Western-style games maybe close the gap a bit, but there's still the sense that your total experience in the game world is much different than the story being told through the main quest line. Sure, I could convert my gameplay experience with Oblivion into a story, but, man, would it be boring.

Monday, March 24, 2008

Japanese vs. Western RPGs; story vs. gameplay

Gamasutra posted an article a few days ago about the 20 essential Japanese RPGs. It's pretty long but worth a skim. I've spent most of my gaming life (until recently) fairly insulated from reviews and online chatter about the quality of games I played. As a result, I knew what I liked, but I didn't know if anyone else agreed. It was fun to read someone else's take on those games.

Turns out I have played quite a few of the ones listed, including:

  • Final Fantasy IV
  • Final Fantasy VI
  • Final Fantasy VII
  • Final Fantasy VIII
  • Final Fantasy X
  • Final Fantasy XII
  • Chrono Trigger
  • Chrono Cross
Lots of Square games on that list, obviously, but they were only one of two or three outfits creating US-bound RPGs in the 80s and 90s. Plus, I liked all their games, so I tended to go out and buy them.

I've never played Xenogears, but I did play the first installment of Xenosaga, and I definitely agree with this article's take on that game:
Still, once again, the plot [of Xenosaga] was simply far too ambitious for its own good, and the number of planned installments was cut down from six to three, compressing the plot even more. It didn't help that the first two games were saddled with terrible pacing issues, plodding cutscenes, and boring battle systems.
Japanese vs. "Western" RPGs
This article also intrigued me because I'm still working on Oblivion (which will no doubt be a looong process), and I've only just begun to understand the differences between Japanese and Western-style RPGs. This is yet another way in which I'm a little slow, but I have never really spent much time with any Western RPGs before Oblivion.

I tend to like story-based games with interesting characters, and Western RPGs have leaned away from story and more toward gameplay, with their open-ended worlds and emphasis on first-person role-playing.

To avoid launching into a rant about the state of stories in games (which you can find here at Blog of War, and also here and here), I'll just say that so far I still prefer the Japanese model. Most definitions of narrative require an some act of telling (by an author and/or narrator). It's this author who interprets events and helps shape their meaning.

Japanese-style RPGs tend to acknowledge the existence of an author/narrator and adopt a more cinematic style -- they tell a story. Western RPGs tend to drop you in a world and let you, in a sense, create your own story. The trouble with this model is two-fold for me:
  1. Most of us aren't good story tellers. The things we do in these spaces probably isn't very interesting. If I choose to spend my time in Oblivion on alchemy, I'll just run around collecting seeds and roots all the time. Nothing riveting there. Sure, I could play the thief or the wizened wizard, but these are just types; they're not characters with flaws and emotions. I want characters.
  2. There's no one to tell the story to. If a story needs a teller, it also, out of necessity, needs an audience. If a man tells a story in a forest and no one is there to listen, is it still a story? Sorry... The point is that I can certainly entertain myself in a sandbox-type game -- where I'm the story-teller with no audience -- but I find it far more compelling to be an active audience member, using the available gameplay to move a story along.
That's my two cents. What's your preference?

Monday, March 17, 2008

Open-ended dialog and moody NPCs

I spent quite a few hours this weekend playing Oblivion. It's reasonably entertaining so far; the size of the world and the number of possibilities for gameplay really are impressive.

The thing that continues to amaze me, though, is the amount of dialog in the game. Seriously, they must have had dozens of people writing dialog what must be thousands of virtual inhabitants. Characters' dialog changes based on what's going on around them and their disposition toward you. It's all so well conceived. Unfortunately, it doesn't work.

Here's a little exchange illustrating how I often feel while shooting the breeze with denizens of Cyrodiil (paraphrased for your entertainment):


Me: Hello!
Sour-looking lizard man: What do you want?
Me: I'm new in town. What's with that paranoid elf guy running around town all the time?
Sour-looking lizard man: I don't know you well enough to talk about that.
Me: [Here I tell jokes and boast about my prowess as an adventurer to get the lizard man to like me. Then...] So, about that paranoid elf guy?
Sour-looking lizard man: Oh him. I think he's following me. He looks at me strangely sometimes, and often carries on about a conspiracy. I try not to let it bother me, but he really creeps me out.
Me: Tell me about the town. Did I say I was new here?
Sour-looking lizard man: The town is ok, I guess. Hey, can you help me gather a rare root to throw into a magic potion?
Me: Uh, sure.
Sour-looking lizard man: Great! I think there are some roots near the trees outside town.
Me: Right. Roots near trees -- got it. I'll let you know when I find some. Good-bye.
Sour-looking lizard man: Leave me alone.


Open-ended dialog systems are a great idea. In theory they create a real sense of place and give the impression that you're experiencing a living, breathing world. The trouble is they involve too much filler and not enough coherent conversation. Real conversation is much too complex for games at the moment, so relationships between the player and non-player characters (NPCs) -- or even between NPCs -- get distilled into grossly simplified numerical values like "disposition" or "reputation."

For a class once I created a dynamic dialog system designed to address some of these issues by scoring relationships between characters using several attributes instead of just one (for example, trust, loyalty, friendliness, anxiety). The idea what that everything you said to or did for an NPC would affect those attributes. Over time you would actually build a "relationship" by spending time with NPCs, and the quality of that relationship would have a dramatic affect on what kind of information they would share.

Aside from the obvious practical issue of writing all that dialog, my grand system and others like it face a pretty serious challenge -- there's too much dialog.

The beauty of closed systems (where dialog is delivered through cut-scenes or one-shot statements) is that they can be more carefully crafted. Sure, they may sacrifice "realism," but let's face it, 90% of the words we utter are unbelievably mundane. Anyone reading this knows it's certainly true about me. A truly open-ended, flexible dialog system would be prohibitively expensive to create and populate with content.

I haven't given up on Oblivions NPCs yet. Right now I find their moodiness kind of endearing, but who knows how long that will last. I'm fickle like that.

Wednesday, March 12, 2008

A useful user interface, part 2: The GUI

I've been running the play test of SPUDZOOKA for several days now, and I've learned some really useful things. Special thanks to everybody who has given the game a run for its money. It's going to end up a lot better because of it. (If you haven't tried it out yet, you can play here.)

The feedback has been positive overall, but being my own harshest critic, I feel like the game still leaves quite a lot to be desired. I think the concept is a decent one -- a little light-hearted destruction goes a long way -- but there are some tweaks to the user interface that will make the player experience better. Thus begins the second part of my brief series on user interfaces.

The graphical user interface
There are two main elements to SPUDZOOKA's GUI, and probably most games with a play-level-then-upgrade structure (that's a technical term -- you like it?): the HUD (heads up display) and the upgrade interface.

I wanted SPUDZOOKA's HUD (the graphical interface elements that appear on the screen while you're playing a level) to be as simple as possible. In the top left corner of the screen, there's a score display and a timer. These elements simply let you know how you're doing. The timer is most important while playing, so I think it needs to be much more prominent, maybe even moved to the top-center and given a more graphical treatment.

In the lower left there are two elements, a squarish graphic with a number in it, and, next to that, a smaller squarish graphic with some potatoes in it. These are both really important, but I don't think they work very well.

  • The button-looking graphic with the number is there to denote which cannon you are currently using. You only start the game with one cannon, and there's no indication what this number means until you edit your cannon for the first time. Even then, you need to build and save a second cannon before the number means anything. Right now there aren't enough levels for that to be necessary. I'm thinking about cutting out the ability to build multiple cannons -- we'll see.
  • The small graphic showing the potatoes is there to denote your current ammunition. Again, you won't know what it means until you edit your cannon for the first time (I think that's ok), but a lot of people who played couldn't figure out how to change ammo. The trick is that you can't always change ammo -- it depends on which kind of barrel is attached to your cannon. I think the meaning of the ammo icons didn't translate well from the editor, and people didn't remember whether they had access to multiple ammo types or not. Probably I need to add an icon for each type of available ammo in the HUD and give some indication of the currently selected ammo.
That's it for the HUD. I wanted to include enough elements to keep players informed during, levels but I think I need to go a little further to explain things.

Now onto the cannon upgrade interface. The idea here is that players can mix and match cannon components to create up to three cannons that not only look cool, but have different strengths and weaknesses.

To make this mix-and-match feature work, I needed several elements:
  • A way to select components of various types,
  • A way to buy components that can later be mixed or matched,
  • A place to display the current cannon configuration and its stats,
  • Some indication of which cannon (of the three available slots) was currently being edited,
  • A way to save a new configuration or return to the previously saved cannon in that slot.
The three component selection areas work pretty well and are fairly intuitive. The result of cycling between components is immediately apparent. The data display for the current configuration seems to make sense as well (except maybe the list of available ammo).

Things start to get tricky, though, when players try to figure out the function of the buy and save buttons. The problem is that upgrading your cannon is a two-step process. First you have to buy the new component, at which point it goes into storage, and then you have to save that component to your cannon, at which point it moves from "in storage" to "in use." The previously saved component on that cannon moves back into storage and becomes available for use at a later time.

It's the inventory concept that makes things too complicated. There are (small) text elements displaying the number of each component in storage and in use, and it's clear that buying a component adds one to storage. Nevertheless, the intuitive behavior, I think, is for the "buy" button to save that new component immediately to the cannon. This seems to be what most people expected.

My attempts to hint at the desired behavior probably weren't enough. The background on the component selectors turns red when you don't have enough in storage to use that component in a cannon (meaning you have to buy one). The background of the full cannon display on the right turns red when you haven't saved that configuration, and you can't save it until you have enough of each component in storage (which would cause the background color of the components to be blue). In other words, once everything is blue, you're good to continue on to the next level. If anything is red, you've got a problem.

If I'm going to keep this two-step system, I think I need to create some additional cues in the interface to let people know what to do. I could make the "buy" button flash when an additional component is required and/or make the "save" button flash when the cannon is ready to be saved. Those two things would probably help a lot.

You can probably tell I've put a lot of time into the cannon editor and the GUI for SPUDZOOKA. I think my first go was passable -- players could figure it out after a few tries -- but I need it to be obvious on the first try. And that will take some more work.

Saturday, March 8, 2008

SPUDZOOKA play test!

I'm happy to announce today that my first play test of SPUDZOOKA is ready for your perusal and feedback, constructive or otherwise.

Please take a few minutes to play through the game and then write comments on this post about your experience. Feel free to comment on any part of the game, including:

  • Overall fun factor
  • Graphics/visuals
  • User interface
  • Cannon upgrade system (could you figure it out?)
  • Sound/music
  • Any bugs, funky stuff with playing the game in your browser
Since this is just a test version, I feel obligated to include a small disclaimer: While the gameplay is relatively complete, you will certainly encounter bugs, and there are probably some considerable balance issues with the various cannon components. In fact, there are several cannon combinations that don't even look physically possible. One final note -- the paint job portion of the cannon editor doesn't work yet.

Ok, without further ado, you can play SPUDZOOKA here!

(To play, you will need to install the Unity Web player, which can be downloaded free for Mac and Windows here.)

Tuesday, March 4, 2008

New Nine Inch Nails

For all the Nine Inch Nails fans out there, Trent and a few cohorts have put out a new album: Ghosts I-IV. Coming pretty close on the heels of Year Zero, this one follows Radiohead's lead and is available primarily in digital format. Oh, and they're all instrumental. I've always been a fan of the more ambient NIN stuff anyway, so this is quite exciting.

There are several options, including a free version containing just the first 9 tracks (there are 36, count 'em, 36 in all) and a $5 dollar download only containing all 36 tracks, a PDF booklet, and some cool web-ready images. There's also a $10, dual-CD purchase due to be shipped in April.

I went for the $5 download, and it's quite good so far. There's so much music for the price, though, even a mediocre release would still be worth it. It did take me two days to get it, since the web site was so hosed up.

Score another one for the bands fighting against record-company tyranny.

Thursday, February 28, 2008

A useful user interface, part 1: Play controls

As a professional "web guy," I have more than a passing interest in user interfaces. The most brilliant concept or the most beautiful design means nothing if people can't accomplish their desired tasks on the web. The same is true, of course, for any kind of application, serious or silly.

For SPUDZOOKA to appeal a wide audience, its play controls and graphical interface must be simple, intuitive, and easy to master. Frustration is the opposite of fun. I don't know yet if I've succeeded in delivering the fun, but here's a look (in two parts) at the basic process I used to design the game's various interface elements.

Play controls
SPUDZOOKA is primarily a target-shooting game, but it borrows a lot of its play controls from first-person shooters. The challenge is to keep the controls as streamlined as possible. Here's what the player needs to be able to do, and the reasoning behind the control scheme I chose for each task:

  • Aim and fire the cannon -- The goal of each level is to destroy as many targets as possible within a set time limit, so aiming and firing is kind of important. Thankfully, as anyone who ever played a first-person shooter will know, the mouse provides a perfect interface for this: move the mouse to aim; click to shoot. Easy enough.
  • Switch weapons -- Lots of target-shooting games stop there, but SPUDZOOKA lets you carry more than one potato cannon at a time, so there has to be a way to switch between them. Another first-person shooter convention fits well here: using the number keys to switch weapons.
  • Switch ammo -- Yes, more switching. Clearly everyone knows that different spud cannons shoot different kinds of ammunition, so I had to work that into the game. The number keys are out for this one (even the higher numbers), since they are being used to switch weapons. I could map several letter keys to various ammo types, but that still seemed redundant and possibly confusing. Instead I decided to use a single button (tab) to cycle through all the available ammo types for the active cannon. The disadvantage here is that it could take a bit longer to select the desired ammo. However, because each cannon will only be able to shoot a few types of ammo, a cycling control seemed to work well enough (let me know if you disagree).
That's it. Seasoned FPS gamers (who made it this far) may have noticed that one important control is missing: the ability to walk around. Seems like a big omission, I know, but I have decided for the time being that the player will be stationary. I'm sure it seems limiting, but there are a couple of reasons for it.
  1. The levels are small and potato cannons shoot a long way. If you can run around and shoot things, it might be too easy. Enabling really slow movement would probably irritate people. Better not to risk it.
  2. I don't want to complicate things. A lot of the skill in FPS games comes from the player's ability to move and aim at the same time. I know this because I am quite inept at jumping while shooting in Halo, which seems to be necessary for survival in multiplayer mode. While plenty of people certainly possess these skills (they have all killed me in Halo), I don't want those skills to be a requirement for my game. I want to focus the player's attention on choosing the right cannon and ammunition for clearing obstacles and hitting targets, not on maneuvering quickly and dexterously through space.
Once you play through a few levels, you can tell me whether you're completely bored standing in place. In part 2, a look at the graphical user interface.

Good progress...and a long way to go

SPUDZOOKA is coming along pretty nicely now. I've got the backbone of the game working, which means that it's possible to play through several levels and edit your potato cannon in between. You can also change cannons and ammunition on the fly. Everything fits together, and I don't get any code errors when I play through it. All things considered, that's pretty good.

The bulk of the work now is in two places:

  • The graphical interface. I need to make it prettier and, I hope, completely intuitive. The goal is for people to be able to play with minimal instructions. I figure a casual game like this can't survive more than a few seconds of, "What am I supposed to do?"
  • Level design. I've got a couple test levels built, just to get the flow of the game set up, but they will need to be completely redone. Thankfully I set things up so building new levels shouldn't be too hard.
  • Ok, three places. I also need to polish up the sound effects and come up with some music. Naturally I plan to compose and record it myself (I've gotten this far, why bring in anyone else now?) That could take a while, but it'll be fun.
  • Well...maybe four (nobody expects the Spanish Inquisition). The whole point of building this thing is for people to play. So I have to put the game out there. At the moment the plan is to publish it on a web site, which I have to build. I don't envision anything too complicated, but it'll take a little time.
My goal is to have the game itself finished by the end of March. I doubt I can get the web site done by then as well, but who knows. I'm hoping to have something for you all to play test in another week.

Monday, February 25, 2008

A virtual haircut

Check this out, folks. One of my friends pointed me to a really cool YouTube video containing some amazing sound design.

WAIT: Before you press play, put on some headphones. It won't be as cool otherwise.



Yeah, ears are funny looking, but they're pretty cool, right?

EA and TakeTwo

A quick news post today to let everyone know (I was a little slow to find out) that EA has made a bid to purchase TakeTwo, owners of Rockstar Games and makers of the Grand Theft Auto series. TakeTwo has refused the bid, but the folks at EA apparently aren't backing down; they have published this open letter to TakeTwo and the rest of the gaming public. Thanks to Screen Play (an Australian game news blog that I read) for covering the story.

As a huge fan of the GTA series, I don't quite know what to make of this. Certainly the series will continue regardless of what happens with these two companies, but I hope GTA IV won't be delayed too much because of it.

The similarities between EA's offer and Microsoft's rebuffed offer to buy Yahoo are pretty obvious here. All we need is EA's chief rival to come out publicly condemning the acquisition as hazardous to gaming public's right to virtual entertainment. Get on it, Vivendi.