Archive for November, 2005

Soft Launch

Wednesday, November 30th, 2005

My new game Bonnie’s Bookstore is now available on www.popcap.com, but for the moment, it’s exclusive to ‘Club PopCap’ members. That said, I think you can join Club PopCap by giving them your e-mail address. The general launch (including other portals) is still a few days off. I’ll hold off on a more extensive Bonnie’s posting until then…

Random griping about Dreamweaver/Firefox/HTML

Friday, November 25th, 2005

So, I’ve gotta vent after spending today doing about an hour’s worth of web work. Well, it should have been an hour’s worth of work, but between Macromedia Dreamweaver, Firefox, and the vagaries of HTML, it took pretty much all day.

Bonnie’s Bookstore is launching on Tuesday (still can’t state all details here – press release pending). So I decided to clean up the New Crayon website a bit in preparation for the launch. All I wanted to do was 3 simple things:

1) Fix the left hand column so that the two sidebars there (news and ‘submit your e-mail’ for our newsletter), justified at the top of the column, rather than centering (which looked odd on tall pages)
2) Set up a page for Bonnie’s Bookstore
3) Change the main games page to a list of games, featuring Bonnie initially, with room for more later.

If web pages were Word documents, I could have done the above in 60 minutes. But instead, I spent about 8 hours completing these tasks.

The biggest problem is that HTML itself is really odd. It’s hard to arbitrarily carve a page up, and then within each section, align the individual elements as desired. Basically, it comes down to using an HTML construct called a table. But rather than just using a single table, you have to use tables within tables within tables – I think my main page is nested about 5 deep in places. To set up these tables, you have to use various tags &#60table&#62 &#60tr&#62 &#60td&#62 &#60p&#62, and for each one, you need a corresponding end tag, in reverse order (i.e. &#60\p&#62 &#60\td&#62 &#60\tr&#62 &#60\table&#62 Forget an end tag, or invert two of them (I was frequently inverting &#60td&#62 and &#60tr&#62 by accident), and Dreamweaver will show you a garbled page, with little indication of what’s wrong. If you’re just a shade unlucky, Dreamweaver will crash, or automatically revert your changes, both of which will wipe out your last 5-10 minutes of work.

In theory, you should be able to use Dreamweaver’s WYSIWYG editor to lay this stuff out, but in practice, the editor starts barfing whenever you get your tables nested more than about 2 levels deep.

So instead, you peer through the html source code, hunting for an overlooked < \td> somewhere. But Dreamweaver tends to create code that spills out to roughly column position 300, so you have to scroll your document horizontally as well as vertically. And if you should dare to click anywhere within the WYSIWYG view of your document, the code view will frequently jump to a random position 100 lines away from where you thought you should be looking.

Eventually, you think you have it right, but you can’t really tell, because what you see in Dreamweaver’s preview window corresponds to how it will really look (in Internet Explorer) about as closely as the picture on the TV dinner box corresponds to the mess that emerges from your microwave 6 minutes later. Coincidentally, it seems to take about 6 minutes to get a ‘real’ preview of a page – even though all you want to do is upload a single 20K page to the web to preview it there. But Dreamweaver instead wants to upload your whole web site, and when it does, warns you that various files on the web are newer than the files on your hard drive. That’s not the case, but Dreamweaver is confused because you live in St. Louis and your web host is in Los Angeles, and apparently nobody who works at Macromedia has heard of different time zones, so all your files are out of synch by two hours and it takes about 10 dialog clicks and warnings to finally get your lone 20K page up to the web site where you can see it ‘for real’.

So, after a few iterations of this, you finally guess right and your page looks the way you want it to in Internet Explorer, running from a real live web site. Then, you decide to see how it looks in Firefox – shouldn’t be an issue right?

Wrong, of course. Despite the claims, Firefox is not as good as I.E. It may be more compliant with the ‘official’ HTML standard – it may be less compliant. I don’t really care – all I know is that it’s different, and when one browser is produced by Microsoft and has a 90% share, any other browser that displays pages differently is out of luck. After a few passes to clean up Firefox issues, I give up. You can still see the last Firefox scar – the fact that the two independent boxes on the left side of the page here have thin lines joining them. In I.E., that displays fine, in Firefox, it’s wrong, and at this point, I don’t feel like wasting more time figuring out why.

[edit – two different readers – PJay and former PopTop colleague Dave Deen both pointed out the error in my HTML code causing this Firefox glitch. It’s fixed now. Still, html is not for the faint of heart. I’ve mastered C++ coding for over a decade, and I couldn’t spot the error without help from others. And the error only showed up in Firefox, but not I.E. – ahh well…]

