소프트웨어 개발원리와 실습 프로젝트 제안서 - 2024FALL-SWPP/team-project-for-2024-fall-swpp-team-08 GitHub Wiki
저희 8조의 팀명은 팔색조로, 이는 다양한 색의 깃털을 뽐내는 팔색조와 같이 서로 다른, 다채로운 매력을 가진 팀원들이 모여 하나의 멋진 게임을 만들어가는 모습을 상징합니다.
컴퓨터공학 주전공과 벤처경영 연합전공을 하고 있으며 문제 해결 및 가설 검증에 관심이 많고, 뛰어난 일정 관리 및 정보 수집 능력을 갖추고 있습니다. 사람들과의 커뮤니케이션을 잘하며 협업을 효율적으로 이끄는 것을 좋아합니다.
현재 타투 서비스 arti.to의 Co-founder이자 PO로서 프로덕트 백로그를 관리하고 개발 스프린트를 이끌고 있으며, 서울대학교 커뮤니티 SNULife에서 스크럼 마스터와 전략/마케팅팀 팀장을 맡은 경험이 있습니다. 개발과 관련해서는 Django-Python 백엔드 개발 및 Swift-UIKit-SwiftUI iOS 개발 경험이 있고, 2년 전에 유튜브 영상을 보며 Unity와 ARKit을 활용해 버추얼 카메라 앱을 클론코딩 해본 적이 있습니다.
중학생부터 리그 오브 레전드를 즐겨하고 있으며, 최근에는 작혼, 프로젝트 세카이 등을 즐겨하고 있습니다. 비록 즐겨하는 게임이 3D 게임은 아니지만 제가 가지고 있는 경험을 바탕으로 프로젝트를 잘 이끌어 갈 수 있을 것 같습니다.
자료 구조, 컴퓨터 프로그래밍 등을 수강하며 C, C++, Java를 다룰 수 있습니다. 그 중에서도 OOP 계열보다는 C 계열의 언어에 익숙하나, C#은 소개원실을 수강하며 처음 접해보게 되었습니다. 프로젝트 진행 경험은 수업 내의 과제 외에는 없고, 다수가 함께하는 프로젝트에 참여하는 것은 처음입니다. 미숙한 점이 많은 만큼 본 프로젝트에 최선을 다하고 이를 통해서 대형 프로젝트의 진행 방식과 협업, 버전 관리 능력을 기를 수 있도록 노력하겠습니다.
대학교 입학 후에는 자연스레 게임과 멀어졌지만, 초중고 시절에 항상 많은 컴퓨터 게임과 가까이 지냈던 경험이 게임 개발에 있어서 도움이 될 것으로 기대됩니다. 사용자 경험을 바탕으로 사용자 친화적인 게임을 개발하는 데에 초점을 맞추도록 노력하겠습니다.
향후 창업을 꿈꾸어 경영 관련 직무(마케팅, 전략 등)에 1~2년간 몸담은 탓에 개발 경험이 그리 많지 않습니다. 특히 C, C++, Java, Python 등 기본적인 언어를 이용한 코딩 경험은 있으나 C#을 이용한 코딩 내지는 프로젝트 단위의 개발 경험은 일천합니다. 그러나 높은 에너지 레벨과 빠른 학습 능력을 통해 본 프로젝트에 도움이 되고자 하며, 무엇보다 본 강의를 통해 C# 코딩 경험은 물론 팀으로서 협업하여 프로젝트 단위의 산출물을 만들어내는 귀중한 경험을 하고자 합니다.
성인이 된 이후로는 게임을 그렇게 즐겨하지 않았으나, 그 이전에는 '풋볼 매니저' 시리즈와 '문명' 시리즈 등 시뮬레이션 형태의 전략 게임을 즐겨한 바 있습니다. 본 프로젝트를 통해 개발할 게임과는 사뭇 다른 뉘앙스의 게임이지만, 한편으로 다른 장르이기에 차용할 수 있는 것들이 더욱 많다고 생각합니다. 이전의 경험을 십분 활용하여 프로젝트에 임하고자 합니다.
컴퓨터공학을 주전공으로 이수하며 자료구조 · 알고리즘에 대한 기본 지식, Python · Java 등의 프로그래밍 언어들을 익혔습니다. 또한 이전에 웹 개발 프로젝트에서 Django, Node.js를 활용하여 백엔드 개발을 맡은 적이 있습니다. 해당 프로젝트 경험을 통해 느낀 점은, 팀원들이 함께 노력하고 돕는 과정에서 서로의 부족한 점을 채워나갈 수 있다는 것입니다. 저 역시도 C#과 Unity를 이번 학기에 처음 접하는 수강생이기에, 게임 개발에 있어 미숙한 부분이 많을 것으로 예상됩니다. 하지만 부족한 부분은 열심히 배워나가고 서로 많이 돕겠다는 자세로 본 프로젝트에 참여하고자 합니다. 한편 저는 게임과 가깝게 지냈던 사람은 아니지만, 오히려 게임을 처음 접하는 유저의 입장을 고려하여 직관적으로 플레이하고 즐길 수 있는 게임을 만들어내고 싶습니다.
제일 즐겁게 플레이했던 게임은 Chants of Sennaar라는, 통역을 소재로 한 3D 퍼즐 게임입니다. 이처럼 평소 게임을 좋아하여 즐겨 하는 사람으로서 유저로서의 관점을 게임 개발에 십분 활용하고자 합니다.
이전 다른 컴퓨터공학부 강의들에서 C, Python, Java로 개발을 진행해본 적이 있습니다. 이전에 3D graphic tool인 NVIDIA Omniverse를 접해본 적은 있으나 Unity나 Blender는 사용해본 적이 없으며 C# 코딩 경험 역시 전무합니다. 그러나 아는 자는 그것을 좋아하는 자를 이길 수 없고, 좋아하는 자는 즐기는 자를 이길 수 없다는 옛 성현의 말씀에 따라 제가 좋아하는 게임을 개발하는 과정을 즐김으로써 팀에 도움이 되고 싶습니다.
<엔지니오링(Engineeoring)>
게임의 배경은 서울대학교 자하연에서 출발하여 공과대학 302동까지의 여정을 다룬다. 자하연에 살고 있는 오리는 어느 날 우연히 302동에 계신 전설적인 프로그래밍 교수님에 대한 소문을 듣게 되고, 프로그래밍을 배우기 위해 모험을 결심한다. 평화로운 자하연을 떠나 험난한 캠퍼스를 거쳐 302동에 도달하기까지 오리는 다양한 장애물과 맞서게 된다. 평화로운 자하연을 떠나 험난한 캠퍼스를 거쳐 302동에 도달하려는 오리의 모험은 꿈을 향한 도전과 성장을 의미한다.
- 스테이지 1 (자하연) : 자하연에서 평화로운 일상을 보내고 있던 오리는 전설적인 프로그래밍 교수님에 대한 이야기를 듣고 흥미를 느끼게 되고, 이에 따라 자하연에서 벗어나 302동으로 향하고자 함. 이 과정에서 고양이, 족제비와 같은 동물들, 나뭇가지, 통나무와 같은 식물들을 장애물로서 마주함.
- 스테이지 2 (학생식당) : 자하연을 탈출한 오리는 교수님이 학생식당에 자주 오신다는 소문을 듣게 되고, 교수님을 뵙기 위해 학생식당으로 향함. 그러나 교수님은 계시지 않았고, 우연히 교수님의 제자를 만나 힌트를 얻음. 학생식당을 배회하며 식재료 및 학생식당의 설비를 장애물로서 마주함.
- 스테이지 3 (302동) : 학생식당에서 교수님을 만나지 못한 오리는 직접 302동으로 가야 한다는 결심을 하게 됨. High-tech 콘셉트와 공과대학의 전형적인 모습이 공존하는 302동에서 공격 로봇, 전공책, 대학원생 등을 교수님께 도달하기 이전의 장애물로서 마주함.
주인공 오리는 호기심 많고 영리한 성격을 가지고 있으며, 302동까지 가려는 목표를 갖고 캠퍼스 곳곳의 도전을 극복한다. 교수님은 오리가 만나야 하는 목표이자 보상이다.
밝고 모험적인 분위기 속에서 서울대학교의 다양한 풍경을 유머러스하게 묘사한다. 각 스테이지는 자하연의 자연적인 느낌, 학생식당의 분주한 분위기, 302동의 기술적이고 복잡한 환경 등 독특한 테마로 표현한다. 오리의 여정을 통해 플레이어가 도전과 성취감을 경험하도록 유도한다.
스테이지 기반의 3D Auto-Runner Platformer
종스크롤 러닝 액션 게임으로, 맵을 종으로 사용하여 캐릭터는 아래에서 위로 달려간다. 방향키를 이용하여 상/하/좌/우 4방향의 조작이 가능하다.
게임의 목표는 1)최대한의 고득점으로 2)주어진 스테이지를 끝까지 클리어하는 것이다. 맵 내에 배치된 코인에 상응하는 오브젝트(데자와)를 습득함으로써 득점을 할 수 있으며, 장애물에 부딪쳐 캐릭터가 사망할 시 스테이지의 처음으로 돌아가 게임을 다시 시작할 수 있다.
- 데자와 : 코인의 역할로, 점수를 획득할 수 있는 수단
- 벼락치기 : 데자와를 통해 획득할 수 있는 점수 x2
- 오리부스트 : 속도가 1.5배 빨라지며, 모든 장애물 충돌을 무시함
- 곱빼기 : 데자와의 크기(히트박스)가 2배로 커짐
- 오리 날다 : 2단 점프가 가능해지며, 점프 상황에서 좌/우 조작이 가능해짐
- 배경과 장애물이 고정된 상태로 캐릭터가 이동하는 방식을 택하며, 이에 따라 카메라가 이동하는 캐릭터를 지속적으로 Tracking함.
- 장애물은 모델링 여하에 따라 다양한 자연스러운 방식의 회피를 유도하여 플레이어의 자유도를 높임.
- 장애물은 완전히 랜덤하게 등장하지 않으며, n개의 장애물로 하드 코딩된 모듈이 존재하여 해당 모듈 단위로 랜덤하게 등장함.
- 게임 플레이 중 일시정지 기능이 존재함.
- 가로 축 방향의 이동은 (Subway Surfers와 유사하게) 좌측 / 중앙 / 우측 3개의 칸을 이용하여 이루어짐.
본 게임의 타겟 사용자는 20대에서 30대 사이의 서울대학교 구성원으로, 가볍게 짧은 시간동안 즐길 수 있는 PC 3D 게임을 선호하는 사용자들이다. 학교에서 받는 스트레스를 풀 수 있도록 복잡하지 않은 게임을 선호한다.
서울대학교 소개원실 수강생
- 주요 특징: 주로 쌓인 학업 스트레스를 잠깐 잠깐 해소시켜 줄 수 있는 짧은 플레이 타임의 간단한 PC 게임을 선호함.
- 니즈와 기대 요소: 익히는데 시간이 오래 걸리지 않는 간단한 조작 기능, 재미를 부여할 수 있는 무작위 요소, 친구들과 경쟁이 가능한 점수 기능
서울대학교 소개원실 TA
- 주요 특징: 소개원실 수업에서 TA로 학생들을 지도할 정도로 게임 개발과 프로젝트 진행에 있어서 익숙함. 게임을 즐기기 보다는 게임을 플레이하면서 개발 상에 존재하는 문제점을 찾고 점수를 매겨야하는 입장임. 게임 자체와 더불어서 개발 과정도 중요시하는 사용자임.
- 니즈와 기대 요소: 3d기반 게임 구성요소, 예상치 못한 버그 발생 여부, 게임의 완성도, 개발 과정에서의 프로젝트 협업 능력
기획한 게임과 유사한 경쟁 게임으로는 '길건너 친구들', '템플 런', '서브웨이 서퍼'가 있다. 3가지 게임은 유사하면서도 서로 다른 특징을 보인다.
'길건너 친구들'은 닭, 오리 등의 캐릭터를 조작하여 도로나 강, 철도와 같은 장애물이 있는 지형을 안전하게 건너가는 게임이다. 해당 게임은 전진, 좌우 조작을 통해 장애물을 피하거나 길을 건너 최대한 오랫동안 살아남는 것이 목표다. 픽셀 아트 그래픽으로 만들어진 귀여운 캐릭터들, 친구들과의 기록 경쟁 기능이 특징이다.
'템플 런'은 고대 유적지에서 캐릭터가 장애물을 피해 최대한 멀리 도망가도록 만드는 게임이다. 캐릭터는 자동으로 앞으로 달리며, 플레이어는 점프와 슬라이드, 좌우 회전 및 틸팅 조작을 통해 장애물을 피해야 한다. 템플 런은 어드벤처 요소를 특징으로 하는데, 뒤에서 쫓아오는 악마 원숭이들과 급박하게 뛰는 캐릭터의 모습이 긴장감을 유발한다.
'서브웨이 서퍼'는 지하철 경비원을 피해 멀리 도망가는 게임이다. 캐릭터는 자동으로 앞으로 달리며, 플레이어는 좌우 이동, 점프, 슬라이딩 조작을 통해 지하철을 피해 달려야 한다. 또한 제트팩과 같은 아이템 요소가 존재하며, 다채로운 시각적 효과가 해당 게임의 주요한 특징이다.
기획한 게임은 위의 3가지 게임이 가진 장점들을 모두 혼합한 형태이다. 귀여운 캐릭터와 직관적인 UI를 특징으로 하면서도, 긴장감을 유발하는 요소와 아이템을 통한 랜덤 요소를 모두 포함한다. 특히 컨셉과 타깃 측면에서, 게임은 서울대학교 캠퍼스를 배경으로 하고 서울대학교 구성원을 주요 타깃 유저로 설정한 점에서 차별점을 보인다.
한편 기획한 게임은 스테이지를 클리어하는 방식으로 진행된다. 이는 게임의 스토리와 세계관을 반영한 것이며, 앞서 제시한 3가지 경쟁 게임에서 플레이어가 무한히 달리며 얼마나 멀리 갔는지 기록을 재는 방식과 대비되는 부분이다. 특히 스테이지마다 난이도와 테마를 다양화하고 유저가 진행도를 확인할 수 있도록 기획하여, 기존의 Auto-Runner 게임에서 느껴질 수 있는 단조로움을 탈피하고 맵을 클리어했을 때 성취감과 즐거움을 느낄 수 있도록 하였다.
게임의 스토리와 연계하여 일반적인 코인 대신 데자와 같은 독특한 아이템을 도입하고, 각 스테이지마다 차별화된 장애물을 기획한 것 역시 독창적인 게임 개발을 위한 시도이다. 기존의 Auto-Runner 게임들도 스토리와 세계관을 가지고 있지만, 플레이어 입장에서는 단순한 게임 진행에 그치며 스토리가 잘 전달되지 않는 경우가 대다수다. 그러나 기획한 게임에서는 게임의 컨셉에 알맞는 아이템과 스테이지마다 달라지는 장애물을 구성함으로써, 유저들이 게임 속 스토리를 이해하고 게임에 더욱 몰입할 수 있도록 유도하였다.
대학생 유저로서, 나는 게임의 조작법이 간단하고 직관적이길 원한다. 왜냐하면 복잡한 게임방식을 숙지하지 않고 편하게 즐기고 싶기 때문이다.
- 이 유저 스토리는 게임을 간단히 즐기고 싶은 유저들을 고려하여 게임이 간단한 이동 조작만으로도 즐길 수 있어야 함을 나타낸다. 또한, 직관적인 조작법을 통해 처음 게임을 접하는 유저도 바로 게임에 적응할 수 있도록 설계해야 한다.
소개원실 조교로서, 나는 게임이 3d요소를 잘 표현하기를 원한다. 왜냐하면 수업 시간에 학습한 Unity와 Blender의 3D 기능을 온전히 활용했는지 확인하고 싶기 때문이다.
- 이 유저 스토리는 소개원실 조교들을 고려하여 제작된 게임이 수업 시간 내용을 토대로 하고 있어야 함을 나타낸다. Unity와 Blender의 강점을 살릴 수 있는 3D요소가 포함되어야 한다.
게임에 단순 플레이 이상으로 몰입하고 싶은 서울대학교 학생 유저로서, 나는 게임에 제대로 짜여진 서울대학교 관련 스토리가 있기를 원한다. 왜냐하면 잘 짜여진 스토리는 캐릭터에 더욱 몰입하고 게임에 집중하게 해주기 때문이다.
- 이 유저 스토리는 게임 스토리의 개연성과 함께 서울대학교와의 연관성을 강조한다. 서울대학교 학생 유저들이 이해하기 쉽고 흥미를 느낄만한 스토리를 구성해야한다.
질리지 않는 게임을 원하는 유저로서, 나는 게임 내에 무작위성을 부여받은 아이템 요소가 있기를 원한다. 예측할 수 없는 요소는 매 플레이마다 다른 재미를 제공해주기 때문이다.
- 이 유저 스토리는 게임 내에 무작위 요소가 있어야 함을 나타낸다. 무작위 아이템을 배치하여 유저가 예측하기 힘든 상황을 만들고 다른 재미를 제공해야한다.
성취감을 느끼고 싶은 유저로서, 나는 게임 내에서 점수 제도가 존재하고 그를 확인할 수 있기를 원한다. 왜냐하면 게임에서 내 점수를 보며 다른 사람들과 경쟁하고 성취감을 느끼고 싶기 때문이다.
- 이 유저 스토리는 점수 제도의 필요성을 강조한다. 친구와의 점수 비교, 기록 갱신 등을 통해 유저가 다른 유저의 기록과 경쟁하며 더 높은 성취감을 느낄 수 있도록 점수 제도를 설계해야한다.
게임 플레이 시간동안 집중하고 싶은 유저로서, 나는 게임 내에서 현재의 진행도를 확인할 수 있기를 원한다. 왜냐하면 진행도를 알고 있으면 목표의식이 더 강해지기 때문이다.
- 이 유저 스토리는 진행도를 볼 수 있는 시스템을 강조한다. 진행도를 유저가 확인할 수 있도록하여 게임에 더 몰입하고 집중할 수 있도록 해야한다.
다양한 재미를 추구하는 유저로서, 나는 게임이 난이도나 테마가 달라지는 여러 개의 단계로 구성되기를 원한다. 왜냐하면 여러 단계로 이루어진 게임은 더 다양한 재미를 주기 때문이다.
- 이 유저 스토리는 게임의 스테이지 세분화를 강조한다. 스테이지마다 달라지는 난이도나 테마를 이용해 동일한 게임 플레이에서도 계속해서 달라지는 재미를 줄 수 있어야한다. 또한, 장애물을 다양하게 하는 방법으로 게임 플레이의 다양성을 더할 수 있다.
①: 현재 스테이지의 진행도
②: 현재 스테이지의 점수
③: 아이템 (데자와)
④: 플레이어가 조작하는 캐릭터
⑤ ⓐ: 장애물 (좌우회피)
⑤ ⓑ: 장애물 (점프회피)
①: 현재 스테이지의 진행도
②: 현재 스테이지의 점수
③: 아이템 (벼락치기)
④: 플레이어가 조작하는 캐릭터
⑤ ⓒ: 장애물 (슬라이드 회피)
PC (Windows, macOS)
구성 요소 | 최소 사양 |
---|---|
OS | Windows 7 SP1+ 64-bit / macOS 10.13+ |
프로세서 | Intel Core i3-3220 / AMD FX-4300 |
메모리 | 4 GB RAM |
그래픽 | Intel HD Graphics 4000 / NVIDIA GeForce GT 640 / AMD Radeon HD 7750 |
DirectX | 버전 10 |
저장공간 | 500 MB 이상 |
구성 요소 | 권장 사양 |
---|---|
OS | Windows 10 64-bit / macOS 10.15+ |
프로세서 | Intel Core i5-4460 / AMD FX-6300 |
메모리 | 8 GB RAM |
그래픽 | NVIDIA GeForce GTX 750 / AMD Radeon R7 260x |
DirectX | 버전 11 |
저장공간 | 1 GB 이상 |
Unity 2021.3.52fl, Blender 4.2
PM/Scrum Master: 종인
Team Blender: 수빈(팀장), 종인, 재웅
Team Unity: 형준(팀장), 찬영
Task ID | Task Name | Sprint | Category | Due Date | Assigned To | Team |
---|---|---|---|---|---|---|
S0.1.1 | 게임 콘셉트 및 스토리 확정 | Sprint 0 | 게임 기획 | 10/23/2024 | 이종인, 김형준 | Blender, Unity |
S0.1.2 | 레벨 디자인 문서 확정 | Sprint 0 | 게임 기획 | 10/23/2024 | 이종인, 김형준 | Blender, Unity |
S0.1.3 | 사운드 디자인 계획 수립 | Sprint 0 | 게임 기획 | 10/23/2024 | 이종인, 김형준 | Blender, Unity |
S0.1.4 | 게임 UI 디자인 확정 | Sprint 0 | 게임 기획 | 10/23/2024 | 전수빈 | Blender |
S0.2.1 | 개발 환경 세팅 (유니티 & 블렌더) | Sprint 0 | 개발 환경 | 10/21/2024 | 이종인, 최재웅, 김형준, 박찬영, 전수빈 | Blender, Unity |
S0.2.2 | 유니티 Assets 폴더 형태 확정 | Sprint 0 | 개발 환경 | 10/21/2024 | 이종인, 최재웅, 김형준, 박찬영, 전수빈 | Unity |
S0.2.3 | 깃허브 푸시 및 브랜치 생성 | Sprint 0 | 개발 환경 | 10/21/2024 | 이종인, 최재웅, 김형준, 박찬영, 전수빈 | Unity |
S1.1.1 | 오리 캐릭터 기본 동작 스크립트 작성 (자동 전진) [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.1.2 | 카메라 추적 시스템 구현 [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.1.3 | 기본 입력 시스템 구현 (좌우 이동, 점프, 슬라이드) [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.1.4 | 맵 (스테이지 1~스테이지 3) 장애물 (Unity 기본 Object로 갈음) 배치 [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.1.5 | 물체 충돌 감지 시스템 구현 (로깅 수준) [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.1.6 | 스테이지 점수 (데자와) 시스템 구현 (로깅 수준) [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.1.7 | 스테이지 진행도 시스템 구현 (로깅 수준) [페어 프로그래밍] | Sprint 1 | 기본 게임 메커니즘 구현 | 11/06/2024 | 김형준, 박찬영 | Unity |
S1.2.1 | 오리 캐릭터 기본 모델 제작 | Sprint 1 | Blender 모델링 | 11/06/2024 | 이종인 | Blender |
S1.2.2 | 스테이지1 (자하연) 기본 지형 & 요소 (나무, 건물 등) 모델링 | Sprint 1 | Blender 모델링 | 11/06/2024 | 전수빈 | Blender |
S1.2.3 | 스테이지1 장애물 모델 제작 (4개) | Sprint 1 | Blender 모델링 | 11/06/2024 | 전수빈 | Blender |
S1.2.4 | 아이템 모델 제작 (5개) | Sprint 1 | Blender 모델링 | 11/06/2024 | 최재웅 | Blender |
S1.3.1 | 유닛 테스트 프레임워크 설정 | Sprint 1 | 테스트 계획 | 11/06/2024 | 이종인, 김형준, 박찬영 | Unity |
S1.3.2 | 기본 게임 메커니즘에 대한 테스트 케이스 작성 | Sprint 1 | 테스트 계획 | 11/06/2024 | 이종인, 김형준, 박찬영 | Unity |
S1.3.3 | 수동 테스트 계획 및 실행 | Sprint 1 | 테스트 계획 | 11/06/2024 | 이종인 | Unity |
S1.3.4 | 기본 게임 메커니즘 테스트 실행 | Sprint 1 | 테스트 계획 | 11/06/2024 | 이종인, 김형준, 박찬영 | Unity |
S2.1.1 | 오리 캐릭터 달리기 애니메이션 구현 | Sprint 2 | 애니메이션 구현 | 11/20/2024 | 이종인, 박찬영 | Unity |
S2.1.2 | 오리 캐릭터 점프 애니메이션 구현 | Sprint 2 | 애니메이션 구현 | 11/20/2024 | 이종인, 박찬영 | Unity |
S2.1.3 | 오리 캐릭터 슬라이드 애니메이션 구현 | Sprint 2 | 애니메이션 구현 | 11/20/2024 | 이종인, 박찬영 | Unity |
S2.1.4 | 오리 캐릭터 충돌/죽음 애니메이션 구현 | Sprint 2 | 애니메이션 구현 | 11/20/2024 | 이종인, 박찬영 | Unity |
S2.2.1 | 스테이지1 장애물 배치 (Unity 기본 Object 교체) 및 기능 구현 [페어 프로그래밍] | Sprint 2 | 레벨 디자인 및 구현 | 11/20/2024 | 김형준, 박찬영 | Unity |
S2.2.2 | 특수 아이템 기능 구현 (벼락치기, 오리부스트 등) [페어 프로그래밍] | Sprint 2 | 레벨 디자인 및 구현 | 11/20/2024 | 김형준, 박찬영 | Unity |
S2.2.3 | 스테이지 전환 시스템 구현 [페어 프로그래밍] | Sprint 2 | 레벨 디자인 및 구현 | 11/20/2024 | 김형준, 박찬영 | Unity |
S2.3.1 | 스테이지2 (학생식당) 기본 지형 & 요소 (의자, 책상 등) 모델링 | Sprint 2 | Blender 모델링 | 11/20/2024 | 전수빈 | Blender |
S2.3.2 | 스테이지3 (302동) 기본 지형 & 요소 (교수님, 연필 등) 모델링 | Sprint 2 | Blender 모델링 | 11/20/2024 | 전수빈 | Blender |
S2.3.3 | 스테이지2 장애물 모델 제작 (4개) | Sprint 2 | Blender 모델링 | 11/20/2024 | 전수빈 | Blender |
S2.3.4 | 스테이지3 장애물 모델 제작 (4개) | Sprint 2 | Blender 모델링 | 11/20/2024 | 전수빈 | Blender |
S2.4.1 | HUD 디자인 및 구현 (점수, 진행도 등) | Sprint 2 | UI 기본 구현 | 11/20/2024 | 최재웅 | Unity |
S2.4.2 | 게임 시작 화면 구현 | Sprint 2 | UI 기본 구현 | 11/20/2024 | 최재웅 | Unity |
S2.4.3 | 게임 오버 화면 구현 | Sprint 2 | UI 기본 구현 | 11/20/2024 | 최재웅 | Unity |
S2.4.4 | 스테이지 클리어 & 게임 클리어 화면 구현 | Sprint 2 | UI 기본 구현 | 12/04/2024 | 최재웅 | Unity |
S3.1.1 | 환경 효과 추가 (파티클, 조명 등) | Sprint 3 | 환경 효과 구현 | 12/04/2024 | 박찬영 | Unity |
S3.2.1 | 스테이지2 장애물 배치 (Unity 기본 Object 교체) 및 기능 구현 [페어 프로그래밍] | Sprint 3 | 추가 레벨 및 환경 구현 | 12/04/2024 | 김형준, 박찬영 | Unity |
S3.2.2 | 스테이지3 장애물 배치 (Unity 기본 Object 교체) 및 기능 구현 [페어 프로그래밍] | Sprint 3 | 추가 레벨 및 환경 구현 | 12/04/2024 | 김형준, 박찬영 | Unity |
S3.3.1 | 배경 음악 선정 및 적용 | Sprint 3 | 사운드 및 효과음 구현 | 12/04/2024 | 이종인 | Unity |
S3.3.2 | 캐릭터 효과음 선정 및 적용 | Sprint 3 | 사운드 및 효과음 구현 | 12/04/2024 | 이종인 | Unity |
S3.3.3 | 환경 및 장애물 효과음 제작 및 적용 | Sprint 3 | 사운드 및 효과음 구현 | 12/04/2024 | 이종인 | Unity |
S3.4.1 | 캐릭터 동작 테스트: 이동, 점프, 슬라이드 | Sprint 3 | 기능 테스트 | 12/04/2024 | 최재웅, 전수빈 | Unity |
S3.4.2 | 장애물 상호작용 테스트: 다양한 장애물과의 충돌 및 회피 동작 확인 | Sprint 3 | 기능 테스트 | 12/04/2024 | 최재웅, 전수빈 | Unity |
S3.4.3 | 아이템 효과 테스트: 각 아이템의 획득 및 효과 확인 | Sprint 3 | 기능 테스트 | 12/04/2024 | 최재웅, 전수빈 | Unity |
S4.1.1 | 프레임 레이트 테스트: 다양한 하드웨어 환경에서 목표 FPS 달성 여부 확인 | Sprint 4 | 성능 테스트 | 12/09/2024 | 최재웅, 전수빈, 이종인, 박찬영, 김형준 | Unity |
S4.1.2 | 로딩 시간 측정: 게임 시작 및 스테이지 전환 시 로딩 시간 체크 | Sprint 4 | 성능 테스트 | 12/09/2024 | 최재웅, 전수빈, 이종인, 박찬영, 김형준 | Unity |
S4.1.3 | 메모리 사용량 모니터링: 장시간 플레이 시 메모리 누수 여부 확인 | Sprint 4 | 성능 테스트 | 12/09/2024 | 최재웅, 전수빈, 이종인, 박찬영, 김형준 | Unity |
S4.2.1 | 전체 게임 플레이 테스트 | Sprint 4 | 최종 테스트 및 버그 수정 | 12/11/2024 | 최재웅, 전수빈, 이종인, 박찬영, 김형준 | Unity |
S4.2.2 | 발견된 모든 버그 수정 및 최종 폴리싱 | Sprint 4 | 최종 테스트 및 버그 수정 | 12/11/2024 | 최재웅, 전수빈, 이종인, 박찬영, 김형준 | Unity |
S4.3.1 | 게임 빌드 및 패키징 | Sprint 4 | 출시 준비 | 12/16/2024 | 이종인, 박찬영 | Unity |
S4.3.2 | 프로젝트 문서화 (깃허브 위키) 완료 | Sprint 4 | 출시 준비 | 12/16/2024 | 이종인, 김형준, 전수빈 | Blender, Unity |
S4.3.3 | 최종 코드 리뷰 및 정리 [페어 프로그래밍] | Sprint 4 | 출시 준비 | 12/16/2024 | 이종인, 최재웅, 김형준, 박찬영, 전수빈 | Blender, Unity |
S4.4.1 | 프로젝트 회고 및 학습 내용 정리 | Sprint 4 | 프로젝트 회고 | 12/16/2024 | 이종인, 최재웅, 김형준, 박찬영, 전수빈 | Blender, Unity |
-
주요 일정:
- 10월 24일 (목): 스프린트 1 시작
- 10월 30일 (수): 스프린트 1 중간점검 및 페어 프로그래밍 (1/2)
- 11월 4일 (월): 스프린트 1 페어 프로그래밍 (2/2)
- 11월 6일 (수): 스프린트 1 마무리/회고
-
주요 태스크:
- 게임 콘셉트 및 스토리 확정
- 레벨 디자인 문서 확정
- 기본 캐릭터 동작 구현 (이동, 점프, 슬라이드)
- 카메라 추적 시스템 구현
- 첫 번째 스테이지(자하연) 기본 장애물 배치
- 프로젝트 설정 및 버전 관리 시스템 구축 (유니티, 깃허브)
-
주요 일정:
- 11월 7일 (목): 스프린트 2 시작
- 11월 13일 (수): 스프린트 2 중간점검 및 페어 프로그래밍 (1/2)
- 11월 18일 (월): 스프린트 2 페어 프로그래밍 (2/2)
- 11월 20일 (수): 스프린트 2 마무리/회고
-
주요 태스크:
- 오리 캐릭터 애니메이션 (달리기, 점프, 슬라이드) 구현
- 특수 아이템(벼락치기, 오리부스트 등) 시스템 구현
- 두 번째 스테이지(학생식당) 레벨 디자인 및 장애물 배치
- UI 기본 구현 (HUD, 시작/종료 화면)
- 스테이지 전환 시스템 구현
-
주요 일정:
- 11월 21일 (목): 스프린트 3 시작
- 11월 27일 (수): 스프린트 3 중간점검 및 페어 프로그래밍 (1/2)
- 12월 2일 (월): 스프린트 3 페어 프로그래밍 (2/2)
- 12월 4일 (수): 스프린트 3 마무리/회고
-
주요 태스크:
- 세 번째 스테이지(302동) 레벨 디자인 및 장애물 배치
- 환경 효과(파티클, 조명) 구현
- 배경 음악 및 효과음 추가
- 캐릭터 및 장애물 상호작용 테스트
- 게임 성능 최적화 (프레임 레이트, 메모리 사용량 등)
-
주요 일정:
- 12월 5일 (목): 스프린트 4 시작
- 12월 11일 (수): 스프린트 4 중간점검, 페어 프로그래밍 (1/2) 및 보고서 작성 회의
- 12월 16일 (월): 게임 출시 준비 및 발표 준비
- 12월 18일 (수): 스프린트 4 마무리/회고 및 팀별 발표
- 12월 20일 (금): 최종 보고서 및 평가 제출
-
주요 태스크:
- 전체 게임 플레이 테스트 및 밸런싱
- 버그 수정 및 최종 테스트
- 그래픽 및 UI 폴리싱
- 최종 빌드 및 배포 준비
- 프로젝트 문서화 (깃허브 위키) 완료
-
Main Branch: 항상 배포 가능한 안정적인 게임 버전을 유지합니다. 스프린트가 끝날 때마다
dev
브랜치에서 병합되며, 모든 팀원의 코드 리뷰와 QA 테스트를 거쳐야 합니다. -
Dev Branch: 다음 버전 개발이 진행되는 브랜치입니다. 기능 개발이 완료된
feature
브랜치들이 여기로 병합됩니다. 스프린트 중간에도 지속적인 통합 테스트를 진행합니다. -
Feature Branches: 각 게임 기능(예: 오리 캐릭터 움직임, 장애물 시스템, UI 등)마다
dev
에서 분기하여 생성합니다. 네이밍 규칙은 'feature/기능명'으로 합니다. 개발 완료 후dev
로 병합 시 최소 1명의 코드 리뷰가 필요합니다. -
Hotfix Branch: 라이브 버전에서 긴급한 버그 발생 시
main
에서 분기하여 수정 후main
과dev
에 병합합니다. 빠른 대응이 필요하므로, PM과 주 개발자의 승인만으로 진행 가능합니다.
-
Commit 메시지 형식:
[타입] 설명 #이슈번호
- 타입: Feat(새 기능), Fix(버그 수정), Refactor(리팩토링), Style(코드 스타일 변경), Docs(문서 수정), Test(테스트 코드), Chore(기타 변경)
- 예:
[Feat] 오리 점프 기능 추가 #23
- Atomic Commits: 각 커밋은 독립적이고 작은 단위의 변경사항만 포함해야 합니다.
- Unity Scene 변경: Scene 파일 변경 시 반드시 커밋 메시지에 명시하고, 가능한 한 다른 변경사항과 분리하여 커밋합니다.
-
PR 제목:
[브랜치 타입] PR 내용 요약
-
코드 리뷰어: 최소 1명 이상 지정, 기능의 중요도에 따라 2명 이상 필요할 수 있음
- PR 설명: 변경 사항 상세 설명, 관련 이슈 번호, 테스트 방법 등을 포함
-
PR Checklist:
- 코드 스타일 가이드 준수 여부
- 유닛 테스트 작성 및 통과 여부
- 성능 영향 검토 (특히 프레임 레이트에 영향을 주는 변경사항)
- 에셋 최적화 (텍스처 크기, 폴리곤 수 등)
- 문서화 (코드 주석, README 업데이트 등)
- Unity 버전 관리: 프로젝트에서 사용하는 Unity 버전을 README에 명시하고, 버전 업그레이드는 팀 합의 후 진행
- Scene 관리: 가능한 한 Scene 파일 작업은 담당자를 지정하여 충돌 방지
- 프리팹 사용: 재사용 가능한 요소는 최대한 프리팹으로 만들어 관리
-
에셋 네이밍 규칙:
종류_이름_변형
(예:Texture_Tree_Normal
) -
Blender 파일 관리:
- 최종
.fbx
파일만 Git으로 관리 - 작업 중인
.blend
파일은 개인 백업 후 팀 공유 스토리지에 저장
- 최종
- README.md: 프로젝트 설정 방법, 브랜치 전략, 커밋 규칙 등 정리
- Wiki: 주요 게임 시스템 설계 문서, 아트 스타일 가이드, 프로그래밍 컨벤션 등 정리
- 주간 기술 공유 세션: 팀원들이 돌아가며 새로 배운 기술이나 팁 공유
- Unity Test Framework를 활용한 유닛 테스트 작성
- 스프린트별로 통합된 기능에 대한 자동화 테스트 진행
-
기능 테스트
- 유닛 테스트 프레임워크 설정: 유닛 테스트를 위한 프레임워크 설정 완료 (S1.3.1)
- 기본 게임 메커니즘 테스트 케이스 작성: 게임의 핵심 메커니즘에 대한 테스트 케이스 작성 (S1.3.2)
- 수동 테스트 계획 및 실행: 게임의 다양한 시스템에 대한 수동 테스트 계획 수립 및 실행 (S1.3.3)
- 캐릭터 동작 테스트: 이동, 점프, 슬라이드 등 캐릭터의 기본 동작 확인 (S3.4.1)
- 장애물 상호작용 테스트: 다양한 장애물과의 충돌 및 회피 동작 확인 (S3.4.2)
- 아이템 효과 테스트: 각 아이템의 획득 및 효과 확인 (S3.4.3)
-
성능 테스트
- 프레임 레이트 테스트: 다양한 하드웨어 환경에서 목표 FPS 달성 여부 확인 (S4.1.1)
- 로딩 시간 측정: 게임 시작 및 스테이지 전환 시 로딩 시간 체크 (S4.1.2)
- 메모리 사용량 모니터링: 장시간 플레이 시 메모리 누수 여부 확인 (S4.1.3)
-
호환성 테스트
- PC 환경 테스트: 다양한 PC 환경(Windows, macOS)에서의 게임 실행 확인
- 그래픽 카드 및 해상도 테스트: 다양한 그래픽 카드와 해상도에서 렌더링 품질 확인
-
사용성 테스트
- UI 테스트: 메뉴, HUD, 점수 표시 등의 정확성 확인
- 튜토리얼 테스트: 초보 플레이어들의 게임 이해도 확인
- 난이도 곡선 테스트: 스테이지별 난이도 상승이 적절한지 확인
-
밸런스 테스트
- 점수 시스템 테스트: 아이템 및 장애물에 따른 점수 획득이 적절한지 확인
- 난이도 밸런스 테스트: 각 스테이지와 전체 게임의 난이도가 적절한지 확인
- 아이템 효과 테스트: 각 아이템의 효과가 게임 플레이에 미치는 영향 평가
-
플레이테스트
- 내부 테스트: 내부 팀원들의 정기적인 플레이테스트 진행
- 외부 테스터 피드백: 외부 테스터를 통한 피드백 수집 (2-3회)
- 행동 및 설문 분석: 플레이어 행동 및 반응 관찰, 설문 조사 실시