Sobre o projeto
Python Game Server é um servidor leve e framework para jogos multiplayer por turnos. Destina-se a jogos de tabuleiro e cartas, bem como a cursos de programação onde os alunos implementam clientes ou novos jogos.
Principais recursos descritos no README:
- Matchmaking automático ou entrada explícita em sessões
- Uma API flexível e agnóstica em relação ao jogo
- Um framework que oculta a complexidade do multiplayer do programador
- Adição de novos jogos derivando de uma classe base e sobrescrevendo alguns métodos
- Atualizações de estado inteligentes para evitar polling
- Suporte opcional a TLS
- Apenas habilidades básicas de Python são necessárias
Início rápido: inicie o servidor (server/game_server.py) e depois execute dois clientes (client/tictactoe_client.py). O único requisito é uma instalação regular de Python.
API do cliente: o módulo client/game_server_api.py permite que os clientes iniciem e entrem em uma sessão de jogo, enviem jogadas, recuperem o estado do jogo e reiniciem um jogo dentro da sessão atual. O README mostra um loop de jogo de TicTacToe usando GameServerAPI com parâmetros de servidor, porta, jogo, sessão e jogadores, além de chamadas join(), state() e move(**kwargs), e uma exceção IllegalMove.
Adicionando jogos: crie um módulo em server/games/, implemente uma classe derivada de AbstractGame, sobrescreva os métodos necessários e registre-a em server/games_list.py. Um modelo é fornecido em server/games/template.py. A API não precisa de alterações para novos jogos; as jogadas aceitam argumentos de palavra-chave arbitrários e o estado do jogo é retornado como um dicionário.
Operação do servidor: edite o IP e a porta em server/config.py, onde outras configurações, incluindo TLS, podem ser ajustadas. Um arquivo de unidade systemd é fornecido para execução como serviço. A wiki do projeto inclui uma referência da API, orientações para implementação de clientes e notas sobre a operação do servidor.
Contexto do projeto: desenvolvido para um curso de programação onde os alunos aprendem Python como primeira linguagem e trabalham em pequenos grupos. O framework e a API são projetados para que habilidades básicas de programação sejam suficientes, embora o uso não se limite à educação. Contribuições são bem-vindas por meio de pull requests, issues ou discussões. Licenciado sob GPLv3, copyright 2025, 2026 Fabian Eberts.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.