So anyways, that’s a very small subset of the issues in trying to put together two pretty simple pages and one sidebar in Dreamweaver. The two new pages will be up this coming Tuesday, when Bonnie’s Bookstore launches.

New PC

Wednesday, November 23rd, 2005

I ordered a new PC today from www.gamepc.com.

Athlon X2 4600+, 2GB RAM, Raid 0 hard drive configuration.

It’s always fun ordering a new system – perusing the vast options, ekeing out just a bit more performance.

My current PC is about 22 months old. When I bought it, I was still at PopTop, and regarded this PC as basically a games and ‘net browsing machine – so I got a mid-level $700 HP (Athlon 3000+, 1GB RAM, ordinary HD). It wasn’t bought, or decked out, as a primary development machine.

Still, it’s held up surprisingly well, and, in browsing for a new system and looking at benchmarks, I was a bit surprised that the passage of nearly 2 years time and the move from a $700 PC to a $2100 PC (the cost of the new one) will likely only net me a ~60% speed improvement. But that’s sort of speculative – perhaps it’ll be faster than that.

I know that my current PC takes 2.5 – 3 minutes to reboot (the Windows screen appears after 70 seconds, but then the hard drive thrashes for over a minute as secondary stuff loads, and I can’t do anything until the 2.5 minute mark). Slow reboots, slow compiles, sluggishness with multiple apps going – hopefully the new machine will address that. Some of this is likely built-up cruft that accrues on all Windows machines over time. So hopefully, a ‘clean install’ of Windows, plus a ~60% faster machine, will have an outsized performance difference. In any case, if it saves me 10 minutes a day, it’ll pay for itself reasonably quickly.

I’ll post benchmarks when I get it.

Playing it safe (enough)

Monday, November 21st, 2005

Thomas Warfield blogs that ‘Safe is Risky‘ when it comes to software development, especially for smaller would-be shareware authors and shareware game developers (otherwise known as ‘indie’ and/or ‘casual’ developers). He argues that developers should be more original, and not just go after whatever’s selling best at the moment.

He may be right for shareware applications (i.e. icon editors, utilities, productivity tools, etc). Unless you’re going to substantially differentiate yourself, either with a better product, a different product, or a cheaper product, it’s difficult and probably foolish to go after an established market leader.

However, I think he’s wrong for the games sub-sector, and that far more first-time game developers fail by being too different from the market leaders rather than too similar. For an app, I only want the best one on the market (that I can afford). So, rarely is there a category with more than 2 viable contenders at a given price point (the market leader, and sometimes, an also ran). But even a good game is only fun for most of us for a while. If we enjoyed that game, we’ll go looking for something similar (in play mechanic), but a bit different in presentation/story/theme, so that we can recreate the fun we had with the original.

At the moment, of the vast universe of possible game genres and game mechanics, only about a half dozen are consistently successful in the ‘mass market’ for casual games. These include the market leaders (Zuma, Bejewelled, Ricochet) and their clones. The past year in particular has demonstrated that a close clone of a hit game, albeit with a new theme, can sell quite well indeed (see the string of successful Zuma clones – Luxor, Tumblebugs, Atlantis, Beetle Bomp). None of these game were much better than Zuma, though Luxor introduced a new gameplay style (move along the bottom rather than in the middle), and Tumblebugs used 3D graphics to nice effect. There were only a couple of Zuma clones that failed, and those were markedly inferior in execution to the original Zuma and it’s clones. So basically, if you released a Zuma clone in 2005 of roughly equal quality to the original Zuma, your chances of at least moderate success were right around 100%.

On the other hand, many other developers released very high quality and quite innovative casual games, such as the pseudo-strategy game Oasis. But Oasis failed in the marketplace, as did perhaps 80% of the other games that strayed too far off the proven success path.

I think your best bet is to take a successful game, come up with a new theme for it, and add some significant new twists and other incremental improvements. You may not hit a grand slam this way, but if your execution is good and you’ve chosen the right game to imitate, you’re quite likely to hit at least a double.

And no, I don’t think making Zuma clones is a sure-fire approach for 2006. Another lesson to draw is that the market does have some limits on it’s fascination with certain game types. Bubble poppers burned out about 2 years ago. Bejeweled clones seem to have reached the saturation point last year. Zuma clones will likely reach the saturation point very soon. But if you can follow up a hit game with an innovative variation within 12 months, you’re usually in pretty good shape. And since casual games only take about 6 months to develop, this is a realistic strategy if you’re a good developer.

