본문 바로가기
Unity 강의/Unity Course(2) - 절대강좌! 유니티

[Unity Course 2] 15. 포톤 클라우드를 활용한 네트워크 게임 1

by 첨부엉. 2024. 6. 29.
반응형

위키북스 출판사 이재현 저자님의 '절대강좌! 유니티' 책을 참고하여 필기한 내용입니다.

 

네트워크 게임을 개발하기 위해서는 물리적인 서버(하드웨어)와 네트워크 게임 엔진(소프트웨어)이 필요하다

네트워크 게임 엔진을 자체적으로 개발하기 위해서는 실력있는 개발자가 투입되어야하는데 쉽지 않을 일이기에

 

이미 검증된 네트워크 게임 엔진을 도입하는 것도 좋은 방법

 

그 중에서 많이 검증된 Photon 네트워크 게임 엔진을 사용할 예정이다.

20명까지는 동접 사용자 까지는 무료로 사용할 수 있다.

 

포톤 제품은 클라우드 서비스를 활용하거나 독자 서버를 구축 및 운영할 수 있는 데디케이티드 서버 모드로 사용할 수 있음

 

포톤 리얼타임 vs. 포톤 클라우드

포톤 리얼타임 

  • 다양한 개발 플랫폼에 맞춰진 포톤의 핵심 코어 엔진

포톤 클라우드

  • 포톤 리얼타임 엔진을 바탕으로 클라우드 서비스를 제공하는 것
  • 서버의 보안, 로드밸런싱, 백업 및 네트워크 트래픽 관리를 자동으로 처리
  • SaaS(Software as a Service) 소프트웨어를 임대해 사용하는 방식

포톤 서버

  • 물리적인 서버를 직접 운영하는 것을 의미
  포톤 서버 포톤 클라우드
서버 운영 및 관리 필요 불필요
확장성(로드밸런싱) 직접 관리 관리 없음
서버 사이드 게임 로직 커스터마이징 기능 불가능
라이선스  서버당 과금 체계 동시 접속 사용자별 과금 체계

 

포톤 클라우드 환경 설정

포톤 사이트에서 개발자 계정을 생성하고 사용할 어플리케이션 ID를 발급받기

어플리케이션 ID는 포톤 클라우드와 통신하기 위한 고유번호로 게임당 하나씩 부여받음

 

계정생성

포톤 사이트에 접속 후 계정을 생성하기

회원가입 | Photon Engine

 

회원가입 | Photon Engine

시작해 볼까요? Photon Cloud의 클라이언트/서버 SDK는 무료 등록 후 이용할 수 있습니다. 등록한 메일주소로 계정 확인 메일이 발송되오니 확인해 주십시오.

id.photonengine.com

포톤 클라우드 어플리케이션 생성

Photon의 종류는 Pun 으로 설정하고 이름은 AngryBot2Net으로 입력한 후 작성하기를 누른다.

ID 부분을 클릭하면 복사가 가능하도록 블록으로 설정된다.

 

여기 저장소에서 유니티에서 직접 만든 URP와 포스트 프로세싱을 활용한 리소스를 받을 수 있다.

UnityTechnologies/AngryBots2 (github.com)

 

GitHub - UnityTechnologies/AngryBots2

Contribute to UnityTechnologies/AngryBots2 development by creating an account on GitHub.

github.com

 

 

유니버설 렌더 파이프라인

  • 비주얼 효과를 높인 렌더 프라인 (URP : Universal Render Pipeline) 
  • 범용으로 사용 가능한 렌더링 파이프라인으로 고품질의 렌더링을 제공
  • PC, 콘솔, 모바일 VR, AR 등 거의 모든 플랫폼에 적용 가능
  • 포스트 프로세싱 기능과 통합되어 다양한 후처리 그래픽 효과를 처리 가능

URP 프로젝트 생성 방법

템플릿을 다운 받고

AngryBot2Net 이라는 이름으로 파일을 생성하는 방법도 있지만 

템플릿을 3D으로 생성하여 urp로 변경하는 변경방법을 알아보도록 하겠다.

