Status Update – Bugfixes and Performance

Okay, here’s the update.

I spent this week mostly working on fixing bugs:

  • Enemy pigeon AI states were being preserved between successive pigeons – now each AI state resets when the pigeon spawns.
  • Incoming player sometimes had wonky physics – now it works like it’s supposed to.
  • Player has a little better control over where they will land after being scared off.

I also hooked up my very-simplistic profiler and did some quick performance analysis.  I’m not having a lot of performance issues, but I do notice it getting slower as the number of birds increases.  Here’s something I found that seems interesting:

Each frame takes three passes through the entities (birds, food, dogs, feathers):

  1. First, to update.
  2. Then, to render shadows.
  3. Finally, it renders the surface and then takes a final pass to render the actual sprites.

Rendering is certainly the biggest cost here.  Still, I see a concerning amount of time spent on just the update pass, and I’m not finding anything peculiar happening in it.  So I think a large enough chunk of time is spent traversing the entity lists, that I’ll likely see a noticeable improvement if I collapse all of it into a single pass.  We’ll find out soon, I hope.

Here’s a gameplay sample for this week:

Check back next week!

Status Update: Refactoring

I’m not a big fan of refactoring code, but it happens.  Sometimes.  I try to avoid it.  But here we are.

Here’s the update:

  • I did a bunch of cleanup and – for lack of a better term – refactoring this week, mostly on the code related to the game’s menu system.  All of this refactoring should make some upcoming changes easier.
  • I also made some changes to how the bonus phases are initiated.  I’m still not sure it’s what I want, but we’ll see how it goes for a while.

Here’s an update of me testing the bonus phase changes:

Check back next week!

Status Update

I get so little traffic here (besides the spam bots that abuse the comments section), but I know I still should really update every week.  So let’s get to it:

I was actually out of town this week – my wife had a conference in Las Vegas, so I worked from my laptop in our room in the Luxor while she was doing the conference thing.  Here’s what I worked on:

  • There were a number of lingering bugs with the game’s timing, specifically around food dropping and feathers spinning.  So I wrote more sophisticated physics, and now those things aren’t problems any more.
  • The game used a hard-coded screen resolution – now it pulls this dynamically.
  • Small birds will now retaliate much like pigeons, although only when you scare them away by dashing.  They still get scared whenever you get too close, but they don’t retaliate.
  • I did some research on how I will port my game to mobile, so hopefully there will be some development there in the coming weeks.

Here’s a gameplay sample for your enjoyment:

 

And that’s all for now.