
2024년도에 예술적인 소프트웨어 프로젝트랑 같이 병행했던 주니어 프로젝트 Project RM이 성공적으로 끝났다.
이 프로젝트는 2학년 여름방학 ~ SW 페스티벌(11월 말) 간 진행한 프로젝트이다.
개발하는 시기에 학과목 팀플과 겹치는 바람에 많이 바빠져서 9월 개강 이후로는 개발일지를 작성하지 못했었다.
지금은 개강을 안하기도 했고 시간적으로 여유로워서 지금에라도 후기를 작성해보려고 한다.
이번 프로젝트에서 나는
- 팀장
- 총괄 기획자
- 메인 개발자 (플레이어, UI/UX, 적, 보스(일부))
- 연출 / 아트 담당자
- 음향 담당자
의 역할을 수행했다.
Project RM은 마음이 맞는 동기들과 '오뎅스' 팀을 만들어 시작한 것이다. 그래서 그런지 의견을 모아서 회의를 하거나 모여서 개발할 때 더 마음이 편했던 건 사실이었다. 수고했다 얘들아
이 프로젝트로는 유니티 엔진으로 만들어보고 싶었는데 하지 못했던 것을 다 해봤다. 흔히 게임에서 보이는 것들이나 머릿속에만 그리던 것들을 다 끄집어 낸, 쉽게 말해 꿈을 그렸었다. 다 실현하진 못했지만...
그 과정과 결과를 한번 끄적여보겠다.
프로젝트에 대하여
개요
Project RM에서는 리듬 + 플랫포머 던전이 주 장르로, 소울라이크 요소도 가미된 2D 게임, 'Dystopian' 을 만들었다.
중세시대부터 근미래까지 이어진 왕국에서 진행되고, 아포칼립스 이후에 문제가 생긴 왕정 안으로 들어가는 주인공을 따라가며 진행된다.
1인 플레이이며, 리듬게임 장르와 결합된 던전 장르라서 게임 자체의 진행은 그리 빠르지는 않지만 순간 순간의 진행은 속도감있게 가는 것이 특징이다.
개발 기간은 약 4개월 이다. 정말 한정된 시간 안에서 빠르고 퀄리티있게 해낸 프로젝트라고 생각한다. 지금 생각해보면 다른 프로젝트 하면서 어떻게 이 정도로 집중하고 투자해서 게임을 만들어냈는지 모르겠다.
아래는 게임을 발표 및 시연할 때 사용했던 포스터이다.