Window - Package Manager 에 들어가서 콤보박스에서 Packages: Unity Registry 를 선택한 다음

Universal RP를 install 해준다.

Universal Render Pipeline Assets 생성 및 설정

Create - Rendering - URP Asset (with Universal Renderer)

 

Player Settings - Graphics 설정

Edit - Projects Settings Graphics 섹션을 선택

 

Sciptable Render Pipeline Settings에 방금 만든 에셋을 연결

 

Player Settings - Quality 설정

Quality 섹션을 선택 하고 Rendering 에 에셋 연결

 

포스트 프로세싱 설정

  • 렌더링된 결과물(영상, 이미지)에 대한 후처리 작업을 말함
  • 카메라가 촬영한 영상 또는 이미지를 스크린에 출력하기 전에 다양한 필터와 효과를 적용하는 기술
  • 다양한 후처리 효과를 통해 시각적 퀄리티를 높일 수 있음
  • Universal RP 패키지를 설치하면 포스트 프로세싱 패키지를 포함하고 있어서 설치할 필요 없음

 

포스트 프로세싱의 URP 지원 범위

urp로 설정된 프로젝트에서 다음과 같은 일부 포스트 프로세싱 기능은 사용 불가함

- Auto Exposure
- Fog
- Screen Space Reflection

 

Post - processing 옵션 활성화

Processing 을 사용하기 위해선 위의 옵션이 활성화 되어 있어야됨

포스트 프로세싱 효과

특정 영역에 진입했을 때 효과를 처리하거나 씬 뷰 전체에 전역적으로 반영할 수 있음 

네트워크 대전 게임에서는 전역적인 포스트 프로세싱 효과로 적용해보기

하이러키 뷰에서 Volume - Global Volume 선택하여 새로운 오브젝트를 생성한다.

Volume 컴포넌트의 Profile 속성에 새로운 프로파일 에셋을 생성하고 연결한다.

비네팅 효과

화면의 주변이나 모서리를 어둡게 처리하는 것

자연스럽게 화면의 가운데 부분으로 시선을 모으는 효과가 있음 

아까 생성한 Global Volume 의 Volume 컴포넌트에서 Add Override - Post-processing - Vignette를 선택한다.

 

Vignette 속성에서 Intensity, Smoothness 속성을 활성화 하고 슬라이드 바를 조절하여 적당한 강도의 효과를 적용한다.

씬뷰에서만 적용된 모습을 확인할 수 있음

 

메인 카메라의 포스트 프로세싱 적용

Main Camera의 Camera 컴포넌트에서 Rendering 속성의 Post Processing 을 활성화 한다.

스테이지 생성

 

IndieGameMaker/UnityBook: 절대강좌! 유니티 2021 - 리소스 (github.com)

 

GitHub - IndieGameMaker/UnityBook: 절대강좌! 유니티 2021 - 리소스

절대강좌! 유니티 2021 - 리소스. Contribute to IndieGameMaker/UnityBook development by creating an account on GitHub.

github.com

 

15장에서 사용하는 파일을 받고 패키지를 임포트하기

 

스테이지 설치와 라이트 매핑

 

Window - Rendering - Lighting -Scene 탭에서 New Lighting Settings선택하기

 

Lightmap Resolution 속성을 10 ~20 정도로 변경하고 베이킹하기

 

Bloom, Tonemapping 효과

톤 매핑과 블룸 효과 추가

하이러키 뷰에서 Global Volume 을 선택한 다음 Tonemapping 추가

Mode 를 선택하고 ACES로 변경하기

톤 매핑은 조명의 밝기를 HDR 에서 사람이 인식할 수 있는 범위로 조정하는 효과

블룸 효과와 같이 사용하면 더 좋은 품질

하이러키뷰의 Directional Light 의 Light 속성을 다음과 같이 설정한다.

 

Global Volume에서 Bloom 오버라이드를 추가하고 Intensity 를 활성화한 후 1.5로 설정한다.

왼쪽이 Bloom 끈거 오른쪽이 킨거

 

광원 주위로 과장되게 표현하는 광학효과로 몽환적인 느낌 추가

 

반응형