dbrrlwjd.github.io

프로젝트명: Door(육기정)

목차

1. 컨셉

2. 관련이미지 and 동영상

3. 대표 이미지

4. 컨셉 and 대표이미지 기반 작품묘사

5. Door 구성 요소

6. 게임 시스템 디자인

7. 개발 요구사항 and 흐름도

8. 스토리보드

9. 프로토타입 개발 요구사항 (6주개발)

10. 프로토타입 개발작업 일정 (6주개발)

11. 프로토타입 작업현황

12. 개발작업 일정

13. 주차별 작업현황

14. 기능추가



[컨셉]

메인컨셉 : 힌트

서브 컨셉 1 : 퍼즐

서브 컨셉 2 : 제한시간

서브 컨셉 3 : 타임어택

서브 컨셉 4 : 긴장감

서브 컨셉 5 : 추리



[관련 이미지 and 동영상]



[대표 이미지]

그림

그림



[컨셉 and 대표이미지 기반 작품묘사]

대표이미지 기반 :

퍼즐 : 클리어하면 폭탄을 해체할 수 있고 다음 폭탄의 위치를 알수 있는 힌트와 방을 탈출하는데 필요한 열쇠를 획득할 수 있습니다.

컨셉 기반:

게임이 시작되면 플레이어에게 퍼즐 하나가 주어집니다. 퍼즐을 풀면 다음 퍼즐로 이어지는 단서를 획득하게 되고 플레이어는 그 단서를 기반으로 다음 퍼즐을 위치를 추리하고 퍼즐을 풀면서 방을 탈출하게 됩니다.



[Door 구성 요소]


1. 메커니즘

[도전 과제]

  1. 제한시간 안에 퍼즐을 푼다.
  2. 더 빠른 시간 안에 클리어한다.

[재미 요소]

  1. 다양한 퍼즐 : 다양한 퍼즐을 넣어야 하기 때문에 풀기 쉽고 한눈에 알아볼 수 있는 퍼즐로 해야한다. 하지만 그렇게 하면 게임이 단순하고 지루해 질 수 있기 때문에 퍼즐을 푸는데에 제한시간을 두었습니다.
  2. 타임어택 : 게임을 클리어하면 클리어 시간이 표시되어 플레이어가 더 빠른 시간 안에 클리어를 노리도록 하였습니다.
  3. 힌트 : 퍼즐을 풀면 다음 퍼즐의 위치를 알려주는 힌트가 주어집니다. 이 단서를 활용하여 다음 퍼즐의 위치를 추리하고 다시 퍼즐을 푸는 형식으로 진행됩니다.


2. 이야기

[만들게 된 배경]
방탈출 게임은 플레이어의 창의성을 요구하는 게임이기 때문에 제작자의 의도를 이해하지 못하면 특정 구간에서 막혀 몇 시간동안 맵을 헤메는 일이 있어 짜증이 났습니다. 그런 부분을 해결하기 위해 이러한 게임을 만들게 되었습니다. 기존의 방탈출 게임은 탈출에 필요한 아이템을 탐색하고 사용하는 데에 플레이어의 창의성을 요구하여 다소 비합리적인 면이 있지만, 이 게임은 처음에 주어지는 퍼즐을 풀면 다음 퍼즐로 이어지는 힌트를 줌으로서 게임 진행이 막히는 일이 없도록 할 것입니다.

[카메라 관점]
1인칭 시점으로 진행됩니다. 3인칭 시점을 하면 플레이어가 주변 상황을 한눈에 알수 있기 때문에 탐색게임에 적합하지 않다고 생각했습니다.


3. 미적요소

[디자인][컬러]
침실, 부엌, 거실, 욕실 등 여러가지 방이 배경입니다. 퍼즐을 풀 때는 상단에 남은 시간을 표시해주는 UI가 나타나고 보유하고 있는 아이템을 확인할 수 있는 아이템창을 끄고 켤수 있게 만들 생각입니다. 실내가 배경이기 때문에 그다지 밝지 않고 너무 어둡지도 않은 색조로 할 계획입니다.

