- 준비물
- Unreal 엔진 →에픽게임즈 https://www.epicgames.com/store/ko/download 실행파일 다운로드
- 에픽게임즈 실행파일에서 Unreal 엔진 다운로드 v4.7이상
- nodejs 및 express 다운로드 서버가 express로 돌아갔었습니다.
- 언리얼 프로젝트가 있다면 상관없지만 없다면 에픽게임즈에서 무료로 데모 프로젝트를 다운로드할 수 있습니다.
로컬에서 프로젝트를 브라우저로 띄워보기
1. 언리얼 엔진을 실행시켜주세요 준비물이 모두 준비된 상태에서 가능합니다.
2. 단 탭의 편집 → 에디터 개인설정 → 좌측 탭 레벨 에디터 →Play in Standalone Game →추가 실행 옵션 파라미터에 호스트와 포트 및 오디오 믹서를 설정하는 파라미터 참조 AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
3. 독립형 게임으로 실행
아래와 같은 이런 창이 생성됩니다.
4. C:\Program Files\Epic Games\UE_4.27\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd 경로로 폴더 열기 및 run_local을 실행. express가 없다는 에러가 나오면 설치해주세요. npm install express
5. 아래처럼 Streamer Connect라는 표현이 뜬다면 성공
6. WebRTC가 사용 가능한 브라우저 ex) 크롬에서 localhost를 치고 들어가기
7. 성공
Docs에서 제공하는 Pixel 스트리밍 호스팅 및 네트워킹 가이드
https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/Hosting/
위에서는 로컬 서버에 연결하여 테스트해 보았습니다. AWS, GCP, Azure와 같은 클라우드 서비스에서도 사용이 가능합니다.
더 복잡한 네트워크나 개방형 인터넷을 통해 서비스를 배포하려고 하거나 사용자 경험과 연결 흐름을 재설계하려는 경우 설정을 다시 생각해야 할 수 있습니다. 아래와 같은 설정을 생각하여 재설계가 가능합니다.
기본적인 시나리오
브라우저로 Signaling서버를 통해 P2P로 통신하는 구조
다중 플레이어 엔드포인트 시나리오
하지만 이건 그냥 한 사람이 방송하고 나머지가 보는 스트리밍 구조랑 같다. 방송하는 사람 외에는 자신만의 캐릭터가 없다.
매치메이킹을 통한 다중 풀 스택
여러 호스트들(인스턴스)이 Matchmaker서버를 통해 한 곳에서 만나는 구조
*주문형 확장
클라이언트가 연결을 시도할 때마다 새 서버 인스턴스를 가동할 수 있습니다.
출처 및 참고자료
https://tensorworks.com.au/blog/an-open-architecture-for-scalable-pixel-streaming/#11-streaming-protocols [Unreal 커뮤니티에서 본 한 블로그]
https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/[Unreal Pixel 스트리밍 Docs]
https://www.youtube.com/watch?v=ApUBVnQK0Qw&ab_channel=WilliamOrving [ Youtube 강의 ]
제제훈 킹아~