February 2024 progress


Note: This is an archive of a devlog originally posted to Patreon. Since then, the working title of Bonesweeper has been retired, and I now post about development on Mastodon and share devlog videos/stream to Spectra.video.




Hi people! Here's the February Fossil Sweeper mid-month status update. A little later than I'd like, but less delayed than January's! Feel free to skim and pick the bits you're interested in reading.

As always, there's an accompanying video, which covers some of the major items from this post and the previous end-of-month post.


In the first half of February I gave attention to dynamic variation for Dig and Assembly phases. Since the January update was very late and I had 2023 recap stuff to get through, I mostly put museum stuff on hold so that I wouldn't be moving that aspect of the game beyond what I needed to grab gameplay footage for.


Dig phase


While putting together notes on remaining work items for the January progress update video's year 2 recap section, I felt motivated to start experimenting with possible solutions for generating non-sqaure Dig sites. I put together maybe 3 or 4 different approaches in a little test scene (you can find that in the Dev Stuff menu if "debug mode" is enabled in the game's System Settings menu), each of which had varying levels of usefulness. The solution I've ended up with and integrated into current builds is built on top of the first half of Evgeni Sergeev's Stack Overflow answer to "Good way to procedurally generate a "blob" graphic in 2D." 

Instead of using "discrete fourier transforms" to generate interpolated curves from convex hull points, I round the corners on a convex hull by just adding some extra points in a radius around each of the original set of points before generating a convex hull. To get more shape variation, I calculate the position of an internal point (any point between any two existing points on a convex hull are guaranteed to be internal) and then use that to smoosh multiple shapes together, and since I'm only working with convex shapes, there's no possibility of creating islands that way - something that kept popping up in my other approaches.


At a very superficial level, I understand that a fourier transform is the magic sauce that helps make that kind of interpolation possible, but the underlying maths is a bit out of reach for me, and I'd much rather have a simpler solution that I can fit wholly in my brain at once, since that allows me to tweak, expand, adapt deliberately if I ever need.

This stuff all tends to generate pretty quickly, but because there's unused space now, the grid space for Dig sites ends up much larger, and in turn, that makes the environment background (which currently is very slow to generate) larger too, so for huge sites, load times may be longer by a second or two. I'm planning to optimise that on my next pass, and after that, I'll do some benchmarking to be sure, but for now I'm happy with how performant my current solution is.


Depending on how much spare time I have toward the end of development, I'm open to looking at tweaking the shape generation to favour particular types of shapes for particular regions, since that might help make the different biomes feel a little more distinct.

I'm feeling really happy with the impact this is having on the game. I suppose I'm still getting used to it, but it makes the game feel a lot more fresh, and I've had fun discovering new number patters that come out of diagonals and curves that aren't really present in the same way in a rectangular playspace. I also feel like it'll be very helpful to have something that differentiates Fossil Sweeper's dig sites from a traditional Minesweeper game at a glance. I can't really use "infinite dig sites!" as a selling point (that would lead to some expectations that the game just won't fill), but I do think that it helps make Dig sites feel less samey, and I think that's going to help the game feel less monotonous over time.


Also, I like seeing things in the shapes.


Assembly phase


I also decided to take a look at how much refactoring I'd need to do to restore skeleton size variation to the Assembly phase. I'd broken it while implementing automatic Camera scaling early in 2022, and decided to not fix it at the time since I knew I'd be likely to change things that would break it again when integrating the Assembly phase with the rest of the game and changing how specimen size is calculated anyway.

In the end, it didn't take much to bring it back online, and much like the Dig sites, it makes the four placeholder skeletons in the game with their two poses each (actually, I think the testodon has 3) feel like a lot more content than it did before. Once again, that can't be a part of marketing so as to avoid leading people to want a different game from the one I'm making, but it is exciting to get a really big skeleton, and it's less samey when you build your tenth skeleton of a species.


I created a rudimentary frequency distribution table for skeleton sizes that makes notably big specimens very rare, notably small skeletons a little less rare, and "normal" sized skeletons the most common. My impression is that outside of nets (which will be covered by "rare specimen" Dig sites in the future), babies are pretty uncommon to find. I think a combination of their bones being less formed and other factors like the kind of predation and scavenging that would kill them outside a nest make fossilisation (which is already mind bogglingly rare) less likely.

On the opposite end of the spectrum, gigantism from unusual growth hormone production often ends up bringing health complications, and so I imagine rarely gets expressed in a way that leads to individuals surviving long enough to be significantly larger than other adults. Every adult that survives long enough to become an adult represents a portion of the juvenile population that... didn't die while juvenile, and adults who're big enough to survive most predation seem more likely to be killed by conditions that are more favourable for fossilisation/less likely to have scavenging break up the skeleton than the causes of death for those that did die as juveniles.


That all sounds reasonable, but I think I'd still like to do some proper research down the track to see if those impressions/speculations match the frequencies we've found in the fossil record. Maybe I can find some meta analyses where people have already done that work. If not, I'll be fun to explore!


Museum phase


I did some experiments here and there with edit mode camera behaviour in the temp museum in preparation for work that I'd do later in February and fixed a few issues with selection, UI, and input in the museum, but aside from a couple of crash fixes, I don't feel like there's anything particularly noteworthy there.

It is cool to have a museum room with size variation. The skeletons in the screenshot below are all Muttaburrasaurus in one of two poses, and while it's still pretty repetitive, it feels like a lot more than what it is (compare that to mid 2022). All this makes me feel more confident that my planned 4 or 5 poses for the game's final skeletons is going to be enough.



It's not surfaced in the game yet, but while working on the previous month's video, I also put together some different placeholder floor textures for the temp museum to help illustrate how that kind of customisation might affect the feel of a room.



Misc/menu flow

After adding the non-square Dig site tests mentioned earlier, I updated the Dev Stuff menu to use a scrollbar and calculate its size better when the window resolution changes.


And that's about it for this post. Thanks as always for reading, if you check out test builds and have any feedback, I'd love to hear your thoughts!

Get Fossil Sweeper

Leave a comment

Log in with itch.io to leave a comment.