[음향]
처음 게임을 시작할 때는 배경음이 없습니다. 발소리나 옷깃 스치는 소리 같은 효과음만 들리게 하여 정적을 강조할 생각입니다. 그리고 퍼즐을 풀다가 시간이 짧아지면 배경음이 켜지며 긴장감을 조성하게 됩니다.


4. 기술

Unity3D 엔진을 사용하여 PC용 게임으로 개발할 계획입니다.



[게임 시스템 디자인]


1. 게임 오브젝트 분해

연번 오브젝트 이름(영문이름) 오브젝트 이미지
1 플레이어(Player) 그림
2 폭탄(bomb) 그림
3 열쇠(key) 그림
4 단서(hint) 그림
5 인벤토리(inventory) 그림
6 문(door) 그림
7 가구(funiture) 그림
8 방(Room) 그림



2. 파라미터(속성)

1) 폭탄

속성 영문명칭 설명
제한시간 time 플레이어가 상호작용한 뒤부터 카운트 시작
작동 start 플레이어가 상호작용하면 활성화


2) 문, 가구

속성 영문명칭 설명
잠김 lock 플레이어가 열쇠 혹은 획득하지 못한 상태이면 열리지 않음



3. 행동

1) 폭탄

행동 영문명칭 설명
게임오버 gameover 제한시간 내에 폭탄을 해제하지 못하면 게임오버됨
폭탄해제 clear 플레이어에게 열쇠와 단서를 줌


2) 문, 가구

행동 영문명칭 설명
열림 open 잠금해제된 상태에서 상호작용하면 열림
닫힘 close 열려있는 상태에서 상호작용하면 닫힘



4. 상태

1) 폭탄

현재상태 전이상태 전이조건
대기 시작 플레이어와 상호작용
시작 터짐 폭탄을 해제하기 전에 제한시간이 끝남
시작 해제 제한시간이 끝나기 전에 폭탄이 해제됨


2) 문, 가구

현재상태 전이상태 전이조건
잠김 열림 해당하는 아이템을 획득한 상태에서 상호작용



5. 플레이어 캐릭터 속성(파라미터)

속성 영문명칭 설명
이동속도 speed 플레이어 이동속도
웅크리기 ctrl 플레이어가 웅크리고 있는
열쇠소지 has_key 플레이어가 획득한 열쇠
단서소지 has_hint 플레이어가 획득한 힌트



6. 게임규칙

1) 핵심 규칙

  1. 플레이어는 폭탄을 해체한다.
  2. 폭탄을 해체해서 얻은 아이템으로 다음 폭탄을 찾는다.
  3. 모든 폭탄을 해체하면 다음 방으로 갈수 있다.
  4. 모든 방을 클리어하면 클리어시간이 표시된다.

2) 보조 규칙

클리어시간에 따라 순위가 기록되어 더 짧은 시간안에 클리어를 목표로 한다.



7. 게임에서 사용될 공식

제한시간 감소 : 제한시간 -= 감소속도 * Time.deltaTime



[개발 요구사항 and 흐름도]


1. 요구사항

게임화면

설정화면

결과화면



2. 키보드 이벤트에 대한 흐름도

그림



[스토리보드]

그림 그림 그림
1. 주인공이 눈을 뜨고 자신이 감금되어 있다는 사실을 깨닫는다. 2. 주변을 둘러보다 폭탄을 발견하게 된다. 3. 폭탄을 해체하고 탈출할 수 있는 단서를 얻은 주인공은 폭탄을 해체하며 방을 나아간다.



[프로토타입 개발 요구사항]


1주차 요구사항 : 이동 스크립트 작성

2주차 요구사항 : UI 및 이동 스크립트 완성(웅크리기 기능)

3주차 요구사항 : 미니게임 제작

4주차 요구사항 : 미니게임 제작

5주차 요구사항 : 맵 제작 및 사운드

6주차 요구사항 : 랭킹 시스템



[프로토타입 개발작업 일정]


그림




[프로토타입 작업현황]


1주차 : 이동 스크립트 작성

그림


2주차 : UI 및 이동 스크립트 완성(웅크리기 기능)

그림