'Dystopian'은 방대한 게임 로직, 화려한 그래픽 보다는 진짜 '게임' 그 자체가 낼 수 있는 감성, 몰입, 재미에 집중했다.
흔히 말하는 '인디 게임'에 가깝다.
총 5개의 스테이지로 구성되어있으며,
- 튜토리얼
- 스테이지 1
- 중간 보스
- 스테이지 2
- 스테이지 2 - 몬스터 러시
- 최종 보스
까지 진행된다.
엄청나게 달린 이 프로젝트로 수상도 했다..!
DYSTOPIAN 수상 내역
🏆 (교내) 2024 SW 페스티벌 장려상 (4위)
🏆 (교내) 제1회 소프트웨어융합학과 컨퍼런스 우수상 (3위)
원래 타겟이었던 SW 페스티벌 주니어상이 갑자기 없어져서 당황했지만... 장려상을 타내며 걱정은 기쁨으로 바뀌었다.
새로 생긴 창의상이 주니어상 느낌이라 팀원들이랑 '이 상 못타면 상 못타는거야~' 했었다. 결과 발표 때 창의상을 진짜 못타서 이대로 마무리되겠구나 했는데 갑자기 장려상에서 이름이 불려서 화들짝 놀라면서 나간 기억이 있다.
총괄 기획자
사실 기획자라고 할 수도 없는 게, Project RM은 정확한 기획서 없이 시작한 프로젝트였다.
왜 없었는지에 대한 이야기를 풀어보자면...
원래 우리 팀은 4명이었다. '고세지' 라는 이름으로 출발해 드래곤빌리지 느낌의 고양이 파밍 힐링게임을 기획하고 개발을 하고 있었다. 나는 그냥 팀장 겸 개발 담당이었고, 기획은 다른 팀원이 담당했었다.
하지만 그 기획을 기반으로 개발을 하던 도중, 어떤 생각이 들었다.
'에셋도 직접 만들어야 되고, 개발할 기능도 많은데, 이런 것과 대비해서 과연 완성했을 때 유저들이 재미있다고 느낄까?'
이 생각과 1인 개발 프로젝트를 진행할 때 겪었던 상황이랑 겹쳐보이면서, 기획을 바꿔야 한다는 것을 느꼈다.
처음부터 아이디어를 새로 짜서 기획을 다시 하는 것은 시간상 무리라고 느껴서, 원래 1인 개발로 하려고 가지고 있던 리듬게임 기획을 조금 다듬어서 러프한 기획을 팀원들에게 보여주며 이걸로 바꾸자고 했다.
다행히 모두 OK 해주었고, 기획을 담당하던 팀원도 흔쾌히 좋다고 해주어서 고마웠다.
그러던 중 6월 말 즈음 이전 기획을 담당하던 팀원이 개인 일정이 많이 생기고 점점 프로젝트를 같이 진행하기가 힘들어져서 부득이하게 팀을 나갔다.
그렇게 남은 멤버로 급하게 '오뎅스' 라는 팀으로 7월 초부터 시작했던 것이다.
그리고, 게임의 컨셉은 에셋에 맞춰서 가져갔다.
2D 도트 게임만 생각하고있다가, 이 에셋을 보고 바로 정했다. 너무 비싸...
적도 다양하고, 보스도 있고, 우리 게임에 필요한 꾸밀 요소는 다 있어서 사지 않을 이유가 없었다.
시간이 없다보니 기획서를 쓰지 않고 '이건 이렇게 하자.', '이 기능은 빼는게 낫겠다.' 이런 의견을 주고받으며 바로바로 개발에 들어갔던 것 같다.
그래서 보면 1인 개발로 하려던 기획과 완성된 게임은 다른 점이 좀 있다.
무기가 총으로 바뀌었다든가, 로그라이크 요소가 빠졌다든가...
이런 식의 프로젝트 진행은 팀이 3명이어서 가능했던 것 같다. 당장 팀원이 5~6명만 돼도 자세한 기획서 없이 각자 구두로 말한 기획에 맞게 개발하는 것은 정말 하늘의 별따기 수준으로 어렵다. 'Wi, Zard!' 때 뼈저리게 느꼈다.
그래도, 시간이 없는 시점에서 이렇게 말로 구상하며 개발을 이어나간 것은 시간을 많이 줄여줬다고 생각한다. 좋은 방법은 아니었다고 하더라도...
이런 부분은 모두 마음이 맞는 팀원들 덕인 것 같다. ㅎㅎ 고마워요 오뎅스 여러분
메인 개발자
메인 개발자로써 개발에 참여한 것으로는,
- 플레이어
- 적
- 보스 패턴
- UI / UX
이 있다.
플레이어
플레이어 개발은 플랫포머 게임에서 볼 수 있는 전형적인 플레이어랑 똑같다.
방향키로 움직이고, 점프하고, 키를 눌러서 공격한다.
좀 특별한 기능은 적을 자동으로 조준한다는 것이다.
원래 있던 기능이었는데, 중간에 게임이 너무 쉬워질 것 같아 뺐던 것이었다. 그래서 단순히 바라보는 방향으로만 총을 쐈었다.
이렇게 만들어놓고 플레이 테스트를 해보니, 진짜 너무 어려웠다.
오른손은 적이랑 공격 피하면서 리듬이랑 상관없이 움직여야되는데, 왼손은 다가오는 노트에 맞춰서 리듬에 맞게 눌러야되니 좌뇌 우뇌가 따로 놀아서 죽을 맛이었다.
그래서 최소 적을 유저가 직접 조준하게 하지는 말자 하고 조준 기능을 다시 추가했다.
적
적 파트에서 개발한 것은
- 현재 딛고있는 플랫폼 내에서 Wandering 하기 (돌아다니기)
- 리듬 노트에 맞춰서 알맞은 공격하기 (짧은 공격, 차징 공격)
- 피격, 사망 구현
정도가 있다.
Wandering 구현
이 로직은 모든 적이 공통으로 사용하는 로직이라 EnemyController(Wandering, 피격, 사망 등 공통된 요소가 들어있는 스크립트)를 하나 만들어서 구현했다. 이후 모든 적에 컴포넌트로 박아주었다.
주요 로직은
- 자신의 발 밑에 땅이 있는지 판단해서 있을 때만 움직이도록 해주고,
- 없을 때를 만나면 방향을 바꿔 지금 서있는 땅에서만 놀도록 해주었다.
문제점으로 마주했던 건 적 콜라이더의 중심으로 판단하다보니 이미 절벽에서 떨어지려고 하는데 아직 중심은 땅에 있어서 그대로 고꾸라지는 것이었다.
이는 현재 진행방향에 따라 콜라이더 중심 + 여분의 거리를 판단 기준점으로 해서 해결할 수 있었다.
그리고 보다 자연스러운 움직임을 위해 중간 중간 멈추는 것도 넣고, 멈추었다가 다시 움직일 때 방향이 랜덤하게 바뀌는 것도 넣었다.
공격 구현
사실 이게 구현량이 많아서 까다로웠다.
어느 적은 공격 모션이 하나라서 편한 반면, 어느 적은 2단 공격이고, 어느 적은 원거리 공격이고...
이런 것들을 다 처리하느라 적만 엄청 붇들고 있었던 것 같다.
그래도 구현 난이도가 어려운건 아니어서 다행이었다.
공격은 개발일지 #1에서 확인할 수 있다.
피격, 사망 구현
피격과 사망은 플레이어가 발사하는 총알에 닿으면 데미지를 입고, HP가 0이 되면 사망하도록 간단하게 짰다.
이렇게 죽은 적은 Wandering, 공격 모두 멈춘다.
아래는 플레이어랑 적 구현 내용이 담긴 플레이 영상이다.
보스 패턴 적용
이 부분은 다른 팀원들이 만들어놓은 것들을 내가 연결한 것이다.
보스 패턴 완성된 것을 조금 더 깔끔하게 손보고, 비트에 맞춰서 나오는 노트에 패턴이 반응하도록 했다.
대신 최종 보스전은 내가 90%정도 맡았다.
공격 모션을 이용해 패턴을 만들고, 노트에 따라 다르게 나오도록 했다.
일반 노트는 베기와 대쉬를 번갈아 사용하고, 롱노트는 양옆으로 검기를 날리는 것으로 설정했다.
그리고, 이 보스전 중간에 시계가 똑딱똑딱 하는 구간이 있다.
원래는 이 때 그냥 보스가 그 박자에 맞춰 공격하는 것이었는데, 뭔가 밋밋했다.
그래서 시계를 만들어 그 구간동안 시계가 진짜로 돌게 하고, 보스는 사라지고, 땅이 올라와서 그 안에 있는 잡몹들을 처치하게 하는 것을 미션으로 주는 방식으로 바꿨다.
공격하는 패턴 뿐만 아니라 보스전 자체에 패턴을 준 것이다.
UI / UX 개발
UI는 에셋에 따로 포함되어있지 않아서 직접 도트를 찍어서 만들었고, UX 부분에는 고려할 게 많아서 오래걸렸었다.
UI
구현한 것은
- 일시정지
- 상호작용 UI
- 보스 체력 바
- 플레이어 UI
이 있다.
모두 손수 도트를 찍어 에셋을 만들었고, 구현은 했던 경험을 살려서 쉽게 할 수 있었다.
UX
위에서 말한 꿈을 펼쳤다는 것이 이 부분이다. 여기에 힘을 좀 많이 쏟았다.
- 스테이지가 넘어가는 경우의 로딩창
- 튜토리얼 스킵 방지
- 게임 개연성 & 당위성 부여 (연출과 연계)
- 스테이지 진행 직관성 고려
등이 있다.
로딩을 처음에는 컷씬을 넣어서 로딩을 숨기려고 했는데, 컷씬 자체가 시간이 많이 드는 작업이라 포기하고 로딩창을 넣었다.
로딩창은 바로 켜지는 것이 아닌 위아래에서 닫혔다가 로딩이 완료되면 열리는 연출로 이어지는 느낌을 주고자 했다.
튜토리얼
UX 파트에서 가장 신경 썼던 것은 단연코 튜토리얼이라고 할 수 있다. 가장 많이 손보기도 했다.
튜토리얼에서 유저에게 보여주어야 하는 것들이 많았다.
- 스토리 개연성
- 조작법
- 앞으로의 게임 방식
- 스테이지 진행 방식
크게 분류하면 이 네가지이다.
처음 튜토리얼은 총을 쥐고서 시작했다. 바로 적을 죽일 수 있도록 말이다.
하지만 이 방식은 테스트 해보면서 게임 로직 상 문제는 없었지만, 객관적인 플레이어 입장에서는 문제가 있었다.
내가 왜 지금 총을 쥐고있고, 왜 이 총이 리듬에 맞춰서 발사되고, 내가 저 적들을 왜 물리쳐야 하는건지 이해가 되지 않았다.
그래서, 처음부터 스토리 진행을 시키면서 차근차근 총을 잡게 된 이유부터 시작해 적을 죽이고 앞으로 나아가는 방식까지 설명하고자 NPC를 배치해 대사를 치며 설명하도록 했다.
쉽게 말해서 이 파트는 스토리 진행 + 튜토리얼이 섞인 부분인 것이다.
조작법은 직접 UI로 설명하도록 했다. 대사로 설명해주면 까먹을 수도 있고 그리 가독성이 좋지도 않을 것을 고려했다.
여기에 연계해 모의 전투도 두 번 넣으면서 앞으로 어떻게 게임이 진행되는지도 플레이어에게 알려주고자 했다.
외에도 모의 전투를 할 훈련장이 바닥에서 나온다던지, NPC의 대사로 배경 스토리와 진행 방향을 알려주는 등의 요소도 플레이어 시점에서 생각하며 넣었다.
연출 / 아트 담당자
연출에 필요한 요소들을 직접 만들어 적용한다거나, 필요한 에셋 소스들을 제작했다.
아트 양이 많지는 않지만 그래도 로고, 보스전 에셋 등을 생각하면 나름 중요한 역할이었어서 넣었다.
연출
UX와 더불어 이 부분에서도 꿈을 펼쳐보았다.
플레이어의 몰입을 돕기 위해 신경쓴 연출들이 몇가지 있다.
영화 연출
게임 도중에는 NPC가 대사를 친다거나, 플레이어가 조작을 하지 않아도 알아서 움직이는 기능이 있다.
이럴 때 다른 알림이 없으면 그냥 게임 플레이가 멈췄다고 생각할 수도 있고, 그냥 '아, 얘 알아서 진행되고있구나.' 라는 생각만 가질 뿐 그 부분에서는 몰입을 할 수 없었다.
그래서 생각한 것이 영화처럼 위아래로 검은 여백을 만들어 하나의 컷씬을 보는 것 처럼 느껴지도록 하는 것이다.
하지만 이 연출이 게임 도중에 생겼다 없어졌다를 자주 반복하는 연출이다보니 그냥 띡 나왔다가 사라지는 것은 몰입을 해치기도 해고 심미적으로 좋지도 않았다.
이를 해결하기 위해 이 연출이 시작될 때 화면 밖에서 들어오고, 끝나면 다시 화면 밖으로 나가는 효과를 주어
[게임 → 컷씬 → 게임 → 컷씬 → ...]
이런 흐름이 끊기지 않는 컷씬 느낌을 주고자 했다.
생각한대로 연출 느낌이 좋고 흐름도 끊기지 않아서 매우 만족했던 것들 중 하나이다.
자막 말풍선
이 연출은 산나비를 참고했다.
원래 자막은 아래 이름이랑 같이 뜨는 것이 정석이라고 생각하고 여태 그렇게 해왔었다. 언더테일도 그랬었기도 했고.
그런데 산나비를 접하고 나서는 생각이 바꼈다.
'인물 바로 위에 말풍선을 띄워서 대사를 보여주는 것도 좋은 연출이구나' 라는 생각을 가지게 됐다.
그래서 바로 게임에 적용시켜본 것이 이 말풍선 연출이다.
자세한 구현 내용은 개발일지 #2에서 확인할 수 있다.
배경 원근감
2D 게임이지만 원근감을 주어 웅장함 + 심미성을 강조하고자 했다.
Parallax Background라는 기술이고, 이도 역시 개발일지 #2에서 확인할 수 있다.
노트 판정선 애니메이션
원래의 판정선은 밋밋하게 노트가 나오고, 판정되면 사라지는 것이 끝이었다.
만들고 보니 뭔가 아쉬웠다. 나름 야심차게 준비한 리듬 + 던전인데, UI만 보면 리듬 따로 던전 따로인 느낌이 강했다.
그래서 노트를 치면 판정선의 가운데에 있는 총이 반응하게 했다.