Active X Version

Wednesday, November 16th, 2005

I just started on the web version of my game (i.e. a version that will play in a browser, without requiring the user to download/install the game).

Back in the spring, I wrote a lengthy article (later reprinted on Gamasutra) on different technologies for web games. Specifically, I looked mainly at Flash and Java, and brushed off other possibilities, including Active X.

So now, of course, I’m using Active X for the web version.

What changed?

Well, Active X has a few problems. It has security holes the size of the Grand Canyon. Users have to click through various scary Internet Explorer warnings to even install an Active X control. And Active X doesn’t work on Firefox (~10% of the market) or on the Mac (~4% of the market). Finally, there’s a significant learning curve in figuring out how to get Active X to work (though that applies to the Java and Flash alternatives, too).

But the advantage of Active X is that you can take an existing game, written in C, and run it directly, with only a bit of wrapper code on it. No need to port to a new language.

But I knew all of the above when I wrote my initial article in the spring and scorned Active X. What changed is that I’m working with a big partner (to be announced in a week or two), who is heavily on the Active X bandwagon, and as a result, many of the Active X hurdles have been lowered. This partner already has their Active X launcher program (the big security hurdle) out on most of their customers computers, and indeed, out for a high percentage of all casual game players. They have a Firefox plugin that makes things work on Firefox (if you go to the partner’s site – many 3rd party casual game sites don’t support it, though). They already have their tech developed and helped me get over the learning curve pretty quickly.

All told, it took me about 3 days to get an alpha version of my game running in a browser, including the time needed to scale my graphics down from targeting 800 x 600 to targeting the browser window size of 480 x 360 (fairly small, both to decrease bandwidth, and to allow sponsors to wrap ads around the game).

Too much money

Friday, November 11th, 2005

Some people have more money than brains. Need proof?

Check out some of these items for high-end stereo buyers (original artcle at ILikeJam)

Opus MM Speaker Cables – $30,750

Volume Control – $6,820

Wooden know for volume control – $485

And for the bargain hunter, a CD cleaner (last seen at Gamestop for $5.99), only $99.99 here. But it’s worth it, because it will enable you to “truly experience the reality of the recorded media onthe [sic] DVD, Compact Disc, Multimedia CD-ROMs and Photo CDs”

Multi-player casual games

Tuesday, November 8th, 2005

For the last week or so, I’ve spent a lot of time playing Ticket to Ride, a simple, fun, multi-player game. It’s a computerized adaptation of a card game where you build train routes.

Bruce Geryk of CGM wrote it up in the most recent issue and, in some e-mail correspondence, he was asking me if I thought it was a ‘Casual Game’, and, why in general, there have been few successful multi-player casual games.

First, I don’t really consider Ticket To Ride to be a Casual Game, in the sense of the market that PopCap, Reflexive, Playfirst, and myself are developing for – older gamers, with a female majority, playing games mainly through portals like Yahoo and RealArcade. Those gamers are unlikely to find Ticket To Ride (it’s only offered through the developer’s web site), and if they did find it, would be put off by it’s complexity. The gameplay is actually rather simple, but the interface and tutorial, while tame by ‘hard-core’ standards, are still too rough around the edges for the casual market.

OK, so why haven’t mainstream casual developers/publishers pursued the multi-player market (much)?

I think it’s a chicken and egg problem.

Multiplayer development is more expensive and harder than single player development, especially when you’re making your first game and don’t have the right experience and tools. That’s daunting upon initial analysis.

Furthermore, a well-developed multi-player game incorporates design decisions aimed specifically at multi-player. It’s very hard to develop a challenging A.I. equivalent to a human player, and so, if you don’t have humans to play against, these games are typically boring.

Which brings us to the chicken and egg part – without an established gathering place heavily frequented by other players, the games aren’t fun. And if the games aren’t fun, then players won’t frequent the (nearly empty) gathering spots.

In theory, the portals are the most logical choices to develop multi-player games. After all, they already have many people visiting their sites. By pushing multi-player games in their banners, they could draw a crowd, at least to sample something new. But think about who some of the major portals are: AOL, MSN, Yahoo – these are internet companies, not game developers. The few games they have developed internally that I’m aware of (card-games, mostly), are hardly state-of-the-art. I doubt if they have the expertise, or the interest, in getting into development in a big way.

