+Andrew Davie Posted April 7, 2021 Author Share Posted April 7, 2021 Revised firefly. I also changed diamond colour use from 2/3 to 1/3 so that the brighter colour (#2) would give a more pre-eminent flash/sparkle. Seems to work better under all colour schemes. bd2_firefly2.mp4 What next? I think I'm putting off doing sprites, so that should be it. I'm planning of smooth-scrolling (i.e., pixel-scrolling) the player as he moves, instead of clunk into the next square. That would increase the resolution/finesse 8x in the horizontal, and 21x in the vertical. I think that will make a huge difference on the visuals. We shall see. But who knows; maybe it won't work with the animations and especially with the smooth scrolling. Meanwhile I have a research assignment due in a few days and I'm desperately putting it off... 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 7, 2021 Author Share Posted April 7, 2021 (edited) Preliminary implementation of a "look-around" function. At the moment, a long-press of the joystick button will turn it on and place an icon lower-right. Then you can literally "look around" the board with the joystick (and button held). Release the button and it auto-scrolls back to where the player is. I will have a go at putting the enable on a double-click and disable on a single-click instead of release. The magnifying glass is a sprite, so it won't be too long until I have the player in there, too. bd2_lookaround3.mp4 Edited April 7, 2021 by Andrew Davie 3 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 7, 2021 Author Share Posted April 7, 2021 OMG I'm gonna be so rich! Gotta get 'em all! bd2_rich.mp4 1 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 7, 2021 Author Share Posted April 7, 2021 Here are a couple of videos of amoeba logic. I have set the maximum amoeba size to 20 cells; if it exceeds this, then it changes into boulders. bd2_amoeba2rocks.mp4 If the amoeba is fully enclosed, and cannot grow, then it changes to diamonds. Seems to be working OK. bd2_amoeba2diamond.mp4 That might be about it for the amoeba object. Explosions and stuff are to be dealt with by the objects that explode (e.g., butterflies). 1 Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted April 7, 2021 Share Posted April 7, 2021 7 hours ago, Andrew Davie said: OMG I'm gonna be so rich! Gotta get 'em all! bd2_rich.mp4 4.9 MB · 1 download Most of the diamonds flash like a light bulb about to break, a few of them have a much better animation (with the flash moving from the inside to the outside) Quote Link to comment Share on other sites More sharing options...
+mksmith Posted April 7, 2021 Share Posted April 7, 2021 Well this is progressing nicely Andrew - great work mate! 1 Quote Link to comment Share on other sites More sharing options...
imstarryeyed Posted April 8, 2021 Share Posted April 8, 2021 Wow that looks great Andrew, I am looking forward to seeing more of your clever work! 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 9 hours ago, Al_Nafuur said: Most of the diamonds flash like a light bulb about to break, a few of them have a much better animation (with the flash moving from the inside to the outside) You work on something long enough, even the bad seems OK. Right, so I've reworked the diamond animations/graphics with an attempt to give the impression of sparkling "facets". bd2_diamondfacet.mp4 1 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted April 8, 2021 Share Posted April 8, 2021 I like it as it more like the light catching an edge rather than the full diamond glowing ??? Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 More work on the diamonds. One of the things I've been trying to avoid is having all the diamonds on the screen flash/sparkle in synchronicity. But I only have one animation index for each creature type, so I'd been trying to "hide" the synchronous nature by adding random values, etc. It didn't really work well. To have a separate animation counter would cost 880 bytes of RAM (one per cell), and I wanted to avoid that. I finally figured a way to get what I wanted (mostly) and have random-ish sparkling, happening all over the screen but not too in-your-face. I also modified the animations a bit to make them a little more "factet-y" and hopefully this is near to final. In the video I'm waiting for a (super-fast) amoeba to fill the screen and change to diamonds. Look at all that stuff going on on the screen!! Incredible what you can do with a little support on-cart. bd2_diamondflash.mp4 2 Quote Link to comment Share on other sites More sharing options...
Dionoid Posted April 8, 2021 Share Posted April 8, 2021 Hi Andrew, I remember the first thing that I noticed when seeing Boulder Dash 2600 for the first time, is how well the graphics match that of the C64 version... except for the diamonds. I'm sure a lot of alternatives for the diamond graphics were tried before, but did you and Thomas ever try a more skewed shape like this: instead of ? Stacked together, it would look something like this: Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 1 hour ago, Dionoid said: I'm sure a lot of alternatives for the diamond graphics were tried before, but did you and Thomas ever try a more skewed shape like this: instead of The meeting of the left/right edges makes them hard to distinguish. Many people had a go way back; these days I actually quite like "my" diamonds. You bring up an interesting point, though. BD1 was an effort to look "as much as possible" like the C64 version. With this new engine, not being bound to a particular implementation/machine/game, my approach is -- make it the best implementation of th concept as I can. That means abandoning efforts to match colours and shapes exactly. Here're your diamonds, for the most part... 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 Here's the look/feel I'm trying to achieve with the "facet" animations... 4 Quote Link to comment Share on other sites More sharing options...
Dionoid Posted April 8, 2021 Share Posted April 8, 2021 12 minutes ago, Andrew Davie said: The meeting of the left/right edges makes them hard to distinguish. Yes, I agree that when stacking a lot of diamonds, your triangular shape looks much cleaner and easier to distinguish. I guess it's just because I was used to the shape of the diamonds in the C64 version ?. The sparkle-animation that you added is really effective, btw. Quote Link to comment Share on other sites More sharing options...
+Propane13 Posted April 8, 2021 Share Posted April 8, 2021 This is looking fantastic! One cool thing-- I had no idea that there were legitimate sequel games to Boulder Dash until this thread (I had only ever played the NES one-shot version myself). As a noob to the latter entries in the franchise, did the sequels add new features / components above the original? Or are they just new maps using the original's components? Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 21 minutes ago, Propane13 said: This is looking fantastic! One cool thing-- I had no idea that there were legitimate sequel games to Boulder Dash until this thread (I had only ever played the NES one-shot version myself). As a noob to the latter entries in the franchise, did the sequels add new features / components above the original? Or are they just new maps using the original's components? TY. Yes, there are extra doo-dads. Slime (in addition to amoeba). Not sure what else, really - haven't investigated much. I'll be adding whatever I can from the sequels. And maybe new stuff -- who knows. We'll see what's possible. Some non-franchise versions add other stuff, but I'll be unable to do those. 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 OK, I need to move on from the diamonds. I've added a fade to the sparkle; don't ask how! I've much-improved the randomness. The diamonds sparkle frequently, but when there's a whole screen of 'em hopefully it's not too intense, and certainly should be hard to discern a screen-wide pattern. bd2_diamondfade.mp4 3 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 Having said "no screenwide pattern", I've just added a sort of diagonal "hotspot" that sweeps across the screen. Diamonds within the diagonal band are more likely to sparkle/flash. It's subtle, but means that you do get "groups" of diamonds sparkling together (but not in-sync, just about the same), and that looks rather good. Look for it in the next video. 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 8, 2021 Author Share Posted April 8, 2021 (edited) Here's the "final" version of the diamonds. Pretty happy with it; random enough but not overpowering. I think. Next up... I should really get some sprites in, I think. VID20210409083646.mp4 I had to film this with my phone, offscreen - the screen grabber only does 38Hz on my machine, and I needed 60Hz to show the diamonds in all their glory, as there are a few single-frame transitions in the sparkle. Edited April 8, 2021 by Andrew Davie 7 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 9, 2021 Author Share Posted April 9, 2021 BD2 is a bit of a problem-child. It seems that the original cave data is nowhere to be found. Why should this be a problem, when there are plenty of screenshots? It's because how caves are stored/unpacked. The original file format essentially used a predictable random number generator, and a starting seed. The seed might, for example, say that the random numbers for "boulders" starts at value $F3. Then the boulders are generated based on this seed, and you get a predictable pattern. Now, we know the pattern; we don't know the seed. Same for other objects like butterflies, fireflies, and diamonds. The rest of the cave is generated with some "hardwired" placement of stuff -- horizontal/diagonal/vertical walls, and rectangular areas with/without content, for example. Not having the original source data is a pain. But further to that, subsequent usage has seen a "boulder dash cave file format" (BDCFF) been used by most modern implementations. This simply represents a cave as an N x M array of characters with each character representing (in ASCII) some item in the cave (think "w" for wall). So this is an easy way to share/exchange caves; the problem is that for a standard cave this is 40 x 22 (880) bytes. That's too much to be able to fit multiple caves into the game. So, I'm thinking (a) reverse-engineer the seed for caves, or (b) switch to BDCFF and find an efficient compression algorithm. I'm thinking, for example, treat the boulders/diamonds/etc, each as a single "plane" with only on/off (880 bits). Then RLE-encode the 880 bits to get an "efficient" packing. Us the most frequent object first. Then the next objects skip squares that already have content. So, if you put down 200 boulders, you only need 880-200 bits (680) for the diamonds, say. And you RLE that, bringing it down to (say) 25% of that, so 170 bits. And repeat for other objects. I think this would be sufficient to allow multiple caves in the ROM and not be difficult to implement. Then we could work with BDCFF compatibility, which would be a bonus. But my focus is on how to get BD2 caves in. Not sure which way to go. Can anyone find the original cave data? 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 9, 2021 Share Posted April 9, 2021 (edited) You can get the cave data for heaps of Boulder Dash versions (incl. BD2) from here (see BDCFF Format). Edited April 9, 2021 by Thomas Jentzsch Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 9, 2021 Author Share Posted April 9, 2021 20 minutes ago, Thomas Jentzsch said: You can get the cave data for heaps of Boulder Dash versions (incl. BD2) from here (see BDCFF Format). Great TY Quote Link to comment Share on other sites More sharing options...
+Propane13 Posted April 9, 2021 Share Posted April 9, 2021 Using the site Thomas posted, I went through to try to find "new" elements of BDII/BDIII: * BD II : Cave C / Cave M = "blue slime" * BD II : Cave O = "the growing wall" * BD III: Intermission 1 / Cave O: Not a new element per se, but notes that these level use a "bug" in the BD 1 engine where if an amoeba touches an active magic wall, the amoeba will turn to diamonds. * BD III: Cave H = I don't remember if this is new behavior or not, but if you have multiple magic walls, a boulder falling through becomes a diamond, and a diamond falling through becomes a boulder. This makes for interesting scenarios with multiple magic walls where elements convert back-and-forth. 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 9, 2021 Author Share Posted April 9, 2021 (edited) <redacted> Edited April 9, 2021 by Andrew Davie Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 10, 2021 Author Share Posted April 10, 2021 Here's a preliminary of butterfly->diamond explosion sequence. BD2_prelimexplode.mp4 I'm not formally working on BD2 -- just an engine. But I need caves to work with, so I've installed a few caves from BD2. Here is Cave A Here is Cave B of BD2 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.