개발 파이프라인 관리, Git 형상관리, 데이터 구조화 및 팀 개발 흐름 정리를 담당
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
Team / Role
Team project · 4명
게임 베이스 구조 설계와 플레이 로직 개발을 담당
그래픽 에셋 제작과 일러스트·비주얼 리소스 작업을 담당
게임 기획, 세계관 구성, 스토리 라이팅 및 내러티브 설계를 담당
Architecture
main.py의 Game 클래스를 중심으로 spirit·monster·effect·button·mana 등 지원 모듈이 결합된 pygame 구조이며, 웨이브·원소 데이터를 외부 파일로 분리해 데이터 주도 설계(DDD)를 적용한 구성.
Awards
- 한양대와 함께하는 전국 청소년 오픈SW GAME 코딩대회우수상한양대학교 ERICA · 2025팀 오페르투나
Learnings
실시간 게임 루프와 상태머신, 데이터 기반 웨이브 설계를 직접 다루는 한편, 팀 개발에서는 코드 자체보다 Git workflow와 데이터·에셋 구조를 정리하는 일이 협업 속도를 좌우한다는 점.