Pogo and RealArcade are both portals that have development capacity paired to them (E.A. for Pogo, Gamehouse for Real). I would expect those portals to be the strongest contenders to get into multi-player play. I’ve also heard that Oberon, who more or less run the MSN site, will be pursuing multi-player aggressively in the near future. So perhaps things may change in the next year.

As for developer/publishers both big (PopCap, Reflexive, PlayFirst), and small (well, me…), there’s not a lot of incentive to pursue multi-player at the moment. We don’t really have the resources or the interest to build out a solid, reliable multi-player server system, and the accompanying customer support organization to back it up. And if we develop for somebody else’s system, we’re targeting what’s currently a very small market, and the benefit of any growth in that market would more likely be captured by the hosting entity (they own the consumer relationship), rather than the developer making content for it.

You Have No Options…

Saturday, November 5th, 2005

In the course of designing numerous rather hard-core strategy games over the years, I was one of the foremost practitioners of options mayhem. Railroad Tycoon 3 had an options window with roughly 9 categories, and about 6 options per category.

In the casual games field, the trend is exactly the opposite, and I’ve enjoyed the paradigm switch. Bonnie’s Bookstore has exactly 3 options – Music Volume, Sound Volume, and Full Screen (on/off). I was tempted on multiple occasions to avoid making a decision by instead making it an option for the player. But very few players mess with default settings anyways, and by limiting the choices, you can allow the player to focus on the handful that really make a difference and that they’d really care about, and you can avoid the development complexity that comes with supporting so many options permutations.

Even the traditional concept of a ‘saved game’ disappears in casual games, including mine. The game is automatically saved every time the player exits, and automatically resumes when the player resumes (the player can also reset the game). More hard-core players can create ersatz saved games by logging in with multiple player profiles, but frankly, most players just want to pick up where they last left off, so why burden them with additional complexity? And if they lose the game, they can start a new game on the same level they last played, so there’s no real need for a ‘save early, save often’ philosophy.

Contract Signed

Friday, November 4th, 2005

I finally, somewhat belatedly, signed the publishing/distribution contract for my game (Bonnie’s Bookstore) today. I’ve actually been working with the other party for about a month now, though the contract was snagged for a bit due to some external entanglements.

I started this game on May 16, had an alpha good enough for my in-laws to be playing it in mid July, had a mini-public beta at the end of July, and broad betas from late August onwards. So, out of a roughly 6 month development cycle, the game has been testable for 4 months, and in pretty solid ‘beta’ shape for 3 months, or 2/3 and 1/2 of it’s development lifecycle, respectively.

I’ve never had a game in testable shape for that long on any previous project, including 2+ year projects. Tropico was the worst – the game couldn’t really be played as a ‘game’ until about 2-3 weeks before we GM’d. Call it, generously, a 3 week beta on a project that took 2 years. Anyways, although it was a bit rough around the edges when it shipped, Tropico turned out to be a pretty fun game that a lot of players had long-lasting affection for.

I think Bonnie’s Bookstore is a lot more polished, and perhaps more fun (though in a very different way), than Tropico or any of the other games I’ve done. We’ll find out what the public thinks soon…

What I’m reading…
Best blog post by a software developer that has almost nothing to do with software development…

Date Night

Friday, November 4th, 2005

My wife and I have tried to go on a ‘date’ almost every Friday since we were married (10 years ago).

Usually Leslie and I like to go to a decent, but not overly exotic restaurant, something like Applebees or Red Lobster or their local independent equivalent. A place where I can get a Pina Colada, we can share a funky appetizer, and the menus are (hopefully) paper/cardboard instead of plastic, or worse, a sign hanging over the cash register.

But things have changed a bit with the advent of one, two, then three kids.

Tonight our daughter, Katie (age 6) was demanding to get to choose the dinner destination, which we haven’t let her do for months. She quickly announced that it would be Pizza Hut. There was much cajoling and attempted bribery by Leslie and I (“Katie, if we go to [someplace good], we’ll let you get a movie afterwards…”) But nothing could sway her.

Then Danny (age 4.5) started crying that he didn’t like Pizza Hut. Danny is actually a pretty good eater, and willing to go to moderately exotic places that Leslie and I like. But Danny got fixated on the McDonalds that was right next to the Pizza Hut we were pulling up to.

So we had one kid in hysterics, crying for McDonalds, the other demanding Pizza Hut, and Leslie and I seriously trying to persuade Katie to give up Pizza Hut in favor of McDonalds (’cause at least there’d be less crying that way). Anyways, I think it’s the first time I’ve advocated McDonald’s as a date night destination.

We ended up going to Pizza Hut.