jintaeyeong / Develop-Unity

Unity Study Repo
0 stars 0 forks source link

Youtube Unity 라이브 8월 28일 내용 정리 #1

Closed jintaeyeong closed 3 months ago

jintaeyeong commented 3 months ago

오랜만에 유니티 라이브를 시청하게 됨

유니티 6에 대한 정보도 얻고 개발에 대한 최신 동향을 알 수 있을 것이라고 생각하고 이슈 등록

고급 Unity 개발자를 위한 데이터 지향 기술 스택 E-book

jintaeyeong commented 3 months ago

Youtube 주소

첫번째 세션 Unity 멀티플레이 프로토타이핑 소개

megacity 라는 프로젝트에서도 적용

UGS 서비스.. Unity 6에 새로나온 프로토타입 기능

싱글 플레이어 게임을 만들었음.. 동일한 게임 경험을 다른 플레이어와 어떻게 공유? image

Gameplay Layer

image

Netcode layer

image

Transport layer

image

오늘은 Netcode GameObject 에 대해서 좀 더 중점적으로 라이브 설명할 예정

멀티플레이 서버 방식 종류 3가지

image

image 서버 연산 비용이 과도하게 나올 수 있게 될 수 있음

image 중앙 상태 서비스라고 함 상태 변경사항만 추적하고 네트워크 트래픽을 라우징 중앙 서버는 존재 X 중앙 권한이 없기 때문에 클라이언트에 접근하는 부정행위에 취약할 수 있음

프로젝트를 생성할 때 Connect to Unity Cloud 체크 하기 클라우드 연결을 해야 백엔드 서비스를 사용할 수 있게 됨

프로젝트 생성 할 때 연결을 하지 않았다.. Serveice에서 Genaral Setting에서 연동을 할 수도 있음

Unity 6에서 멀티플레이

패키지메니저 -> Enable Pre-release Packages 체크 활성화

멀티플레이 게임을 개발할 때 Unity 6가 정말 강력하게 도움이 될 것이다...

Unity Registry -> Multiplayer Center를 설치,,, (Pre-Release 체크 되어있어야함)

Multiplayer Center 설정화면 활성화

  1. 게임의 장르 선택 가능
  2. 최대 몇명 접속할 것인지 설정

추천하는 솔루션, 패키지가 자동으로 추천됨 Netcode for GameObject - 적은 사용자 Netcode for Entities - 개발 용량이 올라감

게임이 채팅에 민감하다.. 이런것도 설정할 수 있음 image

Vivox -> 유니티에서 보유하고 있는 음성 관련 패키지 개발 회사

설정이 끝났으면 Install Package를 누르면 됨..

다양한 패키지를 설치하기 때문에 시간이 오래 걸릴 수 있다.

jintaeyeong commented 3 months ago

멀티 플레이 게임을 만들고 같이 접속해서 테스트를 하려면 빌드, 컴파일을 했어야함

유니티는 개발 시간을 단축하기 위해서 훨씬 좋은 기능을 만들어놨음

Multiplayer Play Mode

가상 플레이어를 추가할 수 있다..!!!!!!!!!!!!!!!!!!!(대박) image

빌드를 안하고 테스트를 할 수 있다뉘...

image

멀티플레이 기능을 만드는데 정말 간단해졌다..

NetworkManager 게임오브젝트는 Netcode에 포함되어있는 라이브러리 정상적으로 세션이 연결되면 플레이어 Prefab을 Spawn

Unity Transport 스크립트도 붙어있음, 위치, 크기에 대해 공유

예전에 아즈메타 만들었던거 생각난다..ㅜ Static 까지 분리 되어있음

더 멋진게 나올것... ㅋㅋ

Network Object , 네트워크 상에서 존재하는 것들을 동기화 할 수 있도록 만들어주는 최상위 스크립트

jintaeyeong commented 3 months ago

빌드를 한번도 안해봐도 멀티플레이 테스트를 할 수 있다

Network Visualization -> 호스트, 클라이언트 등등 헷갈린다면 이 기능을 이용해서 확인할 수 있다

