Today for me was mostly finalizing the new monster spawning logic, which is a huge departure from the previous way monsters were spawned. Now, monsters are spawned as part of “spawning profiles” which describe what monsters should be spawned in what conditions, and also in what density. The spawning profiles are then connected to biomes, and each biome can actively have a different spawning profile. This enables more interesting divergence of biome environments, because specific biomes (and detached sub-biomes, layers, etc) can have not only different monster types but also different numbers of monster types and densities and parameters, which was very difficult to achieve with the old system.

This is part of the effort to make biomes more unique, and to make it easier to have, as an example, a field full of bunnies appear in the middle of a forest. There will also be added weighting and just generally more configurable monster spawning to increase variety and make exploring more interesting. The previous system simply spawned X number of “things” around each player, regardless, and then what thing was being spawned was based on where the “thing” happened to fall, which is not too flexible.

The algorithm to spawn monsters around each player in a specific density per spawning profile is somewhat tricky, so it’s taken me a bit to work out how exactly it should work.

Other things today included helping omni with some item issues that needed sorting out and untangling a couple of messy bits of code, and also spending about 2 hours talking with the people setting up fiber in our office, getting information from them, and configuring our new internal network.