Your problem isn’t as simple as “an anycast IP with multiple locations”. What’s your standard of lag? 10ms or 200ms? At a certain point, it’s not possible to have a single server in a single place running your code; you need to run a backend per region and have your users pick one (or pick the closest one automatically). Fly.io does have an anycast network with quite a few locations, and I recommend trying it out, but do also try out running region-specific servers (you can do this on Fly as well!)
I will make an example my backend server is in New York, users from Latam will play at 100-120 ms (good) but users from Asia will play at more than 200 ms (unplayable)