Онлайн 2D шутер с видом сверху для 2 игроков на Python + Pygame.
pip install -r requirements.txt- Запустите сервер:
python server.py- Запустите клиент:
python client.pyВ меню клиента:
- Сканировать — поиск серверов в локальной сети
- Добавить — вручную указать IP и порт
- Быстрый поиск — автоматически найти и подключиться к свободному серверу
- WASD — движение
- Мышь — прицеливание
- ЛКМ — стрельба
Для публичного доступа сервер должен слушать 0.0.0.0. Установите переменную окружения:
LISTEN=public
PORT=5555
Или при запуске: set LISTEN=public && python server.py (Windows) / LISTEN=public python server.py (Linux/Mac).
- Локально: IP
127.0.0.1, порт5555. - По сети (другой ПК): IP хоста с сервером, порт
5555. Нужен проброс портов на роутере. - Через туннель (ngrok):
В клиенте: введите хост и порт из вывода ngrok.
ngrok tcp 5555
- Railway: используйте выданный TCP proxy (типа
xxx.proxy.rlwy.net:12345).
Render.com: не поддерживает raw TCP. Используйте Railway, Fly.io или VPS.
- Локально (127.0.0.1): Убедитесь, что сервер запущен первым. Клиент выведет причину: "Connection refused" — сервер не запущен или порт неверный.
- По сети: Разрешите Python в брандмауэре Windows: Панель управления → Брандмауэр → Разрешить приложение → Python.
- Другой ПК: Нужен проброс портов на роутере или туннель (ngrok).
server.py— серверclient.py— клиентgame/— игровая логикаnetwork/— сетевая оболочкаmaps/— JSON-описание карт (arena, warehouse, maze)