왼쪽 6개 이미지는 기본 노트 / 롱노트 완료 시 총이 발사될 때 나오는 애니메이션 프레임이고, 오른쪽 3개는 롱노트 충전 시 총이 충전될 때 나오는 프레임이다.
실제로 적용되는 것은 플레이 영상에서 볼 수 있다.
아트
아트로 한 것은 위에 있는 노트 UI의 총 외에도 튜토리얼에 나오는 말풍선, 키 UI, 로딩창 / 게임 로고 / 보스 체력바 / 최종 보스전에 나오는 시계 에셋이 있다.
양은 적지만 모두 없으면 서운할 에셋들이라고 생각한다.
음향 담당자
정확히는 BGM 담당자이다.
리듬게임인 만큼 BGM이 생명이기 때문에, 에셋 컨셉에 맞게 직접 작곡한 노래를 게임에 넣었다.
자잘한 효과음은 에셋을 찾아서 사용했다.
게임 분위기에 맞게 어둡게 작곡했고, 도트게임이라서 신스도 많이 썼다.
8비트 악기도 넣고 싶었는데 게임이 완전한 도트 게임은 아니다 보니 (움직임은 도트 그리드에서 자유로워서) 그러진 않았다.
총 7곡 작곡했고, 그 중 5곡이 메인 BGM이다. 나머지 2곡은 튜토리얼에서 쓰는 간이 BGM이다.
확실히 게임 분위기에 맞게 음악이 나와주니 몰입이 한 층 더 잘되는 것 같았다.
특히 스테이지 2에서 등장하는 BGM인 C-Diminshed가 끝난 뒤에 예기치 않게 몬스터 러시가 시작되는데, 이것의 연결성을 강조하고자 이전 BGM을 변형한 BGM인 C-Monstered를 넣어 연출적인 부분도 신경썼다.
작곡 프로그램은 Ableton Live 12 Standard를 사용했다.
플레이 영상
이렇게 소프트웨어융합학과 23학번(당시 2학년) 3명이서 만든 'Dystopian' 이 탄생하게 됐다.
에필로그
Project RM은 예상했던 것 보다 결과가 좋아서 놀랐던 프로젝트였다.
사실 주니어상을 노리고 제작한 것은 맞지만, 위에서 말했듯이 주니어상이 없어져서 반 포기 상태였다.
하지만 결과물이 차근 차근 나오는데 이걸 포기할 수는 없어서 계속 힘들더라도, 설령 상을 못받더라도 즐기면서 했던 기억이 있다.
다행히 장려상이라는 좋은 결과까지 내주어서 정말 만족했다.
팀장부터 기획, 개발, 아트(부분이긴 하지만), 음향까지 전부 맡으면서 내 뇌에 있는 것들을 모두 끄집어낸 것 같다. 의도한대로 게임이 나와줘서 기쁘고, 또 이걸 따라와주고 같이 힘내준 팀원들에게 진짜 고마울 따름이다.
그리고 이 프로젝트를 하면서 더 깔끔한 구조가 뭔지, 효율적으로 코딩하려면 어떻게 해야되는지 조금이나마 배워가는 것 같았다.
- 한 스크립트에 기능을 넣어놓고 그 기능을 쓰는 것들에 공통되게 넣는다던지,
- Update 대신 콜리전이나 특정 요소가 변경이 될 때만 함수를 호출하게 해 자원을 아낀다던지,
- 자식요소를 적극적으로 사용해 함께 움직이는 사물을 쉽게 만든다던지.
이런 것들을 스스로 깨닫게 된 프로젝트였다.
짧은 시간 안에 이렇게 만족스러운 게임을 만들어준 팀 오뎅스에게 다시 한번 감사인사를 올리겠다. 정말 고생했다 얘들아
이상 2024년도 SW 페스티벌 주니어 프로젝트로 진행한 Project RM - DYSTOPIAN 이었습니다.
부족한 팀장이랑 오뎅스로 같이 만들어낸 지선이 수은누나 진짜 고생했어... 오뎅스여 영원하라


'팀 프로젝트 > Project RM' 카테고리의 다른 글
| [2024 SWF] Project RM 개발일지 #4 (6) | 2024.09.02 |
|---|---|
| [2024 SWF] Project RM 개발일지 #3 (0) | 2024.08.17 |
| [2024 SWF] Project RM 개발일지 #2 (0) | 2024.08.10 |
| [2024 SWF] Project RM 개발일지 #1 (0) | 2024.07.25 |
안녕하세요! 경희대학교 소프트웨어융합학과 23학번 재학중입니다. 문의 : dsblue_jun@khu.ac.kr
열정맨입니다. 잘 부탁드리겠습니다.
