Skip to content
 
 

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2024년 2학기 데이터통신 A반 7조 조별 프로젝트

소개

Python의 Pygame을 활용해 구현한 2인 멀티플레이어 슈팅 게임입니다. 이 게임은 두 명의 플레이어가 서버와 클라이언트로 나뉘어 소켓 통신을 통해 실시간으로 협력하여 게임을 진행합니다. 플레이어는 각각 전투기를 조작하여 운석을 격추하는 방식으로 진행됩니다. 서버 측에서는 운석을 관리하며, 두 전투기의 위치와 미사일 발사를 동기화합니다.

프로젝트 구성원

게임 설명

  • 게임 목표: 두 명의 플레이어가 운석을 격추하여 최대한 많은 점수를 획득하고, 운석이 지구에 충돌하지 않도록 방어합니다.
  • 플레이 방식: 서버와 클라이언트로 나뉘어 각자 전투기를 조작합니다.
    • 서버 측 플레이어는 빨간 전투기를 조종하고, 클라이언트 측 플레이어는 파란 전투기를 조종합니다.
    • 각 플레이어는 키보드를 사용하여 좌우 이동 및 미사일 발사를 제어합니다.
    • 두 플레이어가 협력하여 운석을 격추하고, 격추 실패 시 남은 생명이 줄어듭니다.
  • 목숨과 점수: 운석을 격추하면 점수가 증가하며, 운석이 지구에 떨어지면 남은 목숨이 감소합니다. 목숨이 모두 소진되면 게임 오버가 됩니다. 1/10의 확률로 등장하는 파란 운석을 격추하면 남은 목숨이 1개 증가합니다. 단, 최대 목숨은 3보다 커질 수 없습니다.

게임 요구 사항

  • Python 3.8 이상
  • Pygame 라이브러리

게임을 실행하기 위해 필요한 라이브러리는 아래와 같습니다.

pip install pygame requests

파일 설명

  • server.py: 서버 측 코드로, 두 플레이어의 데이터를 수신하고 운석의 생성과 게임 상태를 관리합니다.
  • client.py: 클라이언트 측 코드로, 서버와 통신하여 전투기와 미사일의 위치를 동기화하고, 화면에 이를 그립니다.
  • asset/: 게임에 사용되는 이미지 및 효과음 파일들이 포함된 폴더입니다. 전투기 이미지, 운석 이미지, 배경 이미지, 그리고 효과음 파일들이 포함되어 있습니다.

실행 방법

  1. 서버 실행: 먼저 server.py 파일을 실행합니다.

    python server.py
  2. 클라이언트 실행: 다른 컴퓨터나 동일 컴퓨터에서 client.py 파일을 실행합니다. 서버의 IP 주소를 입력하면 서버와 연결됩니다.

    python client.py
  3. 게임 플레이:

    • 서버 플레이어: 방향키 왼쪽과 오른쪽으로 전투기를 이동시키고, 스페이스바를 눌러 미사일을 발사할 수 있습니다.
    • 클라이언트 플레이어: 동일하게 방향키 왼쪽, 오른쪽을 사용해 전투기를 이동하고, 스페이스바로 미사일을 발사합니다.

주요 기능

  • 멀티플레이: 서버와 클라이언트 간 소켓 통신을 통해 두 명의 플레이어가 실시간으로 게임을 진행합니다.
  • 운석 랜덤 생성: 서버는 일정 간격으로 화면 상단에서 운석을 무작위로 생성합니다.
  • 충돌 처리 및 효과음: 전투기와 운석이 충돌하거나, 미사일이 운석을 격추할 때 효과음이 재생됩니다.
  • 게임 종료 조건: 목숨이 모두 소진될 경우 "게임 오버" 메시지가 출력됩니다.

게임 플레이 영상

게임 플레이 데모 1 게임 플레이 데모 2

주의 사항

  • 게임은 로컬 네트워크 또는 동일 네트워크에 연결된 두 대의 컴퓨터에서 원활하게 작동하도록 설계되었습니다. 인터넷을 통한 연결은 추가적인 포트포워딩 설정과 운영체제 방화벽의 인바운드 규칙 설정이 필요합니다.
  • 게임 실행 전에 asset 폴더 내 필요한 파일들이 있는지 확인해 주세요.

참고 자료

이 프로젝트는 아래의 자료들을 참고하여 개발되었습니다:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages