8 min read

Weekly Dev Roundup: Our First Convention

Weekly Dev Roundup: Our First Convention

Some weeks, the biggest story isn't code — it's getting out of the basement and actually meeting the people who play your games. This weekend I packed up a tablet, grabbed a stack of stickers, and took Bunnyhug Studios to the Sask Retro GameCon for our very first in-person showing. And while I was handing out cards and watching kids argue with a cartoon rooster, the rest of the studio kept churning: SBU's trial system came together in its biggest sprint yet, and ShutterClash knocked down a couple more App Review hurdles.

Sask Retro GameCon: Getting Out of the Basement

One of the things that happens when you spend most of your dev life in a home office is that your games start to feel a little abstract. You ship them, you watch the numbers, but you never actually watch a stranger hold your game in their hands. This weekend changed that.

And "retro" is the operative word — the whole event was themed around classic gaming. They ran tournaments all day (I hopped into Rock Band and somehow walked away with second place, which I'll be riding for at least a month), vendors lined the aisles, and I got to share a booth through a Creative Saskatchewan setup with a bunch of other game devs from across the province. It was busy — there was almost always a stream of people wandering down our aisle, poking at the games and chatting with the vendors.

The setup itself was simple. I had a tablet out front running any of the Bunnyhug games, though I mostly steered people toward Doodle Doo since it's the easiest to just pick up and play. Next to it, a card display of postcards for each of the four published games, plus business cards and stickers. Nothing flashy — which, looking back, might've been the one thing I'd change.

Here's the thing about showing Doodle Doo to a stranger: it never misses. Everyone who tried it enjoyed it, and a few people grabbed cards for all our games after a single round. But my favourite part by far was watching kids try to convince Doodle their drawing was good — several times in a row. Doodle, for the record, remained unconvinced. That rooster's brutal honesty is the whole point, and watching a kid argue with a cartoon bird over the artistic merit of a stick figure was the highlight of my weekend.

The whole thing was honestly good for stretching some muscles I don't use much — the salesman muscle, mostly. Pulling people in from a wandering crowd, handing them a card to take home, giving a quick pitch and watching their eyes light up. I even got to present to a small crowd about our games and how we make them, which was way more fun than I expected it to be.

It was also just nice talking to the other devs — seeing their games, watching how the crowd interacted with their demos, trading war stories. There's a shared language there that's hard to get over Discord.

If I do it again — and I will — I'm bringing more eye-catching stuff. Something looping on a screen to catch the eye of someone three aisles over, whether it's our ad videos or something like it. The games are good enough to hold people once they stop; the trick is getting them to stop in the first place.

Special Bylaw Unit: The Trial Comes Together

If last week was about jury selection — generating twelve animal jurors, giving them personalities and occupations and biases — then this week was about what happens when the trial actually starts. And I didn't just chip away at it; I basically built the entire trial experience in one sustained push.

The biggest piece is the in-trial jury close-up view. During testimony and cross-examination, you can now see the jury box with all six seated jurors visible, each one with their own expression reacting to what's happening. They're not static either — there's a reaction matrix driving dynamic headshot changes based on how the testimony is going. A juror who was neutral might shift to skeptical, then to outright dismissive, all driven by what they're hearing. It makes the courtroom feel alive in a way that text alone never could.

The witness system got a major overhaul too. Instead of pre-seeding the transcript with what the witness might say, the dialogue is now recorded dynamically — what you see is what actually happened. The witness's opening statement expanded to two lines of dialogue, and the cross-examination flow now properly defers witness break mechanics to the final question, which is exactly where they should land narratively. I also fed all six juror descriptions into the witness and cross-exam question prompts, so the AI has the full jury picture when it's generating testimony — the witness knows who's watching.

And then there's the judge. I built out a hardcoded reaction map with dynamic courtroom headshots, so the judge now reacts visually to what's happening. Crown objection sustained? The judge has an expression for that. Defense objection overruled? Different expression. The coin-flip mechanic got polished too — the judge actually flips on a Crown win now, which is a small detail that makes the whole thing feel more theatrical.

The transcript modal is new too — you can pull up the full courtroom record mid-trial and scroll through everything that's been said. It simplifies the character headshots layout and just gives you clean, readable dialogue history. In a game about courtroom procedure, having the actual record accessible is non-negotiable, and it's finally in.

Cross-examination got a UX pass — the question selection dialog has better layout, Inter font throughout, and proper safe-area clearance so nothing gets clipped on phones with notches. The closing-arguments state management is in, and every question section now ends with "No more questions, Your Honor" — which might be the most satisfying single button I've ever added to a game.

What strikes me looking back at this week is how much of this was feel work. The jury selection was the logical puzzle — who serves, what biases do they have, how do you strike them. But the trial itself is pure theater. It's reactions and pacing and dramatic beats. Getting the jury to look engaged, getting the judge to react at the right moment, making the transcript feel like a real record — none of that shows up in a feature spec, but it's what makes the difference between a game that functions and a game that pulls you in.

ShutterClash: The App Review Tango

ShutterClash had a quieter week — three commits, all in service of Apple's App Store review process. The big one: account deletion. Apple now requires that any app with account creation also offers account deletion, and they're not shy about rejecting builds that don't comply. So there's now an account deletion endpoint on the backend and the corresponding feature in the app itself. It's the kind of thing that takes a day to build and zero days to feel good about, but it's table stakes for shipping on iOS.

The other piece was responsive layout and scaling fixes for compact screens. Smaller iPhones were getting cut off or crammed in ways the SE and Mini crowd would definitely notice. Those are fixed now — the layout scales properly regardless of screen size. Not glamorous work, but if you're one of the people playing on a smaller device, it's the difference between something that feels polished and something that feels broken.

ShutterClash is in that liminal space right now — the game is built, it's solid, and the remaining work is the march through app review and the last handful of compliance items. It's not flashy, but it's how games actually ship.


Two games moving forward at completely different stages of the journey — SBU in the frenzy of core loop building, ShutterClash in the shipping trenches. Two very different kinds of progress, but both equally real. And then there's the convention: a weekend out of the basement, actually watching people play. If anything, that might've been the most valuable part of the whole week.

Is this the most balanced dev week I've ever had? Probably not. But is it the most memorable? Heck yes. I got to watch a kid argue with a rooster, I built a courtroom, and I took second place in Rock Band. That doesn't happen every week, and I'm not going to pretend it does. But when it does, y'all get to read about it.