I am developing a multiplayer game with more than 2 players. I would like players in close proximity to be able to play a game without using networks or servers. For example, 3 people with non-3G tablets in a bus or a car. The game is turn-based, not real-time. Hence, a few questions.
I am familiar with socket programming; I have also seen the BT Chat example. If possible, I would like to avoid using any 3rd party engines.
1 - I do not, but I've encountered comments from other people here on SO that do.
2 - The issue is the first find. When a new player arrives and wants to join he has to find the existing piconet to join in on the communication. Even if he has connected to these people before, he doesn't know the timing of their current communication and I think it will take his device ~5 seconds to find it. If he breaks the connection and re-establishes for his next turn then it should be OK - as long as the drift in the clocks isn't too bad he will still be able to connect quickly.
Everything else is fast by comparison, but I hesitate to give numbers as I don't have much experience doing this sort of thing on Android. I will say though that the latency for 'send/receive updates' is in the same ball park as doing local W-Fi communication - it will not be an issue.
3 - Yes, if one of the devices has the Wi-Fi hotspot capability, or maybe W-Fi Direct would be suitable (don't know about that feature myself) but they would all have to have it and that is unlikely. One other problem with using Wi-Fi is that this new connection replaces their existing connection, which they might have been using for their Internet access.
On the whole, I would say that using Bluetooth can be tricky (and there are certainly bugs in the various implementations), but I still think it is the best option for the scenario that you have described.