GDC 에서 설문조사를 했는데 60퍼센트정도 멀티플레이를 개발하고 있음

로비 시스템을 구축하는데 3분이면 된다고 함...ㅋㅋㅋㅋㅋ(3분카레 드립)

Multiplayer widget image

헐... Create Session 이라는 UI, 버튼이 생기고 기능이 아예 만들어져있다..!!

create join and leave info (세션코드정보, 플레이어 리스트) communication

세션 리스트를 볼 수 있는데 방 정보를 이렇게 쉽게..? 플레이어 리스트도 받아올 수 있음 요즘에는 세션 코드로도 입장할 수있으니까 info 에서 세션 코드를 이용하면 됨

프리팹을 배치하고 실행만 해도 됨... 씬은 저장해야됌

image

헐... 대박..

호스트 위주로 되어있는 방이라면 호스트가 세션을 나갔을 때 방이 사라지고 권한 위임도 없다.. 서버 종류에 따라서 사용자가 서버를 나갔을 때 실행되는 구조가 다르다..

유니티는 멀티플레이 민주화를 목표로 누구나 만들 수 있도록.. 멀티플레이는 세부기능을 모르더라도 만들 수 있도록 함

질문 : VR도 사용 가능한가요!!?? -> 가능합니당!!

jintaeyeong commented 3 months ago

멀티플레이어 Bite-size

아직 완벽하지는 않지만 체험할 수 있음

Asteroids-CMB-NGO-SAMPLE 미리 만들어져있는 데모 프로젝트

멀티플레이어 센터를 설치하면 다 볼 수 있다! image

중앙상태서버에 접근 방 이름을 변경할 수 있음 세션이 생성되면 캐릭터가 만들어짐

많은 플레이어가 들어가있다면 부하가 될 수 있다 호스트 위주로 되는 서버라면... 호스트 컴퓨터에서 전부 처리하기 떄문에 굉장히 많은 부하가 만들어질 것이다..!!! ㅋ

앞으로 멀티플레이 게임을 만드는데 1시간 30분이면 되지 않을까.. 하는 생각..

image

플레이어의 수에 따라서 데이터, 세션에 대한 처리를 분배한다.. 100명정도 들어가도 영향이 없었다

보안에 대해서는 그래도 불안할 수는 있음

Network Object에서 Owership - Distributable 오브젝트에 대한 제어를 분배한다..

근데 내가 가지고 있는 것을 제어를 못해서 불편한거 아닌가?? 하는 생각이 들 수 있음

오브젝트를 생성했음

각자 클라이언트에서 스폰을 했음 image

network Object Owership -> Transport 속성

충돌이 발생할 경우 충돌체에 대해서 오너를 바꾸는 코드가 들어가 있음

결론

멀티플레이어를 설치해라!

많은 인원을 수용하고 싶으면 Distribution 속성을 써야한다..

근데 이것들을 사용하기 위해서는 Unity 6를 써야한다!

jintaeyeong commented 3 months ago

개발자 사이트에 정보가 기술되어있음

멀티플레이 센터에 들어가면 다양한 정보가 포함되어있으니까 사용해보면 될 것 같다..

이미 사용해서 게임 개발을 만드는 사람도 많다!

jintaeyeong commented 3 months ago

XR 개발 E-book A-Z까지

Link

PDF 링크

MR 혼합현실

현실과 가상의 혼합

AR 증강현실과 비슷한 개념

AR은 역사가 오래됐는데 MR은 비교적 최근에 태어난 단어

AR은 스마트폰, 태블릿, MR는 글래스 타입으로 생각하면 될 것 같다고 생각함

Spatial 공간 컴퓨팅

VR/AR?MR에 따라 콘텐츠가 분류될 것이다..

최근 MR이 추세이긴 함

MR : Passthrough 방식, 카메라를 통해서 보는 것

기존 2D 게임과는 다른 세상의 콘텐츠임

게임 기획 단계부터 틀에 벗어나서 진행되긴 함

30프레임, 퍼포먼스 최적화를 꼭 생각해야된다