상용 서버인 포톤으로 모바일, PC, VR 크로스플레이를 지원하는 동영상 시청 공유 메타버스 앱을 구현하였다.
Photon을 이용한 실시간 네트워킹, Unity OpenXR을 이용한 VR앱 구현 및 크로스플랫폼 플레이어 구현을 목표로 하였다.


새로 학습한 부분

포톤 퓨전

기술 벨로그

포톤사에서 유니티 전용으로 출시한 라이브 서버이다.
공식 튜토리얼로는 간단한 연결만 수행할 수 있어 추가적인 튜토리얼을 수행하였다.
세션을 만들고, 그 세션에 참여하여 트랜스폼과 애니메이션, 각종 변수들과 RPC를 이용한 동기화를 공부하였다.

OpenXR

기술 벨로그

VR/AR 표준 오픈소스인 OpenXR을 이용해 모든 VR기기에서 실행 가능한 애플리케이션을 구현할 수 있다.
OpenXR의 플레이어 시스템을 이용한 이동/카메라 움직임/텔레포트를 직접 구현하고, 유니티의 XR Interaction Toolkit을 이용해 UI 상호작용, 오브젝트 상호작용을 직접 구현하였다.


직접 개발한 부분

크로스플랫폼 구현

기술 벨로그

하나의 프로젝트로 여러 개의 플랫폼에 대한 빌드를 시도할 때 수행한 작업들을 적어두었다.
멀티플랫폼을 위한 프로젝트 내부 설정과 플랫폼 체크, 플랫폼에 따른 플레이어/오브젝트/UI 소환 방법을 주로 다루었다.

비디오 플레이어

기술 벨로그

플레이어들이 앱 내에서 동영상을 시청할 수 있도록 비디오 플레이어를 구현하였다.
VideoPlayer컴포넌트와 UI를 조합해 재생/일시정지, 재생 속도, 볼륨 등을 조절하는 비디오 플레이어 스크립트를 구현하였다.


좋았던 부분

새로운 시도

요즘 새롭게 화두되고 있는 크로스플랫폼을 구현해본 것이 좋았다.
각 플랫폼의 입력 처리 및 화면 특징 등에 대해 분석하여 이에 맞게 플레이어를 구현하고, 또한 각 플랫폼의 성능에 맞춰 에셋 퀄리티를 조절하는 방식을 공부할 수 있었다.
또한 동영상 플레이어를 구현하면서 게임 외적으로 유니티를 사용하는 방법을 일부 엿볼 수 있었다.

라이브 서버 공부

이전에 로그인과 데이터베이스를 처리하는 웹서버와 연동한 경험은 있었지만, 멀티플레이를 위한 라이브 서버와의 연동을 처음 수행해보았다.
비록 클라이언트를 위해 만들어진 서버가 아니라 상용 라이브 서버였지만 컴포넌트 값 및 변수값들의 연동 방식을 알 수 있었다.


아쉬웠던 부분

미흡한 사전지식

XR과 라이브 서버에 대해 미흡한 상태로 개발을 시작하여 최적화가 덜 된 결과물이 나왔다.
특히 라이브 서버에 플레이어 이동 스크립트를 틱마다 업데이트하게 한 것이 제일 큰 실수였다.


느낀 점

해당 프로젝트가 장기 프로젝트 형태로 오면 모든 지식을 총동원해 구현해보고 싶다.
이대로 끝내기에는 무언가 약간 아쉬운 프로젝트였다.

profile
학습한 내용을 빠르게 다시 찾기 위한 저장소

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN