BSRP: DEVLOG #1 — A DIRTY START
Happy May, Babylon! A couple of nights ago we recalled that one of the promised posts to go onto our Tumblr would be, you guessed it, development logs. What better way to kick off a dirty start to our first proper devlog almost six months into our Signalis server with a peak at a agricultural system Haven's been hard at work at? Plus a near-future sneak peak at some model splays, and at least one thing you'll start to hear by next restart.
GOING GREEN IN CANTOR-13
- Haven
In the process of working on how I wanted to handle the farming system, I knew that I wanted to take inspiration from Vintage Story and Project Zomboid in particular and essentially make a hybrid of the systems with the added twist of being in a world that was not at all based on any sort of grid to organize things upon. Maps in Garry's Mod are imperfect and messy, just like the real world, and they often use textures that don't really make it simple to do simple texture matching to determine whether you can or cannot plant a seed somewhere.
I opted to go for a system that is far more manual to set up, but only requires the staff to set up once per map as it's natively persistent by design. The first hurdle I had to overcome was figuring out how I was going to divide a naturally and intrinsically odd and uneven N-gon into a series of relatively evenly sized regions; rather, how I would divide my growth zone into many fertility zones. The zones themselves need be a roughly similar shape with a comparable number of bordered neighbors as any other region within the zone, as a given region is going to spread nitrogen, phosphorous, potassium, water, and disease to all of its neighbors.
Originally, as some of these screenshots demonstrate, I tried to use quadtree based spatial decomposition to accomplish this, but this had all sorts of issues with regions breaking out of the growth zone boundary, failing to adhere to edge lines, region overlap, and infinite recursion when trying to deal with complicated shapes. I was starting to think a quadtree wasn't going to cut it- like, at all.
So, a little research later, I figured out how to do this much more elegantly using Lloyd's algorithm to turn my oddly shaped, sloppy N-gon...
... into perfectly subdivided planes built near-instantly with the help of making the growth zones essentially generate a centroidal Voronoi tessellation.
Much better isoperimetric quotient, equiareal tessellation, boundary conformity, and even speed due to no longer dealing with accidental infinite recursion that had to be bailed out after it began to run away.
In Robinese this permits us to have equal portions set in any growing zones to get us closer to how agricultural expansion and management pans out in the real world. Sounds complicated, but all that does is ensure maintenance is done on every plant with half a mind as to what it's neighbors next plot are, and their conditions.
This is live on-server.
With habsbarra, Nena's player joining up on our team, it's done us a huuuuuuge favor in granting someone who knows how to turn a Blender model into a Garry's Mod model. In light of that Pipsqueak's been working their ass off on four new models in Blender.
What, or who, are they for? I can't say, but feel free to gawk at them for now.
EDIT 5-22: The third model in the lineup is by Rufru, thanks for the heads up Pip.
MUSIC FOR YOUR HEART AND SOUL
"I think the music reflects the state that the society is in."
John Lennon
On next restart of the Garry's Mod server, a whopping 21 songs will be added to the server in the form of cassette tapes for player characters to find and play. Won't spoil, but I'll gladly show the file tree.
Our rule of thumb is keeping what we add foreign enough so that we add to the uniqueness of the setting rather than jamming in a fuckton of David Bowie in the English language and calling it a day. If it's something serving as the background noise of an interaction, it should by default be immersing you into the shoes(or hooves, depending on)of your character.
Careful though! The only legal song in this list is Auf Prolet, the Protektorate have every right to bust into your little gathering and throw your ass somewhere dark and dingy for this reactionary noise.
More will be added as time goes on and our earworm gets satiated.
That about concludes it! Thanks for reading, if you've yet to do so, come join our Discord and maybe even our community as a whole.