Python의 Pygame을 활용해 구현한 2인 멀티플레이어 슈팅 게임입니다. 이 게임은 두 명의 플레이어가 서버와 클라이언트로 나뉘어 소켓 통신을 통해 실시간으로 협력하여 게임을 진행합니다. 플레이어는 각각 전투기를 조작하여 운석을 격추하는 방식으로 진행됩니다. 서버 측에서는 운석을 관리하며, 두 전투기의 위치와 미사일 발사를 동기화합니다.
- 게임 목표: 두 명의 플레이어가 운석을 격추하여 최대한 많은 점수를 획득하고, 운석이 지구에 충돌하지 않도록 방어합니다.
- 플레이 방식: 서버와 클라이언트로 나뉘어 각자 전투기를 조작합니다.
- 서버 측 플레이어는 빨간 전투기를 조종하고, 클라이언트 측 플레이어는 파란 전투기를 조종합니다.
- 각 플레이어는 키보드를 사용하여 좌우 이동 및 미사일 발사를 제어합니다.
- 두 플레이어가 협력하여 운석을 격추하고, 격추 실패 시 남은 생명이 줄어듭니다.
- 목숨과 점수: 운석을 격추하면 점수가 증가하며, 운석이 지구에 떨어지면 남은 목숨이 감소합니다. 목숨이 모두 소진되면 게임 오버가 됩니다. 1/10의 확률로 등장하는 파란 운석을 격추하면 남은 목숨이 1개 증가합니다. 단, 최대 목숨은 3보다 커질 수 없습니다.
- Python 3.8 이상
- Pygame 라이브러리
게임을 실행하기 위해 필요한 라이브러리는 아래와 같습니다.
pip install pygame requests- server.py: 서버 측 코드로, 두 플레이어의 데이터를 수신하고 운석의 생성과 게임 상태를 관리합니다.
- client.py: 클라이언트 측 코드로, 서버와 통신하여 전투기와 미사일의 위치를 동기화하고, 화면에 이를 그립니다.
- asset/: 게임에 사용되는 이미지 및 효과음 파일들이 포함된 폴더입니다. 전투기 이미지, 운석 이미지, 배경 이미지, 그리고 효과음 파일들이 포함되어 있습니다.
-
서버 실행: 먼저 server.py 파일을 실행합니다.
python server.py
-
클라이언트 실행: 다른 컴퓨터나 동일 컴퓨터에서 client.py 파일을 실행합니다. 서버의 IP 주소를 입력하면 서버와 연결됩니다.
python client.py
-
게임 플레이:
- 서버 플레이어: 방향키 왼쪽과 오른쪽으로 전투기를 이동시키고, 스페이스바를 눌러 미사일을 발사할 수 있습니다.
- 클라이언트 플레이어: 동일하게 방향키 왼쪽, 오른쪽을 사용해 전투기를 이동하고, 스페이스바로 미사일을 발사합니다.
- 멀티플레이: 서버와 클라이언트 간 소켓 통신을 통해 두 명의 플레이어가 실시간으로 게임을 진행합니다.
- 운석 랜덤 생성: 서버는 일정 간격으로 화면 상단에서 운석을 무작위로 생성합니다.
- 충돌 처리 및 효과음: 전투기와 운석이 충돌하거나, 미사일이 운석을 격추할 때 효과음이 재생됩니다.
- 게임 종료 조건: 목숨이 모두 소진될 경우 "게임 오버" 메시지가 출력됩니다.
- 게임은 로컬 네트워크 또는 동일 네트워크에 연결된 두 대의 컴퓨터에서 원활하게 작동하도록 설계되었습니다. 인터넷을 통한 연결은 추가적인 포트포워딩 설정과 운영체제 방화벽의 인바운드 규칙 설정이 필요합니다.
- 게임 실행 전에 asset 폴더 내 필요한 파일들이 있는지 확인해 주세요.
이 프로젝트는 아래의 자료들을 참고하여 개발되었습니다:

