Jan 01 2011

PuzzleRunners Early Analytics

The sample size is way too small to draw any conclusions, but here’s which characters players selected in Puzzle Runners during the first couple days after release:

Puzzle Runners Character Selection Rates 12/28-12/31

I just thought this was interesting in light of the Mass Effect 2 statistics released last November. Obviously though, the games are not comparable… I actually have in my working notes, ‘randomize character selector order’ but I never implemented it. (I suspect there is a bias toward items appearing early in a list (on the left side), in addition to a bias towards male characters.)

Other items of interest, 30% of players starting a game of PuzzleRunners play for more than 5 minutes (15% more than 10 minutes). 21% play until the puzzle gets completed, 3% use the quit option to return to the menu, the remainder presumably navigate away from the game before it ends. Both the length of play, and the number of players playing to completion are higher than I expected.

(Data collected with the Mochi Analytics API)

Dec 27 2010


Here it is, the long awaited PuzzleRunners. I stipped out multiplayer support and am releasing the single player version only. Design notes up later this week (maybe).
Read more »

Jun 09 2010

Impossible Bugs

So, I’m still hard at work on Puzzle Runners. Remember when I said that I had written the single player version in a way that lent itself easily to being converted over to multiplayer?

Yeah, I’m not as smart as I thought. :( It took 17.5 hours spread over many days to get the setup and sync working.* Or at least working well enough that I could move onto the ingame message handling, I still need to go back to the setup code and handle some loose ends.

So… the whole game is setup using a “bounce” server which just bounces all the messages it receives to all the connected clients. The first client to connect becomes the ‘Master’ which is responsible for setting up the game and owns the AIs. And now I’ve got an error state where if only the Master is connected, the AIs behave correctly, but if there are two or more clients the AIs just stand in place.

This is my code which dispatches messages to the server:

Here’s the crazy part… that “trace” statement marked with the red arrow? All it does is print the message being sent to the server to the debugging console (or copies it to a log file). I added it because I wanted to make sure the AI messages were being sent (they were). If the trace statement is present, the AIs move correctly. If the trace statement is commented out**, the AIs don’t move. Human players however, move correctly regardless of the presence of the trace, so I know the dispatch function is working.

Ultimately of course, the lack of a trace can not be the reason why the AIs are turning themselves off… I’m guessing the trace is affecting the timing in which the messages are being received and that’s causing something I didn’t intend (I designed the message handler to work regardless of the order in which messages are received, and independently of the refresh timer… but I’ve made bigger mistakes before! :)).

Anybody reading this got a good story of a bug where the symptom and the root cause didn’t appear connected?


* – That’s not a complaint… I haven’t worked with multiplayer games before, so I’m turning up issues I’ve never considered before. (ie: How should the game react when a client disconnects before setup is complete? What should happen if a player attempts to join a table that’s already full? etc) So to the extent that I am a programmer, this is interesting stuff… it just taking longer than I had budgeted.

**- For the non-programmers, commenting out a statement makes the computer ignore it when it’s executing the program. The words following // are comments.

May 10 2010

Puzzle Runners passes the black triangle!

(Puzzle Runners is the the title of the game I mentioned in this post. I’m pretty bad at staying cryptic. :))

So, a few minutes ago I had my black triangle moment for this project!! The single player game works, but I knew that wasn’t going to be a problem. I’ve never done any type of multiplayer before and I’m using PlayerIO‘s white label multiplayer servers. I wasn’t sure I could pull that off, because PlayerIO assumes that you’re developing your client with Flash… but I don’t actually use the Flash authoring tool, I write my code in FlashDevelop and compile with the FlexSDK.

Anyway, despite (actually, in part because I’m) using a bounce server, Puzzle Runners needs a (for my skill level) fairly complex message handling system. I’ve spent the past 5 days trying to get it to come together. And now it has:

What you’re seeing is a screenshot of FD’s output window, which is where traces are displayed. (In AS3 traces are basically console print statements to aid in debugging). In the screenshot, the client has received a message asking for an index needed for part of the setup (type A1), and then generated and sent a message containing that index (type A2). And the A1 message was originally generated by a second client, and bounced off the remote server. So my message handler works! PlayerIO works happily with the FlexSDK! There are no major (technical) hurdles left to building the game! :)


May 03 2010

What I’m slowly working on

So, LD17 is over, but I am working on another project. I actually started work on April 7th, thinking I’d have it done in time to release before LD, planning to use it as a warm-up for the contest since I hadn’t programmed anything in a while.

Yeah, right. :)

But it’s been turning into a decent little game.  Here’s a screenshot over on the right. (My drawing ability has not magically improved, the sprites are from here, a Japanese team called REFMAP with a license friendly to commercial games.) If you look closely, there’s enough information in that screen shot to tell what the game is about. Otherwise you’ll have to wait a few weeks for the public beta. 😉

You’ll notice that one of the characters is named, ‘Guest’.  Although I’m implementing at least two player authentication systems, if you don’t have an account with one of them, and don’t want to sign up for one, you’ll still be able to play. Unlike one recently released indie game. Whose development I’ve been following. And which I wanted to try  :(

At the moment, the other characters are actually AI’s. To get the names I found a list of popular names for babies, published by the Social Security Administration. I wouldn’t have remembered that, but this time I’m keeping a log of my work, in addition to my (paper) design notebook.

The single player mode is -done-. There’s still a lot of UI work, and getting the multiplayer mode running. (Fortunately, I wrote the single player mode in such a way that this should be easy. Well, easy-ish anyways…)


(Being cryptic about upcoming games is apparently the in thing these days.)