본 프로젝트는 Python 기반 오픈소스 게임인 PlantsVsZombies를 분석하고, 기능을 추가 및 개선한 프로젝트입니다. 오픈소스 개발자의 게임을 새롭게 수정하여 보다 완성도 높은 게임으로 구현하는 것이 목표입니다. 이를 통해 팀원들이 Python 언어와 오픈소스 개발에 대한 역량을 강화하고, 협업을 통한 실무 경험을 쌓을 수 있었습니다.
- 오픈소스 이름: PythonPlantsVsZombies
- 개발자: Marblexu
- 사용 언어: Python
- 주요 패키지: Pygame
- 오픈소스 게임의 기능을 개선하고, 새로운 모드를 추가하여 게임의 완성도를 높이는 것이 목표입니다.
- 팀원 전체가 오픈소스 프로젝트의 기여자로써 실력을 갖추는 것을 목표로 합니다.
- 다양한 스테이지와 추가적인 디펜스 캐릭터, 난이도 설정을 통해 게임의 재미 요소를 강화했습니다.
- 프로젝트를 통해 Python 언어에 대한 숙련도가 향상되었으며, 실무 개발에서의 협업 역량을 강화했습니다.
- 새로운 스테이지 및 난이도 모드: 게임에 다양한 스테이지와 난이도를 추가하여 유저가 더욱 도전적인 환경에서 게임을 즐길 수 있도록 했습니다.
- 게임 속도 조절 기능: 게임 속도가 느리다는 문제를 해결하기 위해 배속 기능을 추가하여 게임 진행 속도를 조절할 수 있도록 했습니다.
- UI 개선: 게임 시작 버튼, 난이도 설정, 소리 설정, 종료 버튼 등 사용자 인터페이스(UI)를 대폭 개선하여 사용자 경험을 향상시켰습니다.
- 사운드 효과: 게임 내 사운드 효과를 추가하여 몰입감을 높였습니다.
- 프로그래밍 언어: Python
- 사용된 라이브러리: Pygame
- 디자인 패턴: Singleton Pattern을 사용하여 게임의 시간과 좀비 수를 관리하는 GameManager 클래스를 구현
- map.py: 5x9의 2차원 배열로 게임 맵을 관리합니다.
- plant.py 및 zombie.py: 게임 내 식물과 좀비의 이벤트를 다루는 모듈입니다.
- mainmenu.py 및 screen.py: 메인 메뉴와 게임 결과 화면을 구현하는 모듈입니다.
- 오픈소스 분석: 오픈소스 코드의 구조와 동작을 분석하고, 팀원들과의 피드백을 통해 개선할 점을 도출했습니다.
- 기능 추가: 분석 내용을 바탕으로 새롭게 필요한 기능을 추가하였고, 기존의 기능을 개선하였습니다.
- UI 개선: 사용자 경험을 고려하여 다양한 UI 요소를 추가하고, 게임 플레이 흐름을 개선했습니다.
- 최종 테스트: 모든 기능이 정상적으로 동작하는지 최종 테스트를 거쳐 프로젝트를 완성했습니다.
- 본 프로젝트를 통해 미완성된 오픈소스 게임을 성공적으로 수정하고 보완하였습니다.
- 팀원들과의 협업을 통해 각자의 역할을 수행하며 소스코드를 개선하는 과정에서 많은 성장을 이루었습니다.
- Python 언어와 게임 개발에 대한 실력 향상에 크게 기여한 경험이었으며, 이후 게임 개발 시 큰 도움이 될 것입니다.
- 언어: Python
- 패키지 관리: Pygame
- 버전 관리: GitHub