← PROJECT ARCHIVEGAME DEV

GAME DEV / 완료

EXIPAND PROJECT

연습생을 선택해 훈련과 리듬 경연을 거치며 최종 데뷔에 도전하는 아이돌 서바이벌 게임

EXIPAND PROJECT의 여섯 연습생이 함께 있는 대표 이미지PROJECT / EXIPAND-PROJECT
기간2025.05.02–2025.12.09
참여 인원5명
내 역할게임 핵심 프레임워크 및 진행 루틴
엔진Unity
플랫폼Windows

6명의 연습생 중 한 명을 선택해 훈련과 스토리, 리듬 경연을 진행하고 최종 데뷔조에 도전하는 아이돌 서바이벌 육성 게임입니다.

요일별 스케줄로 능력치를 성장시키고 곡의 콘셉트와 연습생의 능력치를 조합해 경연 점수를 만듭니다. 경연 결과는 66명의 순위와 탈락에 반영되며, 선택한 연습생과 진행 결과에 따라 서로 다른 이야기를 경험할 수 있습니다.

사용자가 실제로 경험하는 핵심 기능입니다.

01

주간 육성 스케줄

월요일부터 금요일까지 보컬, 댄스 등 훈련 일정을 선택합니다. 활동 결과가 6개 능력치에 반영되어 이후 경연과 순위에 영향을 줍니다.

02

데이터 기반 분기 스토리

공통·캐릭터·탈락·데뷔 이야기를 JSON 데이터로 관리합니다. 플레이 상태에 맞는 대사와 장면을 불러와 선택한 연습생의 흐름을 이어갑니다.

03

4키 리듬 경연

D, F, J, K 네 키로 노트를 판정합니다. Perfect, Good, Bad, Miss 판정과 콤보, 곡 점수를 계산하고 육성 능력치와 합산해 최종 베네핏을 결정합니다.

04

순위와 탈락

경연 점수에 따라 66명의 순위를 갱신합니다. 라운드별 생존 인원이 줄어들고 마지막 6명이 데뷔하는 서바이벌 흐름을 구현했습니다.

담당 역할

  • 게임 핵심 프레임워크 및 진행 루틴
  • 리듬 게임·판정·결과 시스템
  • JSON 데이터·육성·스케줄 시스템

팀 구성

  • 개발 3명
  • 아트 2명
Unity 2022.3.60f1C#URPUGUITextMeshProJSONDOTween

기능을 만들기 위해 직접 설계하고 구현한 기술 영역입니다.

01

중앙 진행 루틴

`GameManagerEx`가 날짜, 훈련, 스토리, 경연, 순위 발표를 하나의 진행 루틴으로 연결합니다. 각 단계가 끝나면 다음 상태로 넘어가도록 구성해 전체 게임 흐름을 한곳에서 추적할 수 있게 했습니다.

02

공통 매니저 프레임워크

`Managers`를 진입점으로 Game, Data, UI, Resource, Story, Rank, Sound, Input 기능을 초기화했습니다. 여러 화면에서 필요한 기능에 같은 방식으로 접근하도록 프로젝트의 기본 구조를 만들었습니다.

03

데이터 기반 콘텐츠 처리

연습생 정보와 대사, 곡, 순위 데이터를 코드에서 분리해 JSON으로 읽습니다. 콘텐츠가 변경되어도 핵심 로직을 직접 수정하는 범위를 줄였고, Google Sheet 데이터를 게임용 데이터로 변환하는 작업 흐름도 구성했습니다.

04

리듬 노트 제작과 판정

노트 생성, 이동, 입력 판정, 콤보, 점수 계산과 결과 화면을 구현했습니다. Unity Editor에서 곡의 타이밍에 맞춰 노트를 기록하고 저장할 수 있는 제작 도구를 추가해 반복 입력 작업을 줄였습니다.

하나의 Unity 씬에서 상황에 맞는 UI 프리팹을 교체하고, 공통 매니저가 게임 진행과 데이터, 화면, 사운드를 연결하는 구조입니다.

