ALL PROJECTS
게임보관

Witch

원소 기반 전투 시스템을 구현한 팀 기반 2D 웨이브 디펜스 게임

pygame으로 구현한 4x6 그리드 기반 원소 디펜스 게임

마녀를 지키기 위해 플레이어가 상점에서 원소 정령을 드래그해 4행 6열 그리드에 배치하고, 오른쪽에서 몰려오는 원소 몬스터를 막아 내는 pygame 기반 2D 웨이브 디펜스 게임. 원소별 정령·몬스터 상성, 웨이브 시스템, 씬 전환, 애니메이션 상태머신, PyInstaller 배포까지 게임 한 편의 구조를 갖춘 작품. 4인 팀 프로젝트로 진행했으며, 개발 과정에서 파이프라인 관리·Git 협업·데이터 구조화를 맡아 팀의 개발 흐름을 정리하는 역할.

Problem

팀 단위 게임 개발에서는 코드, 이미지·사운드 에셋, 웨이브 데이터, 빌드 산출물이 빠르게 뒤섞이는 환경. 정리되지 않으면 충돌이 잦아지고, 누가 무엇을 바꿨는지 추적하기 어려워져 협업과 유지보수 비용이 급격히 늘어나는 구조.

Solution

Git 브랜치 전략, 데이터 파일 기반 웨이브 구성, 일관된 에셋 로딩 규칙, PyInstaller 배포 구조를 정리해 팀 기반 게임 개발 흐름을 체계화한 구조. 콘텐츠(웨이브·원소 데이터)와 로직을 분리해, 팀원이 서로의 작업을 덜 침범하며 병렬로 개발할 수 있게 한 설계.

Key features

4x6 그리드 전투

정령을 드래그해 그리드에 배치하고, 행 단위로 진입하는 몬스터를 방어하는 전략형 배치 전투.

원소 기반 시스템

water, fire, grass, light, stone, dark 여섯 원소를 정령과 몬스터에 적용해, 배치 선택에 상성 전략을 더한 시스템.

웨이브·씬 구조

story_wave.json 기반의 데이터 주도 웨이브와 start·story·game·ending 씬 전환을 지원해, 콘텐츠를 코드 수정 없이 데이터로 조정할 수 있는 구조.

Tech stack

백엔드
Python
도구
PygamePyInstallerGit

Team / Role

Team project · 4명

My Role

개발 파이프라인 관리, Git 형상관리, 데이터 구조화 및 팀 개발 흐름 정리를 담당

Pipeline ManagementGit CollaborationData Structuring
황지성

게임 베이스 구조 설계와 플레이 로직 개발을 담당

Lead ProgrammingGameplay Logic
정세진

그래픽 에셋 제작과 일러스트·비주얼 리소스 작업을 담당

ArtGraphic Design
박우원

게임 기획, 세계관 구성, 스토리 라이팅 및 내러티브 설계를 담당

PlanningNarrative Design

Architecture

main.py의 Game 클래스를 중심으로 spirit·monster·effect·button·mana 등 지원 모듈이 결합된 pygame 구조이며, 웨이브·원소 데이터를 외부 파일로 분리해 데이터 주도 설계(DDD)를 적용한 구성.

Awards

  • 한양대와 함께하는 전국 청소년 오픈SW GAME 코딩대회우수상한양대학교 ERICA · 2025팀 오페르투나

Learnings

실시간 게임 루프와 상태머신, 데이터 기반 웨이브 설계를 직접 다루는 한편, 팀 개발에서는 코드 자체보다 Git workflow와 데이터·에셋 구조를 정리하는 일이 협업 속도를 좌우한다는 점.