Indie Exhibiting at PAX East

When preparing for PAX East I saw this article from another indie dev, found it quite useful, and thought I’d share my experience, also as a first time exhibitor, complete with lot of interesting numbers.

My Booth

I exhibited Splody, my multiplayer action game that supports any number of players. I wanted to showcase this, so opted for a larger 20’x10′ booth and planned on having both an 8 player station and a 4 player station. I used two 55″ TVs, hooked up to tiny, cheap UltraSlim computers, with wireless controllers for all. One TV I put farther in the back, on a lower table the convention provided, so that I could get 4 sitting and 4 standing in front of it. The other TV I put on a stand, as high up as is comfortable to look at, closer to the aisle, so that people walking by had something to look at.

The ones with cat ears are my volunteers

Continue reading “Indie Exhibiting at PAX East”

Splody showing at GitHub / Ludum Dare GDC Party

Last night I attended the Ludum Dare / GitHub GDC party in San Francisco at the fantastic offices of GitHub.  I have no idea where their employees work (perhaps another floor?) but their gathering space was fantastic, and they even had a nice big TV with a dangling HDMI cable set up which I was able to snag for an hour or two of showing off my game, Splody.  I turned the TV over to Shnipers for the latter half of the night, as that was also a fantastic local multiplayer game, and had a chance to play a bunch of other indie games around the room as well.

The showing of Splody went quite well, often had 6 or more people playing at once, everyone seemed to be having fun, and quite a few were really excited about the game.  It was great to have so much positive feedback!  Everyone unanimously enjoyed my simultaneous multiplayer character customization/control test screen.

Simultaneous multiplayer character customization and control test screen

Now, I just need to channel as much attention as possible into getting Greenlit on Steam, so, if you have a Steam account, please go vote on my Steam Greenlight Campaign, every vote helps!

I did learn a few things that hadn’t came up with my previous demos – as this demo was to a bunch of random people at varying frequencies, and most of my previous demos have been to larger captive audiences.  I need a good way to show the game to just a single demoer – playing a 1v1 match against me, a tournament-winning Bomberman player, either doesn’t go well for them, or feels like I’m just committing suicide.  I think I’ll throw in an option to pad out a match to a fixed number with AIs, so if there’s just one person demoing, AIs can fill in so there is at least 4-6 players on screen for a better feeling of what a party game can be, though obviously playing against AIs isn’t as fun as stomping your friends.  The other thing was with one particular game mode, Mount Control, which currently has a bit of randomness in it which can lead to rather long matches, and I think I can do a little tuning so that the expected match time is a lot more constrained which would lead to much better conference-floor demo experiences.

Oh, and the other thing I learned, or, rather, already knew, but keep forgetting, is that I really shouldn’t play against a set of people and win 3 to 0 to 0 to 0 to 0 to 0… but some people playing the demo get really competitive and I have to give it my all to give them a fair fight, and the I forget to tone it down a notch for the next group.  Best solution is probably to continue talking about the game constantly, as me paying half attention is probably the right skill level for most people ;).

The horrible things people’s routers do to my packets!

Auto-updating software

So, over the years, I’ve released a few programs (all native C/C++) which have included automatic version checking, so they can let the user know when a new version is available. I’ve always done this by making a socket connection to my web server (previously Apache, now entirely Node.js) and asking for a file which just contains a version number. Pretty simple, right? Sure!

connect(s, ...);
char cmd[] = "GET HTTP/1.0\r\n\r\n";
send(s, cmd, sizeof(cmd), 0);
recv(s, ...);

And that’s about it.  Note:

  • This sends a single packet, and no router’s MTU is small enough that this packet would ever be fragmented, so it is, in theory, at least according to how TCP/IP is supposed to work, guaranteed to arrive as a single packet. Not that most web servers would care…
  • I don’t bother sending any headers, specifically the Host header. Why would I if this works?
  • There’s a bug in the code, it’s writing the NULL character into the packet after the final line feed.

Continue reading “The horrible things people’s routers do to my packets!”