The Animal Farm

January 28th, 2010

Water Simulation

Here we go again.

I’ve had the “pleasure” of attempting to implement various water models, the most recent of which was during my Advanced Computer Graphics class. It… could have gone better. It’s amazing how much trouble we had with the equations all laid out in black and white, but after hours of failed hackery we scaled back our attempts and used a simpler model (though surprisingly visually appealing - our water was one of my favorite parts of the finished product).

Well, certain projects call for water again, and I’m not messing around this time. The gloves are off. The terrain is there. The avatar is rendered. The stage is, as they say, set.

And I’m not at all subtly hinting at aspects of Game #3.

This is almost certainly not a fake university.

January 27th, 2010

Heroes Back on Track?

Heroes gets more talk on this blog than any other single show. This is a phenomenon I can’t explain - there are certainly far better shows that I watch, shows which consistently deliver on their promise (we’ll talk about Burn Notice some other time). But every season I watch Heroes, and I’m left disappointed virtually every time.

Except this season? I had my doubts initially, very strong doubts. The Matt/Sylar exchange was farcical, and the Claire/Noah dynamic is as weak as ever. After a bit of time, though, things started to happen right.

It hinges mostly on the development of Samuel. He’s the strongest villain they’ve had since Season 1 Sylar. Part of this is that they’re actually giving him a full season; if memory serves, Monroe, Danko, and Patrelli only received half seasons. The writers are taking their time, and if season one taught is anything it’s that Heroes is better when they slow down.

But aside from giving him time, Samuel is just a better villain. He’s calculated, he’s manipulative, he’s slightly crazy. He’s got more personality than Danko had in a single finger and more depth than Patrelli managed to build in his 20 lines while alive.

The old characters are still the same (and no memorable new ones have really been added), but Samuel is really drawing them together - again, in a fashion that wasn’t done since the first season. Every hero is tied to a single, central entity again. A few of them still wander away to do their own thing (Sylar, Matt, Hiro), but there’s always a place for them to come home.

The show is more fun. It’s not perfect - some of the characters are still riddled with annoyances - and it’s not season one good, but it’s better than season 2 & 3 combined.

It would be nice if Zach chimed in. Or wrote at all. I wonder if he remembers we’re out here.

We’re still alive.

January 24th, 2010

Word Duelist Back in Review

The seven day jail has elapsed, and as far as I can tell Word Duelist is bug free - it’s been tested and retested and has had other sets of eyes on it. So it’s back in Review. The list is short this time around, so hopefully it won’t take a full two weeks like both my previous experiences, but who knows.

As for the next project: I’m hoping to make an announcement soon. Its release is still well off (and to be quite honest, uncertain), but there’s been enough progress on it that a pretty teaser screenshot might be coming your way in the next couple weeks.

All they want to do is talk about words and word-related things. Dictionaries and stuff.

January 23rd, 2010

See the Light in the Press

I did a Google search for See the Light to see what people are saying. Some of this I knew about, some I just discovered, but either way now you get to know it.

A visitor to xblaratings.com did a review. 8/10. Which even I think is insane by any definition of those numbers, but I won’t argue. To quote: “For 80 points, you can’t go wrong with this game… I recommend it for anyone looking for a challenging game.”

xblig.co.uk hosts my second review of this post. 4/5. “I found See the Light to be fun and addictive.”

Emuholic’s Game Blog has a little blurb. Not a formal review, but a quote I’m yanking out all the same: “Although the graphics are a little basic this is a fun little game and I enjoyed it a lot.”

SFX-360 was one of the earlier reviews, and the reviewer was also kind enough to mention the game on his personal blog. 7/10. He gave one of the most heartwarming quotes in his review: “If your[sic] looking for a game that possesses a true challenge, then look no further than See the Light. This is a game that truly fits the main concept of what I believe Xbox Live Indie Games should be.”

That’s all I can scrounge together. I’ve yet to see a negative review; people have actually responded pretty favorably.

Of course, nobody’s actually buying the game anymore. Fat lot of good those reviews did me. ^^ Kind words and all, once the game dropped off the New Arrivals list, it all but vanished from the public eye.

I’m going to post an update in a week or two to add some new levels and clean up some issues people have had. It seems a little silly given the number of trials per day the game gets now, but I can still commit myself to offering decent products. And it’s something to do while I wait for Word Duelist to push through.

Oh, and Project #3? Looking sexy.

Given the situation, I don’t think it’s bad form to flip a coin.

January 17th, 2010

Word Duelist News

I have some good news and some bad news.