3주차 요구사항 : 미니게임 제작

     
그림 그림 그림


4주차 요구사항 : 미니게임 제작(전선절단 게임)

   
그림 그림
   
그림 그림


5주차 요구사항 : 맵 제작 및 사운드

   
그림 그림


6주차 요구사항 : 랭킹 시스템

     
그림 그림 그림




[개발작업 일정]


그림




[주차별 작업현황]


1주차 : 맵 1층 제작

그림


2주차 : 2번째 맵 제작

그림


3주차 : 회로게임 제작

그림


4주차 : 회로게임 제작

그림


5주차 : 3번째 맵 제작 및 버그수정

그림


6주차 : 라이트 배치 및 사운드 추가

그림


7주차 : 스테이지 연결 작업

그림


8주차 : 버그수정

그림


9주차 : 설정창 제작

그림


10주차 : 설정화면 추가기능 구현

그림


11주차 : 편의성 업데이트

그림


12주차 : 최종확인 및 버그수정




[기능추가]

1주차: 시작화면 변경

     
그림 그림 그림

기존의 멈춰있던 화면에서 3D로 화면이 돌아가면서 게임 내 모습을 보여주도록 변경 시작화면에 들어가면 게임 내 3가지 스테이지 중 하나를 랜덤하게 보여준다.


2주차: 설정화면 기능추가

그림

마우스 감도와 음량조절에 수치 입력란 추가 기존에는 슬라이드로 조절하고 수치를 보여주지 않았으나 수치를 보여주고 직접 입력해서 변경할 수 있도록 추가


3주차: 숨겨진 아이템 추가

그림

2회차 플레이시 맵 곳곳에 숨겨진 아이템이 나타나도록 추가 게임을 클리어하고 난 뒤 다시 플레이하면 맵 곳곳에 9개의 열쇠가 나타나고 인벤토리에 남은 열쇠 갯수가 표시됨


4주차: 비밀의 방 제작

그림

비밀의 방을 제작하고 열쇠를 전부 획득하면 비밀의 방이 열린다. 게임을 클리어하고 랭킹에 입상하였을 경우 맵 곳곳에 비밀의 방 열쇠가 나타난다. 9개의 열쇠를 전부 모으고 마지막 퍼즐까지 전부 풀면 비밀의 방이 열린다. 비밀의 방에 들어가면 도전모드에 도전할 수 있다.


5주차: 도전모드

   
그림 그림

비밀의 방에서 도전모드에 도전할 수 있도록 구현 비밀의 방에서 도전모드에 도전하면 5분 안에 모든 폭탄을 제거해야 승리할 수 있다.


6주차: 컬러피커 제작

그림

폰트 색상을 변경할 수 있도록 컬러피커 제작


7주차: 폰트 적용

그림

변경한 폰트 스타일과 색상을 적용할 수 있도록 구현


8주차: 사운드 추가

사운드가 적용되어 있지 않은 오브젝트에 사운드를 추가


9주차: UI 추가

그림

도전모드에 도전하면 현재 남아있는 폭탄 갯수를 표시하도록 기능을 추가


10주차: 버그수정

기존에는 popUp이라는 변수를 만들어 다른 화면을 조작할 때의 상태를 관리하였으나 설정창, 인벤토리, 폭탄 해체를 할 때의 변수를 각각 나누어 수정


11주차: 버그수정

레이캐스트로 벽과 충돌판정을 해서 장애물이 없을 때만 이동할 수 있도록 수정


12주차: 버그수정

바닥이나 계단에 floor태그를 추가하여 레이캐스트에 충돌한 오브젝트가 발밑에 있는 오브젝트일 경우에는 이동 가능하도록 수정
카메라의 위치와 범위를 조절하여 벽 너머가 보이지 않도록 수정


13주차: 버그수정

캐릭터의 아랫방향으로 레이캐스트를 쏴서 바닥과 일정거리 이상 떨어지면 밑으로 돌려 놓도록 이동 스크립트를 수정
마우스 회전하는 스크립트를 Fixed Update에서 Update문으로 옮겨 마우스를 움직일 때 화면이 끊기는 버그를 수정