1soong2scape
🚨 정신 나간 과학자가 여러분을 원숭이로 바꾸려고 합니다! 동시에 실험체가 된 두 사람은 서로의 힘을 빌려 이곳을 탈출해야 합니다! 🚨
이 프로젝트는 방 탈출 게임을 기반으로 한 협동형 퍼즐 게임입니다. 플레이어는 각 방에 숨겨진 힌트를 서로 공유하며, 주어진 퍼즐을 해결해 다음 방으로 나아가야 합니다. 방마다 놓여져 있는 마이크를 통해 정답을 말해야 합니다.
| 조어진 | 박재현 |
|---|---|
![]() |
![]() |
| UNIST 20 CSE | DGIST 23 |
| Frontend, Backend | Algorithm, Backend |
Special Thanks to - 공진우 : BGM 제공
| 개발 환경 | API | 서버 | 언어 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Unity 3D | Google Cloud Speech AI | Photon | C# |
- 2인 협동 게임: 두 명의 플레이어에게 서로 다른 힌트가 주어지며, 두 힌트를 조합하여 해당 방의 답을 도출한다.
- Speech-To-Text (STT): 사용자의 목소리를 받고, Google STT API를 통해 단어를 추출하여 정답 유무를 판단한다.
- 애니메이션: 숫자 키를 누르면 캐릭터가 각기 다른 애니메이션을 취한다.
- 사용 빈도에 따라 비트를 적게 사용하도록 하는 Greedy Algorithm이다. 문제를 출제할 때 사용되었다. (”우” And “끼”)
- 두 개의 문장을 분석할 때, 필요한 삭제/삽입/변경의 최솟값을 구하여 문장의 유사도를 판단하는 방법. Question 1, 2, 3에 사용되었다.
- 두 문장을 분석할 때, 가장 긴 공통 부분 수열을 찾는 알고리즘. Question 1, 2, 3에 쓰였다.
- 연속된 데이터를 히스토그램으로 나타내어 면적의 비교를 통해 유사도를 계산하는 방법. Question 4에 사용되었다.
Dynamic Time Warping(DTW): Question 4에 쓰일 예정이었다. 코드 구현까지 다 했지만 정확도가 잘 나오지 않아 폐기되었다.
Mel-Frequency Cepstral Coefficient(MFCC): Question 4에 쓰일 예정이었다. 마찬가지로 코드 구현을 완료했지만 효과가 없어 폐기되었다.
- 마이크를 통해 정답을 외치는 방법 (Quesiton 1, 2, 3)
- 마이크를 터치한다.
- 말을 한다.
- 마이크를 다시 터치한다.
- 한글이 뜰 때까지 기다린다.
- 마이크를 통해 정답 음성을 들려주는 방법 (Question 4)
- 마이크를 터치한다.
- 음성을 말한다. (상단 바가 초록색으로 모두 차면 녹음이 자동으로 종료된다.)
- 마이크를 다시 터치한다.
- 음성이 일치한다면 문이 열린다.
- 문이 열리지 않는다면 1~4를 반복한다.
- 숫자 키를 눌러 애니메이션을 볼 수 있다.
벽에 있는 글이 조작 방법을 알려준다.
첫 방에서는 서로의 모습을 확인할 수 있다.
마이크에 “안녕하세요”를 말하면 다음 방으로 넘어갈 수 있다.
벽에 색깔을 이용한 문제가 있고, 다른 쪽에는 답을 말할 수 있는 마이크가 구비되어 있다.
한 쪽에서 색에 대한 문제를 풀면, 해당 답을 상대에게 전달해주어야 하는 문제이다.
한 쪽에는 풀어야 하는 수식이 ‘우끼어’로 적혀져 있고, 다른 한 쪽에는 ‘우끼어’를 숫자로 번역하는 방법이 나와 있다. 해당 수식의 답을 숫자로 말하면 다음 방으로 넘어갈 수 있다.
한 쪽에는 ‘우끼어’로 적힌 하나의 단어가 적혀져 있다. 다른 쪽에는 ‘우끼어’를 한글로 번역할 수 있는 키가 주어진다. 이를 통해 우끼어를 번역하여 한글 단어를 말하면 다음 방으로 넘어갈 수 있다.
한 쪽에는 오디오가, 한 쪽에는 마이크가 놓여져 있다. 오디오를 통해 흘러나오는 소리를 상대방에게 알려주면, 마이크를 통해 해당 소리를 그대로 말해야 한다.
원숭이를 위한 해변이 나타난다. 브금이 귀여운 소리로 바뀐다.
- 음성을 기반으로 하다 보니 게임 테스트 과정에서 어려움이 있었다. 사람들이 없는 장소를 찾아다녀야 했다.
- 서버와 쉽게 연결했지만, 서버와 소통하는 것이 어려웠다. 한 쪽에서 애니메이션을 쓰면 모든 캐릭터에게 애니메이션이 적용되었고, 심지어 다른 쪽에서는 보이지 않았다. 문을 동시에 여는 것도 힘들었다. → 하루 전으로 코드를 돌리기도 했다. 닥터 스트레인지 뺨치는 역행 능력
- 알고리즘을 하나하나 공부해야 하는 부분이 힘들었고, 분석하는 코드를 만들어도 물체 간의 상호작용을 고려하면서 코드를 적용시켜야 한다는 부분이 도전이었다.
- 많은 고통을 이겨내고 이루었으니 된 거 아닌가?
- 조어진
팀원이 너무 밉다. 좀 잘해줬으면 좋았을텐데
- 박재현
수업 시간에 배운 알고리즘들을 적용시킬 수 있어서 보람있었다. 새로운 알고리즘들을 더 배워가는데, 다음에 어디에 쓰일 지 기대가 된다. 역시 게임을 만드는 것이 과정 자체도 재미있다. 맵을 열심히 꾸며준 어진이 형에게 무한한 감사를 🐵👍















