🎮 How to Play and Host My Multiplayer Ursina Shooting Game using Python
Ever wanted to play a real-time multiplayer shooting game made in Python? Now you can! I’ve built a game using the Ursina engine, where you and your friends can join the same server, shoot each other in a 3D world, and even host your own game server — all without port forwarding headaches, thanks to playit.gg!
👉 GitHub Repo: Multiplayer-Ursina-Game
👉 Live Demo Video: Watch on YouTube
🕹️ How to Play the Game (Client Setup)
You’ll be running the game client locally to connect to the server.
🔧 Prerequisites
-
Python 3.9 or above
-
Install dependencies:
pip install -r requirements.txt(Dependencies include:
ursina,pygame,pillow,psutil)
📥 Steps to Play
-
Go to the repo:
https://github.com/imvickykumar999/Multiplayer-Ursina-Game -
Download the repo as ZIP or clone it:
git clone https://github.com/imvickykumar999/Multiplayer-Ursina-Game.git cd Multiplayer-Ursina-Game -
Navigate to the
game/folder:cd game python main.py -
In the game launcher GUI:
-
Enter your name
-
Set the server IP (e.g.
vicks.imvickykumar999.online) -
Set the port (e.g.
11923, the external port fromplayit.gg)
-
🌐 How to Host Your Own Server
Want to host the game for your friends or stream it live? You can host the server on your own PC or VPS.
🧠 Requirements:
-
Python 3.9+
-
Install server dependencies (same as above)
-
Playit.gg account to bypass NAT/firewall
-
Optional: custom domain (like
yourname.online)
🛠️ Setup Steps
1. Open playit.gg
-
Sign in and download the Playit client
-
Run the client and create a tunnel for TCP port 8080
-
Example output:
TCP tunnel created: 11923 -> localhost:8080
2. Run the server
In the project root folder:
cd server
python main.py
This will launch your TCP game server, listening on port 8080. The tunnel via Playit will forward requests to it.
📡 Connecting Players to Your Server
You can now share your playit.gg hostname or domain with other players.
Example:
-
Server IP:
vicks.imvickykumar999.online(mapped using Namecheap DNS) -
Port:
11923
Ask players to:
-
Open
game/main.py -
Enter your IP/domain and external port (11923)
-
Click “Connect”
Players will instantly sync into your game and can move, shoot, and respawn!
🎯 Game Features
-
Real-time shooting and hit detection
-
Health and death animations
-
Respawn system
-
Multiple players supported (up to 10+)
-
Works over LAN or WAN using TCP sockets
-
Minimal setup — no need to configure routers!
🧪 Developer Notes
-
You can modify the server capacity in
server/main.py(MAX_PLAYERS) -
Enemy/player rendering is handled using Ursina’s entity system
-
Sounds and animations are customizable in the
game/folder
📦 Future Plans
-
Add scoreboards and chat system
-
GUI improvement
-
Deploy as
.exeinstaller -
Cross-platform builds
📬 Contact & Credits
Built by @imvickykumar999
GitHub: https://github.com/imvickykumar999/Multiplayer-Ursina-Game
For custom contributions or bugs, feel free to open an Issue or fork the repo!
0 Comments