It’s the USB Implementers Forum’s job to standardize these things, and they’ve just been doing a bad job. The naming scheme is a mess and the requirements are so loose, manufacturers just kinda hit whatever specs they want.
They need to set specific comprehensive list of technical requirements for each class of USB-C cable and port, reduce the number of classes (no more than 3-5), and make the naming scheme and logo design of those classes very clear and obvious to the less informed.
I use a simple WireGuard VPN to use my home DNS when I’m out. This container from linuxserver.io was really easy to set up, and the WireGuard app works great on iOS/Android. You can even have it automatically turn on and off depending on your network.
I tried fancy mesh networks like Tailscale, but it was over-complicated for my setup and kept causing DNS issues. Some people find this works well for them, though.
Either way, you can go full self-hosted this way and save money.
I think you're overthinking it. You don't need to render every skin. You just need a box that's the maximum bounds for that player model. Again, we're talking really low poly wireframes.
These bounds are standardized across every client, so the server already knows this information.
But the server is the authority on player location. It can tell if a player is visible to another because it knows their locations (as well as any obfuscations) at any given instant. It doesn’t need to know what they’re going to do next until it gets that next input from the client.
Obviously calculating this requires more work on the server’s part, but in smaller competitive matches this is totally doable. We’re talking basic wireframe vectors.
EDIT: Yall are really starting to convince me to make a proof of concept for this, because I'm convinced it can be done.
It helps that StarCraft, while somewhat relying on speed, is much more about strategy, meta knowledge, and real-time adaptation when your plan isn’t working.
That’s not something you can easily script, even with LLMs. That’s why the bot players have to use cheats at higher difficulties, because decent players outsmart them pretty quickly.
This is definitely solvable, though. The server can only send the client location updates of players they should be able to see.
If someone tried to wall hack, they’d only see the last known location before line of sight was broken.
Giving the client that data at all is like playing Battleship side-by-side and telling the player not to look at the other board.
Aimbots are much more complicated, because the client is the authority on player inputs. Even things like latency and mouse movement can be subtly randomized by cheats to appear less robotic.
It’s the USB Implementers Forum’s job to standardize these things, and they’ve just been doing a bad job. The naming scheme is a mess and the requirements are so loose, manufacturers just kinda hit whatever specs they want.
They need to set specific comprehensive list of technical requirements for each class of USB-C cable and port, reduce the number of classes (no more than 3-5), and make the naming scheme and logo design of those classes very clear and obvious to the less informed.