The good news: the trailer and one of the promo spots for Word Duelist made it up on GameTrailers. It’s been good for exposure (though not good for ratings - viewers there are pretty brutal for having never played the game). I’ve sent along the trailer for See the Light in hopes of getting that game a little love (and brutality). Though it might have been better to wait for Word Duelist, since I don’t know how many people will remember the trailer when the game comes out, and they can’t exactly mark the release date in their calendar.

The bad news: A bug was found in Word Duelist’s review, so it’s been pulled for now. I fixed the bug in less than ten minutes, but the game still has to go through the entire review process again, and that’s a sluggish beast. I’m going to give it a little love and a very extensive test pass (anyone with a 360 care to help?), but even if I finished that tomorrow we’re not looking at release until next month. AGGGGHHH.

Nobody ever thinks about how they would change if they had to live forever.

January 16th, 2010

See the Light Trailer

See the Light was released weeks ago over Xbox Live Indie Games, but if you haven’t played it yet, here’s a new trailer to tease your appetite!

Later we’ll talk about how much I hate Windows Movie Maker.

January 13th, 2010

Word Duelist Promo #2 - The Duel

The sound quality is a bit rubbish, but the editing came out pretty well I think.

I challenge you… to a word duel!

January 12th, 2010

Word Duelist Promo #1 - Infomercial

Here is the first fun promotional video we put together for the Word Duelist:

Would you like to make more money? Of course you would. You’re not an idiot after all.

January 7th, 2010

The New UI System

Here are some principles governing the design of my new UI code that will be used in the next game.

(1) Automagic. Creating a control should require as little code as possible. This should not come at the cost of flexibility - reasonable defaults will be used unless overridden by the user. To facilitate changing the “reasonable defaults” between projects, a data-driven skinning system is being introduced such that skins can be changed and a default skin can be provided.

(2) Data driven. I should be able to create the entire UI in an external file (in this case an XML file). This not only helps keep the UI separate from the game code but also facilitates creating a tool to help design the UI if I find that necessary.

(3) Little garbage. I’m designing this to interop between Windows and the 360, and an important aspect of the 360 is that garbage collection can be a killer if you’re not careful. There should be absolutely no garbage generated per frame and as little garbage as possible generated when modifying/adding widgets.

(4) Decorators. Things like fades and interpolations can all be specified within the UI file and triggered via code (or automatically triggered when an element is added if appropriate). This is slightly unnatural in that it means the UI code is handling animation and update logic versus raw display of UI elements, but it’s too useful to leave out.

(5) No mice. This UI is designed with the 360 in mind foremost, with PC support being a layer that emulates 360 controller presses. Everything must map to some 360 support, and some controls don’t make a lot of sense without mouse support. Further, things like ‘focus’ have extra meaning, since users can only be controlling one screen UI element at a time, though multiple players may be controlling different things on screen at once.

The UI prototype is in place. I have a solid foundation, but much of it is going to naturally evolve with the next project. I’m going to take great pains to make sure this evolution goes in the right direction so that I don’t have to throw this code away at the end, the unfortunate fate that the See the Light and Word Duelist UI code saw.

Thoughts?

January 6th, 2010

See the Light Postmortem

If you haven’t played See the Light, check it out on the Xbox Live Marketplace. There’s a free trial, and it only costs $1 anyhow, which is just as good as free.

See the Light (StL) was my “first” XNA game. I put first in quotes because it was the first I finished, but Word Duelist and Mr. Oliver Penguin (unreleased) had already seen significant progress before StL was ever even conceived.

StL was developed as a fluke. I had just lost my job and was prototyping ideas; I was making progress on the basis for Zombies Need Love Too, a small zombie puzzle game, before I decided that that game was turning out to be rubbish. The general gameplay mechanics weren’t coming together well, and although I still adore the concept, I decided to scrap it in favor of starting something fresh.

Zombies Need love Too wasn’t a complete waste. Because of it, I already had a level editor and some code suitable for an item placement style puzzle game in place, so deviating from that seemed natural. I started hacking around with with light manipulation, and StL developed naturally from there. A little over two months later and I had a game.

Before I get into the “What Went Right” and “What Went Wrong,” I feel like I should note that StL is not a success by any external definition of the word. It’s making very little money, and its ratings are sitting firmly around the average marker. Still, I liked the final product, and as a learning experience I feel it’s worth talking about. So here we go.

What Went Right
The Right Tool
I’ll lay it out right here: the tile editors available online are all less than ideal. They are each lacking in one crucial feature or another; how 20+ years of tile-based games hasn’t pushed the technology to be perfected is beyond me, but perfect it ain’t. I recognized this early on and said to myself, “I can make something better in 3 days.” Well, that wasn’t strictly true - the tile editor I created (in 3 days) is a mess of spaghetti code and has a few bugs, but it has every feature I want and works pretty well.

More importantly, since the tool was mine, it was easy to modify the code when I recognized an absolute need for rapid iteration. When creating/testing levels, especially for a puzzle game, it is of paramount importance that you be able to make small changes and instantly see results lest iteration time sucks away your life. This was not a hard feature to add - in my case just allowing the level file to be auto-copied to the right directory and having a little in-game code to reload it - but it was a feature that wouldn’t be so easy with the tools out there.

Free Stuff
Free fonts. Free SFX. Free music. Free UI images. Free is a word that characterizes much of this game’s content. I don’t have competency in a lot of areas necessary to make a game, but I’ll be damned if that’s going to stop me. And I’m not sure there’s a problem there.

Personally, I see little need to ever hire an SFX person for an indie game. There are so many free SFX (or SFX libraries for purchase) floating around the internet that putting a person on it is a waste of time and money. Nobody is going to innovate on UI clicks. Gun shots are about as generic sounding as they come, and little misc sounds are a lot more common than you think. More specialized SFX might need some love, but I’m not making audio based games here, so that hasn’t been an issue. The same is true for fonts. There’s even a lot of music if you know where to look, though you have to be careful to keep your game from sounding like all the others.

Solid Framework
I’ve developed a lot of code over the years. Zach has seen me rewrite my ‘core’ classes quite frequently to meet new needs/new coding paradigms. It turns out that framework has become pretty flexible. I was able to put a lot together quickly with very few bugs, and I had very little trouble expanding even for unplanned features. And at the end, the game passed peer review on its first try, which even I didn’t expect. Not bad.

Prototyping
This game wouldn’t exist if I simply jumped into full development for Zombies Need Love Too, and ZNLT wouldn’t have been that good. StL was far better by comparison. It was hard, but sometimes you just have to scrap something until it can be done right. I think ZNLT will resurface in a different form some day.

What Went Wrong
Marketing
I don’t know how to market a game like this. I sent word out to every site I could find that reviews XBLIG games. It’s even gotten a couple favorable reviews. But in the end, it’s still selling pretty poorly. Sales virtually dropped off once it was removed from the New Arrivals list. Maybe a trailer would help? Promoting on popular game dev channels? I considered making a website, but then I have to promote the site enough that it gets hits. Even this site, which has been around for upward of 5 years, still doesn’t get many visitors. Short of paying money for advertising, I just don’t know.

UI
My UI code is rubbish, and making UI modifications took entirely too much time. It’s not data-driven and very little of it is automatic, leaving me with a *lot* of repetitious code uglying the code base. This point will resurface in the Word Duelist postmortem too. UI creation took up a lot more than I expected, and it’s very important to get this code right early on or you’ll be fighting with it forever.

No Early Feedback
Three people saw this game before its release: me, Ricky, and Laura. Ricky only saw the early prototype very briefly, leaving Laura as the primary feedback channel. There are some bits that people have critiqued which could have been caught earlier - the tutorial could use a bit of love (I stressed endlessly over that tutorial), the controls could use a little improvement, and some of the color selection is less than ideal on some TVs. The XNA Creator’s Club has a Playtest mechanism specifically for getting feedback from people, but I admittedly didn’t utilize it, and that was probably a mistake.

Making Puzzles is Hard
I underestimated how much time it would take to make good levels. Back when Zach and I were making Penguin Push, the general level making strategy was “draw something random and try to beat it,” and that took us quite a bit of time to make 30 levels. StL has 64 levels and a lot more variety than Penguin Push.

My mind doesn’t just see tricky puzzles. I basically had to play around - drawing random things - and if I couldn’t beat the level after some amount of time, I needed to give the user a little more slack. When you’re making easy levels this process doesn’t turn out so bad, but when you want to make more challenging levels this becomes very difficult to get right. And very time consuming.

It was hard-fought, but as I moved on I would discover little tricks that players could employ to get past certain obstacles, and I could build on these to progressively make levels more complex. Having a good idea of these kinds of things during the design would probably have made development go a bit smoother and would have allowed for more levels in the same amount of time. 64 was always the ‘plan’ - I was hoping for more if possible, but after 64 I was pretty much tapped.

Conclusion
I have a tendency toward making small, tight puzzle games, so See the Light was a natural fit for my first XNA game. Development was mostly smooth, albeit with a fair share of hiccups along the way. I’m pleased with the final result, and I expect future games will benefit from the experiences gained here.