Archive | Development RSS for this section

Back From The Dead

I honestly don’t know what week we’re on for So Play We All, I’ve missed a weekly update for the first time. Well, for the first three times in a row. Each time I decided not to work on Oaqn in favor of bigger, more stressful things going on in my life. Which is to say: I’m not going to make an excuse, I’m just going to pick it back up and make more progress.

As a side note, we’ve tinkered with rules since my last update. When we miss a week we’re allowed to bank that time for later use (which I think was three instances of 2-6 hours, but I’ll have to check). I hope to use up that time in the next week or two, but we’ll see what my availability is. First I’ll have to get my Oaqn hours done more than 24h before the deadline, which I’ve only managed the very first week of SPWA.

Another rule change is that we’re going to do our responses to each others’ updates in our next update rather than as a separate post, so those will start appearing here rather than on on my personal blog. Finally, we’re going to indicate our availability for hours at the bottom of each post rather than try to remember to coordinate emails to plan – not a huge deal, but I mention it for anyone wondering why I’ll keep closing with it.


Jim has been doing more plumbing. and also more plumbing. The visible effects of his changes are that his game now renders

Welcome Guest!

…instead of the previous placeholder text. The neat thing is that it’s actually touching a User model from the database. The less neat thing is that he’s still way down in low-level code, trying to sort out how data flows from the database to the screen. Some of the stuff about Drupal’s views in his second update sounds like Django’s generic templates and template inheritance, but otherwise there’s nothing much to say about plumbing.

Luke has also had trouble hitting updates, I think his exposition post is the only one for me to respond to. It’s not mentioned in the post, but I see some changes in his game. You draw cards, pick where you want to go, and can gain skill points to level up your cards. Interesting to consider cards that aren’t fungible resources, they can be individually improved. There’s some bugs, though, after clicking around a while I just get server errors.


And speaking of errors gives me a good transition to talk about my progress for this week. I spent half of my time on Oaqn chasing down a very painful bug. When loading a player record that lazily updated an attribute, I was losing the time of the last update. No exceptions or anything, I just always got the current time when I asked when the last update was, no mattter that I could see it in the database. Ah well, it works now. I’ve sharpened my bug-hunting skills and added to my test suite.

I’ve made some minor tweaks. If you’re logged in, you won’t see the generic front page of Oaqn that tries to get you to sign up, you’ll go right to viewing the world from your current position.

I’ve added the display of stored travel time (that’s what exposed the big bug) and a navigation bar showing which aspect of the game you’re looking at. The next item to come will let you make travel plans. I feel a bit like I’m repeating the last two updates by saying that’s the next thing to come, but I’m continuing my steady progress towards that interactivity.

This week, I’m good for up to six hours, everything’s finally planned and quiet in my life. If we only do 2-3 hours, though, I’m publicly committing to a second update from my banked hours.

If you’re glad to see Oaqn rolling again and showing live, up-to-the-second player data, please vote for it in this week’s poll. No poll this week, I was the only one to complete my hours.

Queuing Up Travel

Small update this week for So Play We All, I spent 2 hours of our 2-6 hour budget. Mostly I was reacquainting myself with the complicated way data feeds back and forth from the iframe showing the worldview to the game.

First, I got some little stuff out of the way:

  1. updated to Rails 3.1.0rc6 for security fixes
  2. awarded some missing badges for signups
  3. write tests for signup badges, as I’ve fixed them twice already :p

Then I worked on letting players travel between cities. I gave all existing players a day of stored travel time and capped players at storing three days at a time.

Next, I added a simple calculation of how how long travel time is between cities. Right now that’s manhattan distance times a constant fudge factor (so the longest trip between cities takes a day or so). This will get more complex in stages: A* pathfinding cost, pathfinding between plats, pathfinding based on equipment (different wagons will be suited to different terrains).

# Here's a quick look at the travel time in seconds between all cities and the first one
> City.all.collect { |c| c.travel_time_to City.first }
 => [0, 32775, 16725, 96975, 73800, 65475, 59475]

I tweaked the worldview to show the player’s current x and y, then spent the rest of the time kicking the tires on the worldview js making sure I understand how it works. I didn’t immediately see how to show the player the travel cost to various cities or know how to add it to the UI, and as I write this I remember my game design notes include planning navigation by routes, so I think I’ll move that off to its own page rather than cram it into the main view of the world.

This was a solid little week. Couple tweaks and updates, and I made a decent start on letting players around the world. Even if the budget is 2h next week (I’m good for up to 6), I’ll think I’ll be able to get that working.

Please vote for Oaqn’s progress towards gameplay in this week’s poll.

Laziness Pays Off

After we took a week off and I forgot a week, this is the first time I’ve touched Oaqn in about three weeks. So Play We All marches on, with me spending 3 hours of our 2-6 hour budget. I picked up where I left off on lazy updates and I have an exciting announcement.

Read More…

Lazy Updates

This week for So Play We All I’ve given myself another reminder of the importance of scheduling. We only budgeted 3 hours, but I flew to my home base of Chicago and have been very busy catching up with friends and family. I could’ve gotten code done earlier, but instead here I am up against the deadline and coding poorly due to sleep deprivation.

Read More…

One Step Forward

This week I made progress on Oaqn because of So Play We All when it would’ve otherwise been a loss because of busy life. I didn’t get anything huge done because my brain was a bit fried, but I cleaned up and prepared next week to include my first gameplay. Pardon if this is a little less well-written than usual, I’m getting it published with literally two minutes to spare — this week really has been that crazy.

Read More…

The Plumbing Works

Last week I mentioned struggling with easyXDM. The project author (who must have a Google Alert set up) dropped by to mention that I should ignore the docs on the website in favor of the README. I spent this week’s budget of two hours sorting out what went wrong there.

Read More…


As with last week, the theme was “game world” for So Play We All. I had some nice plans for my two hours, but didn’t get near to finishing them.

Before I get to that, let me link to my response, the title of which turned out to be a bit of foreshadowing. Also, Luke wrote On Iterating about his decisive plans to redesign his game and Jim wrote about our differing implementation styles.

Read More…

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.

Read More…

Mapping the World

This week for So Play We All the topic was “core game objects” and the time budget was 3 hours. The core of Oaqn is the world, so I spent my time working on mapping code. I added a beautiful little demo, but it wasn’t without a lot of frustration.

Also, did you catch that link in the first paragraph? I threw together a website for So Play We All to house the rules and track the progress of blog posts and polls.

Read More…

Week 2: Pretty (Shameless)

This week for So Play We All, we each chose our own topic to fill a four hour budget. I decided to pick up theming again and, as long as we’re competing for profits, get started on making money.

Read More…