01

Presentation

  • 홈, 스케줄, 스토리, 순위, 리듬 게임 UI
  • UGUI와 TextMeshPro 기반 화면 구성
  • DOTween을 활용한 화면 연출
02

Core

  • `Managers` 공통 진입점
  • `GameManagerEx` 진행 루틴과 상태 관리
  • 입력, 사운드, 리소스 관리
03

Gameplay

  • 훈련과 능력치 성장
  • 스토리 조건과 분기
  • 리듬 노트 판정과 점수 계산
  • 베네핏, 순위, 탈락 처리
04

Data

  • 연습생, 곡, 대사, 순위 JSON 데이터
  • 세이브·로드 데이터
  • 에디터 리듬 노트 데이터
01화면 전환 때 UI가 중복 생성되는 문제
문제

진행 단계가 바뀔 때 홈 또는 리듬 게임 UI가 두 번 생성되고 이전 팝업이 남는 경우가 있었습니다.

원인

씬 전환 코드와 게임 진행 루틴이 각각 같은 UI 생성을 요청해 화면 생성 책임이 겹쳤습니다.

해결

UI 생성은 씬 초기화 과정 한곳에서 담당하도록 중복 호출을 제거했습니다. 다음 루틴을 실행하기 전에 씬 UI와 팝업 UI를 함께 정리하도록 종료 순서도 통일했습니다.

결과

전환 뒤 화면이 중복되거나 이전 팝업이 남는 현상을 없애고, 단계마다 같은 초기 상태에서 시작하도록 만들었습니다.

02리듬 게임 종료 경로가 달라 생기는 진행 오류
문제

곡이 자동으로 끝났을 때와 나가기 버튼을 눌렀을 때 정리 작업과 다음 단계 이동이 서로 다르게 실행됐습니다.

원인

두 종료 방식이 별도 로직을 사용해 입력 이벤트 해제와 오브젝트 정리가 중복되거나 빠질 수 있었습니다.

해결

두 경로가 공통 `QuitAction`을 호출하도록 합치고, 이벤트 해제와 BGM 정지, 오브젝트 정리, 다음 루틴 이동의 순서를 하나로 만들었습니다.

결과

종료 방식과 관계없이 리듬 게임을 안전하게 정리하고 다음 진행 단계로 한 번만 이동하도록 개선했습니다.

6명의 연습생 선택과 육성, 스토리, 경연, 순위 발표가 이어지는 전체 플레이 흐름 완성4키 리듬 게임과 Unity Editor용 노트 제작 도구 구현66명 참가자의 순위와 라운드별 탈락, 최종 6명 데뷔 로직 구현서울여자대학교 디지털미디어학과 2025 DIMIVERSE 전시 참여

잘된 점

  • 게임 진행에 필요한 공통 기능을 먼저 구성해 팀원이 같은 흐름 위에서 기능을 나누어 개발할 수 있었습니다.
  • 스토리와 캐릭터 정보를 데이터로 분리해 콘텐츠 추가와 수정이 핵심 코드에 미치는 영향을 줄였습니다.
  • 플레이 기능뿐 아니라 리듬 노트 제작 도구까지 구현해 콘텐츠 제작 과정의 반복 작업도 줄였습니다.

아쉬운 점

  • 여러 시스템이 공통 매니저와 정적 이벤트에 직접 연결되어 기능이 늘어날수록 의존 관계를 추적하기 어려워졌습니다.
  • 일부 매니저가 게임 규칙과 화면 전환을 함께 담당해 클래스의 책임이 커졌습니다.

다시 만든다면

  • 진행 규칙, 데이터, 화면 표현을 더 작은 단위로 나누고 인터페이스를 통해 연결하겠습니다.
  • 순위 계산과 경연 점수처럼 규칙이 명확한 로직에는 자동화 테스트를 추가하겠습니다.
  • 이벤트 등록과 해제를 한곳에서 관리해 화면 수명 주기에 따른 오류를 예방하겠습니다.