Someone would have to code the game from scratch in a cross platform language like C or Python. I don't think Python would work on iOS, but it should be doable on Android, Windows, and macOS. Of course, I'm not a programmer, so disregard this if it's false. My knowledge of programming languages is next to none.
As for a central server, I really hope the main game program can be modified to become a central server of sorts. It's not a perfect plan and would require hosting multiple copies for multiple groups to play simultaneously, but it would be better than the current system. It would let people on cellular and other networks without administrative access host games as long as outgoing traffic on UDP port 2500 wasn't blocked. Then again, hosting multiple servers would require using multiple ports, but I figure using 2500, 2501, 2502, 2503, etc should work. If these public servers are added to the server list, people wouldn't have to worry about ports or IP addresses which is the whole point after all.
Speaking of the server list, would that need to be changed to distinguish between peer to peer servers and always on centrally hosted ones? Maybe there should be two options in the online menu. One called see the public server list and see public peer to peer servers.
It could be argued that a system like this might make it more difficult to find players, but I don't know for sure. It would be tremendously helpful for groups of friends that wanted to play together but none of the people involved could open the port.
You may access my NVDA Remote, Three-D Velocity, Sound RTS, and Road to Rage servers by using the address christopherw.me. Road to Rage uses the default 6789 port.