Об этом проекте
Python Game Server — это легковесный сервер и фреймворк для пошаговых многопользовательских игр. Он ориентирован на настольные и карточные игры, а также на учебные курсы по программированию, где студенты реализуют клиентов или новые игры.
Ключевые возможности, описанные в README:
- Автоматический подбор соперников или явное присоединение к сессии
- Гибкий, игронезависимый API
- Фреймворк, скрывающий от программиста сложность многопользовательского взаимодействия
- Добавление новых игр путём наследования от базового класса и переопределения нескольких методов
- Интеллектуальные обновления состояния, позволяющие избежать опроса
- Опциональная поддержка TLS
- Требуются только базовые навыки Python
Быстрый старт: запустите сервер (server/game_server.py), затем запустите два клиента (client/tictactoe_client.py). Единственное требование — обычная установка Python.
Клиентский API: модуль client/game_server_api.py позволяет клиентам запускать игровую сессию и присоединяться к ней, отправлять ходы, получать состояние игры и перезапускать игру в текущей сессии. В README показан игровой цикл TicTacToe с использованием GameServerAPI с параметрами server, port, game, session и players, а также вызовами join(), state() и move(**kwargs) и исключением IllegalMove.
Добавление игр: создайте модуль в server/games/, реализуйте класс, производный от AbstractGame, переопределите необходимые методы и зарегистрируйте его в server/games_list.py. Шаблон предоставлен в server/games/template.py. Для новых игр API не требует изменений; ходы принимают произвольные именованные аргументы, а состояние игры возвращается в виде словаря.
Работа сервера: отредактируйте IP и порт в server/config.py, где можно настроить и другие параметры, включая TLS. Для запуска в качестве службы предоставлен файл unit для systemd. Вики проекта содержит справочник по API, рекомендации по реализации клиента и заметки по эксплуатации сервера.
Предыстория проекта: разработан для курса программирования, где студенты изучают Python как первый язык и работают в небольших группах. Фреймворк и API спроектированы так, чтобы достаточно было базовых навыков программирования, хотя использование не ограничивается образованием. Вклад приветствуется через pull requests, issues или discussions. Лицензия GPLv3, copyright 2025, 2026 Fabian Eberts.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.