À propos du projet

Python Game Server est un serveur et framework léger pour jeux multijoueurs au tour par tour. Il cible les jeux de plateau et de cartes ainsi que les cours de programmation où les étudiants implémentent des clients ou de nouveaux jeux. Caractéristiques clés décrites dans le README : - Matchmaking automatique ou rejoindre une session explicitement - Une API flexible et agnostique au jeu - Un framework qui masque la complexité multijoueur au programmeur - Ajout de nouveaux jeux en dérivant d'une classe de base et en surchargeant quelques méthodes - Mises à jour intelligentes de l'état pour éviter le polling - Support TLS optionnel - Seules des compétences de base en Python sont requises Démarrage rapide : démarrez le serveur (server/game_server.py), puis exécutez deux clients (client/tictactoe_client.py). La seule exigence est une installation Python standard. API client : le module client/game_server_api.py permet aux clients de démarrer et rejoindre une session de jeu, soumettre des mouvements, récupérer l'état du jeu et redémarrer un jeu dans la session actuelle. Le README montre une boucle de jeu TicTacToe utilisant GameServerAPI avec les paramètres server, port, game, session et players, plus les appels join(), state() et move(**kwargs), et une exception IllegalMove. Ajout de jeux : créez un module dans server/games/, implémentez une classe dérivée de AbstractGame, surchargez les méthodes requises et enregistrez-la dans server/games_list.py. Un modèle est fourni à server/games/template.py. L'API ne nécessite aucun changement pour les nouveaux jeux ; les mouvements acceptent des arguments de mots-clés arbitraires et l'état du jeu est renvoyé sous forme de dictionnaire. Fonctionnement du serveur : modifiez l'IP et le port dans server/config.py, où d'autres paramètres, y compris TLS, peuvent être ajustés. Un fichier d'unité systemd est fourni pour exécuter le serveur comme service. Le wiki du projet comprend une référence API, des conseils d'implémentation client et des notes sur le fonctionnement du serveur. Contexte du projet : développé pour un cours de programmation où les étudiants apprennent Python comme premier langage et travaillent en petits groupes. Le framework et l'API sont conçus pour que des compétences de programmation de base suffisent, bien que l'utilisation ne soit pas limitée à l'éducation. Les contributions sont les bienvenues via des pull requests, des issues ou des discussions. Sous licence GPLv3, copyright 2025, 2026 Fabian Eberts.