Basically, right now racing is kind of simulating my simulation of jar movement. But really, I now have jar movement so I don't need to try to simulate it when racing. All I really have to do is create a jar, put the entrants in it, place an Attractor item at the other end, and watch them go.
Right now in racing the snails' steps are calculated based on time. So we basically loop through all the entrants until they've all either finished or dropped out and record their places as they come in. I would later be implementing stuff like snail interaction if two snails are side by side (one snail might try to bite the other, for example). But if I just make the whole race take place in an instance of a jar I don't have to worry about any of those things. The snails will interact naturally.
This does mean that I'll have to reimplement some attributes I used in current races to work in a jar context. Things like initiative (which dictates which snail starts moving faster), endurance (which, when depleted, causes a snail to be unable to move any farther and drop out). So it won't be a simple plug-in-a-jar-and-done thing just yet. I'm also creating a virtual user, Mr Casinir, who will own all of these racing jars (since we don't want any individual user hosting a race to have ownership, otherwise they'd be able to drag the snails and items around and ruin the race).
So I guess I'll be ripping out the whole current racing system and doing this instead.
Also - check out the cool new iteration of the snail by Nicholas Lives (who's also working on a game called We Need to go Deeper), who kindly offered to team up for art for Gastropoda. This is just the first iteration of a new snail and I already like it a thousand times better than the ugly placeholders I've been living with for over a year now.
Two of the snails have also mated, so I'm waiting for the eggs to hatch tomorrow morning if they don't cannibalise them by then.