๐ฎ 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