Remove Bluetooth from multiplayer
Multiplayer now runs over Wi-Fi (LAN) only. - Delete BluetoothTransport and drop it from LobbyController's transport list, leaving LanTransport as the sole transport. - Drop TransportKind.BLUETOOTH and the now-unused RFCOMM_UUID constant. - Remove the BLUETOOTH/BLUETOOTH_ADMIN/BLUETOOTH_CONNECT permissions and the android.hardware.bluetooth feature from the manifest, along with the runtime permission request in MainActivity and the requestBluetoothPermissions hook on AppEnv. - Update lobby copy so an empty transport list and an empty host list talk about Wi-Fi rather than pairing, and refresh the comments and README sections that described two transports. The transport abstraction itself is kept: everything after the handshake was already transport independent, so adding another one later needs no changes above LanTransport. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01YEsqYAMJKUJoM7UAavm169
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Pro Libertate Games
|
||||
|
||||
A collection of card and board games for Android, playable against the computer
|
||||
or against other people over Wi-Fi (LAN) or Bluetooth.
|
||||
or against other people over Wi-Fi (LAN).
|
||||
|
||||
## What works today
|
||||
|
||||
@@ -24,19 +24,13 @@ layers are game-agnostic and need no changes.
|
||||
## Playing with other people
|
||||
|
||||
Pick a game, choose **Host a game for others to join**, and the device advertises
|
||||
itself on every radio it has. Other devices choose **Join a game nearby** and
|
||||
itself on the network. Other devices choose **Join a game nearby** and
|
||||
pick the host from the list. Seats start out filled by the computer and are
|
||||
handed to people as they join, so any mix of humans and AI works — whatever is
|
||||
still marked *Computer* when the host starts stays AI.
|
||||
|
||||
- **Wi-Fi (LAN)** — both devices must be on the same network. Discovery uses
|
||||
mDNS/NSD; play runs over a TCP socket.
|
||||
- **Bluetooth** — devices must already be **paired** in Android's Bluetooth
|
||||
settings. Play runs over Classic RFCOMM. Scanning for unpaired devices is not
|
||||
implemented.
|
||||
|
||||
Both transports can be live at once, so some players can be on Wi-Fi and others
|
||||
on Bluetooth at the same table.
|
||||
|
||||
### How a match is kept in step
|
||||
|
||||
@@ -207,7 +201,7 @@ game/ rules engines and AI — pure Kotlin, no Android, unit-tested
|
||||
crazyeights/ Crazy 8s model, rules, AI
|
||||
chess/ Chess model, FEN, move generation, search
|
||||
tayu/ Ta Yü tile geometry, river rules, scoring, AI
|
||||
net/ wire protocol, LAN and Bluetooth transports, lobby, match driver
|
||||
net/ wire protocol, LAN transport, lobby, match driver
|
||||
settings/ DataStore-backed preferences
|
||||
update/ GitHub Releases OTA updater
|
||||
ui/ Compose screens
|
||||
|
||||
Reference in New Issue
Block a user