https://github.com/imvickykumar999/Multiplayer-Android-Ursina
37
A small multiplayer first-person deathmatch game built with Ursina and Python TCP sockets. One player runs the server and other players connect as clients over a local network or a reachable public address.
Pre-built Windows executables are provided in the play/ folder:
| Role | Executable Path | Description |
|---|---|---|
| Server (Host) | play/server.exe | Hosts the game session, manages player states and bullet physics. |
| Client (Player) | play/client.exe | Opens the connection GUI, selects player color/username, and launches the 3D game. |
Tailscale creates a secure, encrypted peer-to-peer mesh VPN between your devices. It allows players from different homes, networks, or Wi-Fi connections to play together directly without port forwarding, router configuration, or Hamachi.
... menu next to their machine, selects Share..., and sends the invite link to the players.100.x.y.z (for example, 100.121.132.98).tailscale ip -4 in PowerShell, or looking at the server console.server.exe)play/server.exe (or run python server/main.py).==================================================
[*] Server started, listening on 0.0.0.0:8888...
[*] Tailscale IP = 100.121.132.98 (Use this for Tailscale)
[*] Local LAN IP = 192.168.x.x / 10.x.x.x (Same Wi-Fi only)
==================================================
100.121.132.98) with your friends. Keep this window open.client.exe)play/client.exe (or runs python client/main.py).100.121.132.98).
8888.Enter). The game will connect and launch into fullscreen 3D!If all computers are connected to the exact same home/office Wi-Fi router:
play/server.exe and notes the Local LAN IP (e.g. 192.168.0.x or 10.x.x.x).play/client.exe, enter that Local LAN IP, and click Play.play/server.exe.play/client.exe.127.0.0.1 or your Tailscale IP as the server address, port 8888, and click Play.If you prefer running or modifying the Python source code directly:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
(On Linux/macOS: source .venv/bin/activate)
# Terminal 1: Server
python server/main.py
# Terminal 2: Client
python client/main.py
| Action | Control |
|---|---|
| Move | W A S D |
| Jump | Space |
| Aim | Mouse |
| Shoot | Left mouse button |
| Respawn after death | R, Space, Enter, or the respawn button |
| Exit | Esc |
tailscale ping <host-tailscale-ip>
8888.8888 on the router to the host machine or use a TCP tunneling service (such as playit.gg).play/
server.exe Standalone server executable
client.exe Standalone client executable
client/
main.py Client entry point and game loop
network.py TCP client and message serialization
player.py Local player, health, death, and respawn behavior
enemy.py Remote player representation
bullet.py Projectile behavior
floor.py Arena floor
map.py Arena geometry
assets/ Textures and audio
server/
main.py TCP game server
requirements.txt
tailscale status to confirm both devices appear on the network, and tailscale ping <host-tailscale-ip> to verify connectivity.server.exe and is listening on port 8888.server.exe or python.exe. When Windows prompts you on first run, click Allow access.100.x.y.z for Tailscale or 192.168.x.x for local Wi-Fi).8888 is already bound by an existing server instance, close the previous server.exe window or terminate the background process.See LICENSE.
Content type
Image
Digest
sha256:50c43e17c…
Size
46.1 MB
Last updated
8 days ago
docker pull imvickykumar999/warzone