프로젝트 목적
게임의 재미 요소뿐만이 아니라 소비생활 습관 개선을 목표로 하여 목표 지향적인 게임 프로그램을 개발한다.
프로젝트 내용
이 보드게임은 현대 사회 대학생들의 실제 소비 생활을 바탕으로 하여 게임을 진행하는 과정에서 사용자는 대학생들의 소비 생활을 체험해보면서 합리적인 소비에 대한 방법을 찾아갈 수 있다.
본 게임은 ‘부루 마블’ 스타일의 네모난 보드 형식으로 제작하고, ‘인생게임’ 과 유사하게 보드 내용에 현실성 반영했다.
게임 플레이 시 선택할 수 있는 약 50가지의 소비 카드와 10가지의 수입 카드 그리고 랜덤으로 주어지는 21가지의 소비 또는 수입 카드가 있다.
플레이어가 수입 혹은 소비 보드에 도착하면 원하는 활동을 선택해야 하는데 이 게임은 물질적인 측면과 정신적인 측면이 서로 긴밀한 관계를 유지하기 때문에 밸런스를 맞추며 소비하는 것이 중요하다.
플레이 도중 소지 금액이 0원에 달하거나, 플레이 시간이 종료되면 승패가 결정된다.
개발 언어 및 환경
기본적으로 티끌모아태산 게임은 Unity3D, Visual Studio 2015, Android sdk manager를 개발 환경을 기반으로 하였고 개발언어로는 C#을 사용하였다. '멀티플레이' 모드에서는 네트워크 연결을 통해 다른 유저와 서버연결을 하는데 이는 포톤 클라우드를 사용하여 네트워크 환경을 제공한다. 게임에 필요한 UI와 수입 및 소비 카드는 Photoshop과 3D 그림판을 이용하여 디자인 및 제작하였다. 안드로이드 기반 모바일과 윈도우 기반 컴퓨터를 어플리케이션 시뮬레이션을 위해 사용하였다.
사용기술 및 특징
포톤 유니티 네트워킹
1) 랜덤 매치 메이킹
PhotonNetwork.JoinRandomRoom() - 기존에 생성된 랜덤한 룸에 입장한다. 실패시 OnPhotonRandomJoinFailed() 콜백 함수가 호출된다.
2) 룸 생성
PhotonNetwork.CreateRoom() - 룸 생성시 사용한다. 룸 생성 완료시 자동으로 룸에 입장하며, OnJoinedRoom() 콜백 함수가 호출된다.
3) Photon View
이 컴포넌트는 네트워크상에 접속한 플레이어 간의 데이터 송수신하는 통신 모듈이다. 동일한 룸에 입장한 다른 플레이어에게 게임 오브젝트 또는 프리팹을 동시에 생성하거나 서로 데이터를 송수신하려면 반드시 필요하다. 이 컴포넌트는 유니티 네트워크 API의 NetworkView 컴포넌트와 동일한 역할을 하며 속성 또한 유사하다.
4) 동적 생성
PhotonNetwork.Instantiate() - 동일한 룸에 접속해 있는 모든 네트워크 플레이어에게 동시에 게임 오브젝트나 프리팹을 동적 생성시킨다.
5) 위치 및 회전 동기화
OnPhotonSerializeView() - OnSerializeView()와 동일한 기능으로 Photon View 컴포넌트의 Observe 속성에 연결하여 전송주기에 맞춰서 송수신하는 역할을 한다.
6) RPC (Remote Procedure Call)
이벤트성 동작을 네트워크 플레이어와 공유시에는 RPC를 통한 구현이 일반적이다. 포톤 클라우드에서도 동일한 RPC 개념을 제공한다.
시연 영상
↓다운로드 링크
https://play.google.com/store/apps/details?id=com.GreenApple.TMT
'Project > Game' 카테고리의 다른 글
Coding Town (0) | 2020.06.05 |
---|---|
Color Pop (0) | 2020.06.05 |