This is the latest major update coming to Vore Tournament 2.0.1. It once more fixes a huge limitation, which both the ancient Vore Tournament as well as VT 2.0 have been subject to. The change marks the last milestone in terms of properly implementing all of the basic and essential functionalities.
First we need to talk about how the micro / macro system used to work: As you know, players shrink and grow based on the amount of health they have. Despite looking convincing, this effect has been purely visual up until this point: The visual scale of the player model was modified, along with other effects such as the giant footsteps or changing the weight... however the real size was never actually touched. Some could probably tell this from the fact that macros always had their feet poking into the ground, whereas micros slightly floated above the floor... this was due to players being centered from the middle of their bounding box at all times.
Real scale is determined by a bounding box (mins / max vectors) which affects the collisions of the player. Changing this box to non-standard sizes has always been very tricky for characters: The old Nexuiz based VT didn't even have CSQC players (they were engine based rather than QC based) and the box is hardcoded there, thus trying to change it broke movement prediction and more. The new VT mod for Xonotic did implement the ability to change bounding boxes a while ago, but whenever I tried using it in the mod it caused players to glitch making them float or perpetually fall through the floor. There was also the problem that if a player grew while standing close to a wall, they would remain stuck in that wall forever.
Last month I had a chat with one of the core Xonotic developers about this, who helps me a lot with questions regarding the integration of my code with Xon. He explained what and how I need to change in order to resize the player's real collisions. After fiddling with the code for a while based on his advice, I finally got the bounding box working flawlessly! The visual scale is now based on the same calculation as the bounding box scale, which is itself only updated once there's enough room for a player to grow in order to avoid crushing them. For instance: If you enter a tunnel at 100 health and get 150 health but can't grow inside because the tunnel is too small, you'll instead grow once you exit the tunnel and there's enough room to do so.
In a nutshell, this modification means that a player's collisions are now also resized correctly, not just the visual model. An example of why that matters: If you were a micro before this, someone shooting above your head would deal damage because your hitbox was the same, even if you appeared smaller and visually it seemed like the shot went right past you. Oppositely if you were a macro, someone could shoot your model right in the face and the shot would go through you like a ghost without dealing damage, since once more the hitbox was that of a normally sized player. This applies not just to projectiles but everything else: Your collisions with walls and other players, the range at which you pick up items, etc... all were off even if it wasn't noticeable, now it's no longer the case.
The most important change however is how this affects navigation: Macros can no longer fit inside passages too large for them... they'll have to crouch to fit through some normal sized doors, whereas some entrances will be entirely inaccessible to them until they shrink again (you may thus have to shoot yourself if you absolutely need to take a blocked path). Oppositely, micros can now enter tight spaces and cracks that normal players cannot, allowing them to hide or perhaps even take special shortcuts that only a tiny person can use!
I chose a screenshot that nicely illustrates this in action: It shows me as a micro now able to walk under a plank resting tightly against the wall. At normal size, no player is ever capable of fitting in there, not even by crouching! But when turned into a micro, you can simply walk under that plank and even have room to move back and forth a bit!
This change gets us a huge step closer to the 2.0.1 release, but there's still more work and testing to be done. The best way to help is by supporting my work on Patreon: Your support is the reason why I'm still able to code this game altogether. The greater your aid, the more I can get done in a timely manner. Please check out my page and consider pledging if you want to see more Vore Tournament stuff as well as other vorish games and animations and more: