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.