A Whole New World

Week 4 of So Play We All had a budget of three hours and a topic of “game world”. The topic for me might as well have been “bugfixes”, because that’s where most of my time went — but the world of Oaqn took a big step up in graphics quality.


Before I get into that, let’s look at the Week 3 responses. Luke caught a bug in Oaqn that blocked the rendering from appearing in many browsers, but I really want to respond to Jim’s post.

He pointed out that Steppe (the renderer from Fleeting Fantasy) is brand-new tech and I’m taking a lot of risk by integrating it: there’s limited browser support, it doesn’t fit the modern graphical style, and it’s slow. I think it’s a great bit of criticism.

This chart shows support for Canvas, the only part of Steppe that doesn’t yet have universal browser support (contrary to Jim’s post, there’s no CSS3 in use, and JS is very well-supported). Big red box there for Internet Explorer, which is very popular. I knew that was the case going in, but after a decade of professional web development I’ve burned out of ability to care about Internet Explorer for personal projects. I’m going to add code to detect it and tell people to use Chrome Frame or a good browser, and otherwise knowingly take the hit to my usage. Life’s too short to deal with IE.

Jim criticizes Steppe for not fitting the modern trend towards graphical photorealism. That’s also true, but I’m hoping that it has a unique and attractive look that ends up being a selling point. I’m not trying to keep up with the graphics of modern (non-browser) games, I’m trying to do something I think will stand out and have a striking appeal (and see below for the new screenshot, wow).

Last, Steppe is slow. Also true, and one of the reasons I’m building a slow-paced game about trading caravans rather than a first-person shooter. I’m OK with it taking 1-5s to render a scene because I’ll be updating the view (and the players’ positions) only once or twice per minute. For me, Steppe is more of a living map than a window into the world.

There was also my response from last week talking about monsters, which has some nice silly bits and then a couple unmissable comments. Luke points out that Jim choosing to write a framework puts him effectively out of the running and into using the contest as just a motivation hack, but Jim thinks he’s going to overtake us. In an instant message conversation I pointed out to Jim that he should start talking about his game design aside this dry, non-gamey stuff, so hopefully his blog will get a bit livelier.

This Week (ya finally, I know)

Actually, I mostly did bugfixes and cleanups this week. Badges show “Name: Description” instead of only their description when you hover them (a two-second fix). I did some fixing to the cron job that takes database backups, but later saw that it works by hand but not when called by Heroku’s cron. I fixed signups, which markweb pointed out gave a nonsensical error about the player not having a Plat. This was a 45m time sink, I thought I found a bug in my login library before I got straightened out.

As mentioned last week I left myself cleanup of the Steppe demo code. That took about 15m to get it automated and neatly stowed away, then I continued hacking on it to improve the integration with Oaqn. This is where I got my real win for the week.

Last week, Steppe was dropped in by hand with some static data to show that it could work. I got it properly using my texturemap for the Plat rather than compositing it’s own textures, and that was a big jump in graphical quality:

You should go see it live, I had a lot of fun clicking my way around the map, following coastlines, finding hidden lakes, etc. All of a sudden Oaqn feels like a place, I’m really happy with how this looks and can’t wait for sprites to be integrated so I can add the player’s caravan and cities to the display.

The next step of integrating Steppe and Oaqn is making Steppe pull data live from Oaqn on the terrain to display. I did a significant cleanup of the demo code I pulled from Andrew J. Baker as a way of working my way all through it. I now have a firm understanding of it and it’s nearly ready for that integration, so that’ll be a project for next week.

The Task List

So, here’s what I got done:

  • badge tooltip should be “Name: Description”
  • fix db backups
  • clean up same-origin hack:
    • remove scp’d files from s.oanq.com
    • create valid html page for iframe,
    • move css into stylesheet
    • generate iframe html from haml
    • push iframe html + js on deploy
    • set up local dev to use local, not production steppe
    • remove old composited texture images
  • plat error on signup? bug in devise?
  • fix plat error on signup
  • major cleanups to steppe integration

I also received more beautiful art from my artist, charging another $24.24 off the ledger and bringing my balance to -$34.35:

Thanks for reading this week’s update. Please go vote for Oaqn in this week’s poll.

2 Responses to “A Whole New World”