프로젝트 개요 / Overview
- 게임 제목 | The Developer
- 게임 장르 | 타워 디펜스, 호드 모드
- 개발 기간 | 2024.09 ~ 2024.12, 2026.01 ~ (Steam 출시 준비)
- 인력 구성 | 초기 개발 4인, 출시 준비 5인
- 게임 소개
누명을 쓰게 된 제어장치의 개발자. 누명을 벗기 위해 임무를 완수하고 지구로 돌아가자.
- 비고 | 2025 2학기 소프트웨어학과 전공박람회 대표작
기술 스택 / Tech Stack
- Engine : Unity 2D
- Language : C#
- Tools : Rider, Git, GitHub
- Collaboration : Git Flow 기반 협업
기여 / Contribution
게임 시스템 공용 로직과 UI 구조 설계를 담당
- 타워, 웨이브, 플레이어 상태 등 게임 핵심 시스템을 공용 로직과 분리하여 설계
- UI(메뉴, 인게임 HUD, 결과 화면)를 시스템 상태와 분리하여 구조화
- 팀원들이 개별 기능 구현에 집중할 수 있도록 인터페이스 기반의 시스템 구조를 정의하고 사용 규칙을 정리
- 게임 흐름에 맞춘 오프닝, 엔딩 연출 구현
문제 해결 사례 / Trouble Shooting
문제
- 첫 Unity 팀 프로젝트에서 타워, 웨이브, UI 등 여러 기능을 동시에 개발하며, 기능 코드들이 서로를 직접 참조하는 구조로 점점 복잡해짐
- 이로 인해 한 기능을 수정하면, 다른 기능의 동작이 예기치 않게 영향을 받는 문제가 반복됨
원인 분석
- 기능 개발자들이 각자 필요한 정보를 다른 기능 코드에서 직접 가져오는 방식으로 구현
- 공통된 흐름이나 상태를 관리하는 기준점이 없어 참조 방향이 뒤섞인 구조가 형성됨
해결 방법
- GameManager / InGameManager / TowerManager 등 Manager를 기능 간 중계 지점으로 명확히 정의
- 기능 코드들은 서로를 직접 참조하지 않고, Manager를 통해서만 상태 변경이나 요청을 전달하도록 구조 재정립
- Manager가 제공하는 공통 인터페이스와 사용 규칙을 정리하여 팀원들의 기능을 연결
결과
- 기능 간 직접 참조가 제거되며 구조가 단순해짐
- 팀원들이 자신의 기능만 구현해도 전체 시스템과 자연스럽게 연동될 수 있는 환경이 만들어짐
배우고 느낀 점 / Retrospective
첫 팀 프로젝트였던 The Developer는 기능 구현보다 “여러 사람이 동시에 개발해도 흔들리지 않는 구조”를 만드는 것이 얼마나 중요한지를 체감한 프로젝트였습니다.
초기에는 각 기능이 서로를 직접 참조하며 빠르게 개발했지만, 기능이 늘어날수록 수정 하나가 다른 파트에 영향을 주는 문제가 반복되었습니다. 이를 해결하기 위해 Manager를 중심으로 기능 간 연결 구조를 재정립하며, “누가 상태를 관리하고, 누가 반응만 해야 하는지”를 명확히 구분하는 설계를 경험했습니다.
이 과정을 통해 팀 개발에서는 개별 기능의 완성도뿐 아니라, 다른 사람이 쉽게 이해하고 안전하게 붙일 수 있는 구조를 먼저 만드는 것이 개발 속도와 안정성에 더 큰 영향을 준다는 점을 배웠습니다.
이후 프로젝트에서는 기능을 추가하기 전에 의존 관계와 책임부터 정리하는 습관을 갖게 되었고, 협업을 전제로 한 시스템 설계를 고민하는 개발자로 성장하고자 합니다.
관련 자료 / Links
- Youtube
출시 준비 / Release
현재 프로젝트 The Developer는 추가적인 업데이트와 디버깅 중에 있으며, 연말 스팀 출시를 예정하고 있습니다. 사업자 등록과 Steam-works 등록을 마친 상태이며, 저를 포함한 5명의 개발자가 참여하여 추가적인 개발을 이어가고 있습니다.
