Logic here is to encourage people to play both sides. Not like this mechanic is really encouraging anyone to play xeno one of the reasons is that it’s bugged to hell and you can sometimes miss your own larva. Very few people actually change sides (most people are emotionally invested in their side and their comrades victory), so this barely serve any purpose but helping xenomains to rejoin their cause and being a nuisance to huggers who want a respawn.
Anyway it’s just another case of trying to kill all the birds with one stone, ending up killing none. I want to stress this enough, the best way to win the queue is literally to not play at all.
Currently the means to late join as a xeno is to join a server, set your xeno candidacy if not already set, and to observe. Even if the time of death was only sent on observation, people could get into queue just by joining the server, observing, and then leaving to come back later.
This behavior is intentional because my goal was the eliminate the need to stay glued to the game to have a fair chance of getting a chance to play the game. Being forced to stay active as an observer exacerbates the issue that being an observer is just simply boring. Even my original implementation of the queue explicitly gave late joiners priority, but based on player feedback I changed it to how it is now where they are assigned their time of death on join.
However, this will be mixed up with Ghost Restrictions - HackMD where basically to be a xeno candidate, you will join that hive and immediately have a small presence in the game, however I intend to still keep the same behavior where they are free to disconnect and come back without penalty.
What I could do is have it where time of death effectively moves slower while you are disconnected or idle. What I mean by this is I could record a time of disconnection/idle, and whenever you rejoin/un-afk your time of death is pushed back for maybe half the time you were disconnected/idle. This would mean effectively time moves at half speed while you’re disconnected/idle to give players who are connected more priority. But this will push us back towards players needing to feel like they gotta stay glued to the game to have their best chance at getting a larva which is entirely what I was trying to solve in the first place.
Facehuggers getting second dibs on larva was a change done in response to player feedback. Ultimately observing is very boring and it was acceptable to me to reward players who put in the effort to successfully help the hive infect more marines for them to get second dibs on whatever marine they helped infect. In general, I feel hives are really bad at capturing, and my hope was for playable facehuggers to mitigate that somewhat.
Again as I explained in this topic, you aren’t “assigned” a position, nor is someone bumping you out of line.
Every time the core ticks and when a larva bursts, every observer is checked whether they are in that current moment a valid xeno candidate (not afk, etc) and added to a list. That list is then sorted by their time of death. The player that is at the top of that list is offered the larva. Every other player is then given a message telling them their index number (minus 1 because we just gave a larva to the first player in the list).
Say for example Player A died at 00:30, player B died at 00:45, and player C died at 01:00.
Now lets say a larva bursts and players A & C are currently valid xeno candidates (and player B either went afk or temporarily turned off xeno candidancy): Player A is given the larva, player B is sent nothing, player C is told they are now 1st in the queue.
Now lets say another larva bursts and players B & C are both currently valid xeno candidates: Player B is given the larva (they have an older time of death than C), and player C is told they are now 1st in the queue.
Players are constantly going afk, disconnecting, reconnecting, etc. so that is why the number is fluid.
If say it accounted for all the afk/disconnected etc players the number would be meaningless:
Say there’s 50 players at round start. Round starts and an hour later 50 people have died and every single one of them rage-quit/afk/xeno-candidacy-off but there’s been now 50 late joins wanting to play xeno (so a total of 100 players have connected this round). This would mean the next xeno candidate would be 50th in queue, but they are at the head of the line since they are the first person thats a valid xeno candidate (but techinically any of those 50 other people could be ahead of them).
From my perspective, the issue what the queue should have solved was the inconsistency of getting larva. During RNG depending on your luck you could wait for literal hours and never get your larva. With the current queue, given it’s not an actual queue and there are multiple ways to circumvent it, the problem persists. It’s less inconsistent and better than RNG but still far from perfect. You can still wait for literal hours going only up in the queue, regardless of whether you are glued to your screen or not (why should we care about people who don’t play the game again? I am not sure if you elaborated on this). To the point people actually miss the RNG just because it at least didn’t annoy the heck out of you by showing that your chances just became smaller. But no, I know you wanted to remove the message entirely, this would be literally curing the symptom instead of the illness.
Around 2019 there was a multiburst feature which gave xenos a random of 1 to 4 larva for every capture.
Late 2019 Xeno Special Structures update introduced the spawning pool. The first version actually allowed any colony bodies to be fed, which resulted in xenos having 100+ at the deployment time, if they cared enough. This got quickly fixed to allowing only the real bursted bodies, so xenos would effectively get 2 xenos for every capture(multiburst got removed).
Late 2021 I was wondering why there does not seem to be as many xenos as the simple math would dictate and found a couple of balancing exploits, which combined accounted for that. After fixing it all, there was now an intended amount of xenos, but it was too many, so an independent counting for shipside roles got introduced and roughly the same number of xenos was kept as before.
At some point it was noticed that the spawning pool is essentially redundant and it got removed, while the second larva just started spawning at the hive core.
In 2023 Morrow decided that the xenos are doing well enough and removed that second larva for a cap.