2024-04-22 Weekend update - Optimization time.


I've been making a lot of good progress on Shovel Duck II over the past week; completed work on Levels One and Two, and have the pieces ready for Level Three and a plan for game completion... but I have also been keeping an eye on the overal compiled code side of things and I was approaching the point of "memory full, cannot cram any more in" so the majority of the weekend has been spent revisiting code.

OW!!

Previously, the scrolling "between levels section" was housed in one big routine, with the movement for the fire and worms triggering within that routine; which was okay, but large and cumbersome. I've now split the fire and worms into their own section (so a lot less nested conditionals) and kept the scrolling doing "just the scroll" - which has simplified the code a lot and managed to claw back about 1K. There are a couple of bugs in the current version that I'm working out at the moment (partly why there is debug info in the shared screenshot/ animation) and I'm about to revisit the player code as I think shuffling around the scrolling and fire/worms has caused a couple of bugs to surface. (The most obvious being the accidental re-triggering of the scrolling section when it shouldn't)

New Scrolling Code in action

Hopefully, as you can see in the animation above, I've gone back to a constant "scroll up every second" which gives us a bit more of a frantic and challenging experience. The player sprite has gone back to flashing to indicate scrolling is happening (although this may change back to the player remaining green after I revisit the player code over the next week - it's all part of masking the player sprite so we avoid bits of sprite being caught / left behind by the scroll routine. The previous version of the scrolling had a way of avoiding this - but gave Bill a bit of a hopping motion (due to screen scroll and player scroll being in two different sections. If I can avoid the hop and leaving sprite garbage behind I'll bring it back)).

I'm not sure if I'm going to keep it autoscrolling or if I'll return back to the "it scrolls when you're in the bottom 3rd of the screen" ... if I'm able to add a difficulty setting later then it might be "one of the things that gets set to make it easier / harder" ... but I like that it feels more of a challenge now...

You might notice in the screenshots/ animation that the worm trapped is currently not working correctly. This should be an easy fix (currently it looks to only trigger when the worm cannot go left, right, or down; I probably just need to change the priority of the checking order to get that working the way it was previously.

All in all, very good amounts of progress.

The plan for the final couple of weeks of April is.

  1.  Fix the bugs in the worm trapping code.
  2.  Fix the bug with the scroll triggering code. (I think this is related to the scrolling happening every second rather than when the player is in the bottom third. Something is getting checked that has gotten accidently reset and it fails to notice the player isn't in the scrolling section any more).
  3.  Optimize the player scrolling routines.
  4. Complete design and implementation of Level three.
  5. Revisit my switch trigger routines. I feel these have room for improvement / optimization. 
  6. Consider adding worms to non-scrolling levels. Dito fire. One of the advantages of splitting their code from the scrolling code means that they could potentially be added to any screen, not just scrolling ones. I'll consider it. Probably reject the idea. But we will see ...
  7. Sit down and design the scrolling between Levels sections properly. Each will be different, and the expectation is that each subsequent scrolling section will be longer and harder; more challenging. Of course, memory restrictions allowing. The current between Levels section was created as part of the POC and other than a few minor changes, hasn't significantly changed between the POC and current iteration... That should change (although the current one might stay as the first, but maybe with a little tweak to give more "hit once to destroy" rocks to make it a little easier than it currently is. 
  8.  Edit tunes. If I still find myself hitting the "memory limit" then the length of some of the "well done, you did it" reward tunes might get shorted. Additionally a final "completed the game" tune and a "completed Level Three" tune need to be added.
  9.  Playtest and work out whether there are additional bugs to fix, QOL things I can do to improve playability.
  10.  Tweak graphics. (On the scrolling section might look to replace the sideways moving saws with animated ones... which surely will look better...)

We are heading to the final bit of this game. I've ideas that haven't been able to make it into this one; but I might consider adding ... well... not DLC as this is the Spectrum ... but maybe some additional content following release. We will see. The next game I have in mind is going in a very different direction so I might take a pause between this one and the next to work out exactly how I'm going to do what I'm planning...

... but we will see. Finish one thing at a time :-)

Still looking like a May release will happen.

Thank you for your patience and continued interest.

Get Shovel Duck II : Dig Duck!

Buy Now$2.50 USD or more

Leave a comment

Log in with itch.io to leave a comment.