프로젝트 소개
Python Game Server는 턴제 멀티플레이어 게임을 위한 경량 서버이자 프레임워크입니다. 보드게임과 카드게임은 물론, 학생들이 클라이언트나 새로운 게임을 구현하는 프로그래밍 강좌를 대상으로 합니다.
README에 설명된 주요 기능:
- 자동 매칭 또는 명시적 세션 참여
- 유연하고 게임 독립적인 API
- 프로그래머에게 멀티플레이어 복잡성을 숨겨주는 프레임워크
- 기본 클래스에서 파생하고 몇 가지 메서드만 재정의하여 새 게임 추가
- 폴링을 피하기 위한 지능형 상태 업데이트
- 선택적 TLS 지원
- 기본적인 Python 실력만 있으면 됨
빠른 시작: 서버(server/game_server.py)를 시작한 다음 두 개의 클라이언트(client/tictactoe_client.py)를 실행합니다. 필요한 것은 일반 Python 설치뿐입니다.
클라이언트 API: client/game_server_api.py 모듈을 사용하면 클라이언트가 게임 세션을 시작하고 참여하며, 수를 제출하고, 게임 상태를 가져오고, 현재 세션 내에서 게임을 다시 시작할 수 있습니다. README는 server, port, game, session, players 매개변수와 join(), state(), move(**kwargs) 호출, 그리고 IllegalMove 예외를 사용하는 TicTacToe 게임 루프를 보여줍니다.
게임 추가: server/games/에 모듈을 만들고, AbstractGame에서 파생된 클래스를 구현하고, 필수 메서드를 재정의한 다음 server/games_list.py에 등록합니다. 템플릿은 server/games/template.py에 제공됩니다. 새 게임을 위해 API를 변경할 필요가 없습니다. 수는 임의의 키워드 인수를 허용하고 게임 상태는 딕셔너리로 반환됩니다.
서버 운영: server/config.py에서 IP와 포트를 편집하고, TLS를 포함한 다른 설정도 조정할 수 있습니다. 서비스로 실행하기 위한 systemd 유닛 파일이 제공됩니다. 프로젝트 위키에는 API 참조, 클라이언트 구현 지침, 서버 운영 노트가 포함되어 있습니다.
프로젝트 배경: 학생들이 Python을 첫 언어로 배우고 소규모 그룹으로 작업하는 프로그래밍 강좌를 위해 개발되었습니다. 프레임워크와 API는 기본적인 프로그래밍 실력으로 충분하도록 설계되었지만, 교육에만 국한되지는 않습니다. 풀 리퀘스트, 이슈 또는 토론을 통한 기여를 환영합니다. GPLv3 라이선스, 저작권 2025, 2026 Fabian Eberts.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.