AdMartis는 멀티플레이 퍼즐 및 어드벤쳐 게임으로, 그림을 그려 물체를 만드는 Drawer와 Drawer의 도움을 받아 장애물과 몬스터를 피해 계속하여 도전하는 Adventurer가 협동하여 스테이지를 클리어합니다. Drawer의 통찰력과 Adventurer의 순발력을 최대한 활용해야 하며 가장 중요한 것은 서로간의 협동과 소통입니다.
Unity 2020.3.14f1 (64-bit)
PC(Window, Mac)
1주
이정석, 편장욱, 장진욱
Unity(C#) - Client Photon2 - Sever
유니티를 이용하여 클라이언트를 구현하고, 포톤을 이용하여 멀티 플레이 환경을 구현 하였다.
- 카메라를 이용하여 마우스 위치에 그림을 그리는 기능
- 호스트만 가능한 기능
- 카메라 위치를 기반으로 라인을 그린다. 이때 마우스의 위치에 따라 원형 포인터를 만들고 이를 선으로 이어줌.
- 선은 길이에 따라 무게를 다르게 줌
- 시네머신 카메라를 이용해 무게에 따라 선이 지면에 닿을 경우 흔들림을 구현
- 포톤을 이용하여 멀티 플레이 구현
- 포톤에서 제공하는 기본 기능을 이용해 멀티게임 환경을 구현
- 포톤을 활용하여 채팅창 및 닉네임을 만들었음
- 플레이어가 로켓에서 상호작용키(up arrow)를 누르게 되면 사라지고 카운트 되어 카운트 = 플레이어수 일 경우 다음 씬으로 이동
- 개선점 1. : 방을 만든 호스트의 서버를 중점으로 하기 때문에 호스트 서버의 성능에 따라 랙이 걸릴 수 있음 -> 따로 서버를 만들어 그 안에서 포톤을 여는것으로 개선 할 수 있음
- 개선점 2. : 동기화 하는 과정에서 작은 오브젝트 같은 경우에는 끼임이 발생 가능함 -> 1. 서버를 직접 구축하는 방법 2. 라인의 길이에 제약을 두어 짧게 만들지 못하게 한다.
- 몬스터와 장애물
- 몬스터와 장애물을 배치하여 플레이어가 닿으면 게임을 시작부터 다시 실행함
- 포톤에 대한 이해가 부족하여 모든 플레이어가 도착지점에 도착할 경우 딜레이를 주고, 로켓이 발사되는 모션을 만들고 싶었으나 시간이 부족하여 하지 못함
- 맵을 더욱 다양하게 만들고 싶었으나 시간이 부족함
- 모듈화에 실패함 => 시간관계상 코드리뷰가 어려워 더러운 코드가 많았으며, 서로의 책임에 맡겨서 진행함
Ad Astra는 역경을 헤쳐나가 별을 향해 가다라는 뜻을 가지고 있습니다. 저희는 이 문구에 영감을 받아 여러 플레이어에게 도전의식을 간접적으로나마 경험하게 하고 싶었습니다. 여러 스테이지를 통해 역경을 헤쳐 나가는 과정을 겪고 로켓을 타고 더 높은 곳을 향해 감으로써 Ad Martis를 직접 실현하는 좋은 경험을 주고자 했습니다. 게임의 스토리는 다음과 같습니다. 계속해서 화성을 향해 도전하는 중인 Elon Musk는 어떻게든 화성에 도착하기 위해 여러분들을 고용했습니다. 여러분들 중 한 명에게 특수한 3D 펜을 제공해 어떤 물체든 그릴 수 있는 능력을 주었습니다. 서로 협동을 통해 스테이지를 클리어하고 화성을 향해 계속 도전하세요!
- Adventurer
- a key, left arrow: 왼쪽으로 이동
- d key, right arrow: 오른쪽으로 이동
- spacebar: 점프
- w key, up arrow: (우주선에 도착한 경우) 다음 스테이지 이동
- Drawer
- 움직이는 방법은 Adventurer와 동일
- 그림 그리기: 마우스 왼쪽 클릭을 한 채 드래그를 해 그림을 그릴 수 있다. 왼쪽 클릭에서 손을 때면 그린 그림이 물리적인 물체를 만든다.
스테이지는 크게 3개로 나뉘어져 있다.
- Stage1
- 튜토리얼로 함정과 몬스터를 소개해 주고 조작법에 익숙해지게 하는 스테이지이다.
- Stage2
- 본격적으로 게임을 시작하는 단계로 창의력과 순발력을 발휘해야 하는 구간이다.
- Stage3
- 가장 어려운 단계로 협동이 가장 중요하다.



