Boulder Dash 2

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Andrew Davie

Fixed the bugs, now it's quite nice actually...


How cool - i like it a lot!

Andrew Davie

Some more optimisation, and now the star wipe can go fast enough that the low-resolution pixels of the playfield are barely noticeable. I've decided to keep both the circle AND the star wipes; the all-up cost of adding the star wipe was not too bad - maybe two hundred or so bytes. I have abandoned the original "uncover" of tiles with the scrolling steel wall effect, and centered the star at Rockford's start position - previously the startup wipe was centered on the screen, not the player. The wipes are sufficient and I gained back about 400 bytes from that.

Still some reports of screen rolling in the last versions, so once again I'm revisiting the timing of things. It's really tight but I'm hopeful in the remaining week I can nail it down.


I think it looks great, despite the loss of the "uncover" effect.

Andrew Davie

Space is tight. Another round of optimisations - essentially culling many variables which were either unused, or unused for this demo. That gave me enough room to add 6 more player frames, which I "spent" on walking up and walking down animations.  Previous versions used the walk left/right animation when going up and down. It only didn't look "odd" because we're used to it, I guess.

Video shows the new animations installed - when you stop walking up or down, the standing up / standing down frames are shown momentarially and then the player returns to the standing facing front frame. In the facing away case, there's a bit of a turn/pivot there, too.

Andrew Davie

Here's an interesting option. Replacing the dirt 'texture' (the black random pixels) with another colour. I quite like it, actually. It works really well with the non-iCC mode (the pictures with the yellow scoreline).  I didn't update all the characters in the characterset so there are still black pixels around; this is just a "what-if".  Opinions/feedback welcome on this one.






Andrew Davie

OK, although that was a nice diversion... I reverted to the original black-speckles for the dirt texture. The reason is shimmer/flicker. The coloured pixel in the dirt was displayed one out of every 3 frames - i.e., 20Hz shimmer - whereas the black pixel is displayed 3 out of 3, so it looks solid. Having the shimmer over the whole dirt area wasn't terrible, but it wasn't great.

Moving on, though, and since I was looking at improving the dirt, I got to thinking about that SINGLE dirt character that is used everywhere. Although it's "random-ish", it does tend to look all the same over the entire cave.  Since I dropped the uncover (which cost 128 character spaces in the character set), I now had the opportunity to add more characters. Specifically, whereas prior I had all characters from 0-63 allocated and not a slot for another character - freeing up the uncover bit in the character number means I now have up to 128 characters (instead of 64).  So, adding another character of random dirt (different pattern) meant I could scatter two types of dirt over the board and hope for less "regular patterns of randomness".  In other words, I could maybe get it looking more random in large areas rather than regular over large areas.

I already have a system in the cave data to scatter random characters over random places (that's how the boulders, for example, are generated).  Previously I had the pebbles done with a bit of hardwired code after the cave was drawn and I though "mmh, why am I doing that with a different system, and proposing even another for the new dirt".  So I combined them all - essentially adding random dirt1, dirt2, pebble1, pebble2 runs to the cave unpack so that it's all just data statements in the cave definition that I can tweak.

The big big downside of this, though, is that the random seeds become different - random is called more times - and so we no longer have the old cave patterns anymore. We're starting from scratch. I mean we still have the same basic caves and gameplay - but boulders and blank areas and diamonds are now placed differently. We'll HAVE to live with that, and I'll need to test all the caves again. So be it.

But the upshot of this change - and in particular the extra character for the random dirt - is that we have a really nice new look to the dirt. It's still the black speckles, but now it's randomly distributed in patches, so to speak.  Here are a few screenshots.  I have 70 bytes of ROM space left.



Andrew Davie

Really just polishing everything as much as possible now, in the few days remaining before release. I reworked the background dirt stippling to make it more random seeming. Works well. I also shifted the boulder graphics down one "trixel" so that there's no gap under the boulder. This in turn makes a gap at the top which actually looks rather OK.

What this video is attempting to show though, is the new mechanics/effect of boulders bouncing as they stop and interact with other boulders. Shifting the boulder down one trixel means that the "shake" character has to go up one pixel instead of down - and although this would at first seem counter-intuitive, it works well to give boulders that extra bounce feeling.

The astute will notice the exit to B/NORMAL is blocked here - a result of the desynch of the random number sequence. I'll have to go through all screens and rechoose random start seeds and tweak accordingly.

Andrew Davie

Previously, when moving Rockford... the cell into which he moved was blanked as soon as he started movement. I found a way to 'feather' the graphics of the destination cell so that the very obvious 'clunk... clunk... clunk' of blanking cells as Rockford moved is now gone. It was surprisingly tricky and has used the last of my available ROM space. But, here it is in all its glory.


This looks awesome! Looking forward to a full release!


I can't say the previous digging animation ever bothered me, but the new one surely looks better and more refined.
(I actually played the last linked video and the one prior to that at 0.25 speed, to better see how it works compared to the old one)

Andrew Davie

It's been an interesting week or so.  Several playtesters peppering me with bugs and suggestions, but mostly I've been trying to get timing issues sorted. I finally got my own PAL system up and running again - multiple issues such as finding my power supply, getting a working '2600 (my go-to has a stuck reset switch), figuring out why the RF cable didn't work (corroded), and more. Anyway once I got it working the timings were all over the place. Didn't make ANY sense to me.

It turns out that I've been a bit on the 'bleeding edge' of things and the emulators weren't totally leading me in the right direction with timing. Eventually I manually calculated the number of cycles that I could/should have in VB and OS and went with those. And then I found out that really, I had way way less time than I thought. I spent many many many hours trying to optimise code so that the overview screen would run at full-speed. We saw slowdown on the ZPH show. Eventually I figured I ... just... couldn't... do it.  Close, but no cigar.

But then I thought well hey, if I can't get it full speed - well I don't want it at all, because it's 'cheating' switching to overview and playing in slow-mo.  But then I had another idea - keep the overview but just as a view, not for playing. And now that becomes a defacto pause-mode too - something we haven't had before.  So, now you double-click to both pause AND see the whole cave. It works pretty well and it's not a great loss to playability. Perhaps enhances actually because you now can't see the whole board at once (and play at the same time) so you need to kinda remember/plan.  Anyway, it is what it is.

So, back to the timing - has led to some minor changes/updates to the emulators Gopher and Stella - and many thanks to JetSetIlly and Thomas for their support on those.  In the past couple of hours I now have more reliable timings and I've actually got an almost-good version running on hardware. Just a few timing issues here and there, one BSOD (horrors) and I'll be happy with the *coding*.

Still to do before release is to revisit all the cave/levels and make sure they're playable and can be completed. I will get to that in the next few days and then we can finally release.

Andrew Davie

A short note to playtesters;  while I totally appreciate your time and effort in helping squash bugs and offering fantastic suggestions... a number of playtesters have been totally silent. So if you're a playtester and you haven't seen a new version for a while that's probably because I haven't heard a peep from you. That's OK - there is of course no obligation - but I'm focussing on getting testing versions to those who are actively testing and giving feedback. I'm sure you understand!