godotengine / godotengine/godot-docs
High level multiplayer docs should reference permissions issues for Android devices
- Dominant language
- reStructuredText
- Stars
- 5.7k
- Forks
- 3.8k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 25
Description
**Your Godot version:**
3.2.3-stable
Deploying on the Android-based Oculus Quest
**Issue description:**
Trying to get the High level multiplayer API to operate on the Quest is challenging owing to the number of Android permissions that are intent on blocking it.
In particular, as well as the "Internet" permission, discussed here: https://github.com/godotengine/godot/issues/33852 you also need change_wifi_multicast_state, which is once mentioned elsewhere in the docs at: https://docs.godotengine.org/en/stable/classes/class_packetpeerudp.html#class-packetpeerudp-method-join-multicast-group where it says:
> Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission for multicast to work.
You have to know that the High Level multiplayer API ultimately sits on top of UDP to know this is relevant.
I actually got the connection from a discussion here https://forum.unity.com/threads/change_wifi_multicast_state.667441/ where it was a new sub-permission to block apps from unintentionally doing UDP stuff because it consumes battery by requiring them to explicitly request it.
(After quite a lot of work, I have got some networking to happen, but only with the Quest as the server and the PC as the client, not the other way round. I don't know if this is a bug or just yet more permissions and blockages in this difficult system.
Functions that it is useful to print out are `OS.request_permissions()`, `OS.get_granted_permissions()`, `IP.get_local_addresses()` and `IP.get_local_interfaces()`)
**URL to the documentation page:**
https://github.com/godotengine/godot-docs/blob/c7d18873d52ab286af4ba76c1873e045b33fc0ce/tutorials/networking/high_level_multiplayer.rst
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.