게임 클라이언트 개발/Photon
-
Photon을 활용한 Matching 시스템 구축게임 클라이언트 개발/Photon 2024. 1. 16. 01:52
어몽어스와 같은 마피아 게임을 제작했던 Interactopia 프로젝트에서 Photon API를 활용하여 Matching 시스템을 구축했었다. 해당 프로젝트를 진행하면서 매칭 시스템에서 필요한 기능은 크게 방 만들기, 공개 방 참여하기, 비공개 방 참여하기, 총 세 가지라고 생각했다. 이번 글에선 각각의 기능을 어떻게 구현했는지에 대해 작성하고자 한다. 방 만들기 Photon에선 방을 만들때 방의 이름은 중복될 수 없으며, 비공개 방 참여를 위한 6자리 코드가 필요했다. 그래서 6자리 방 코드를 Photon API를 위한 방 이름으로 사용하고, 닉네임을 유저에게 보여질 방 이름으로 사용하기로 결정했다. 우선 중복되지 않는 방 코드를 생성하기 위해 Photon에서 제공되는 UserId와 현재 시간을 조합해..
-
Photon 동기화 방식 - Custom Properties게임 클라이언트 개발/Photon 2023. 11. 7. 00:12
Photon 동기화 방식은 크게 5가지가 있다. 그 중 Custom Properties에 관한 글이다. Custom Properties ExitGames.Client.Photon.Hashtable 반환형의 Dictionary로 게임 내에서 자주 변하지 않는 변수(Ex. 스테이지 클리어 시 다음 스테이지로 가는 문이 열렸는지 여부에 대한 변수 등)를 동기화할 때 사용한다. Key는 string 타입, Value는 object 타입이고 RPC Method의 파라미터와 마찬가지로 기본 타입만 Value로 사용할 수 있다. Custom Properties는 Room과 Player에 모두 존재하며 로컬 클라이언트에서 수정하면 모든 클라이언트에 업데이트된다. 코드 사용법 1. Set ,Get using Photon..
-
Photon 동기화 방식 - RPC Method게임 클라이언트 개발/Photon 2023. 11. 5. 05:05
Photon 동기화 방식은 크게 5가지가 있다. 그 중 RPC Method에 관한 글이다. RPC란? 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술 (출처 : 위키백과) 네트워킹 관점에서 본다면 별도의 원격 제어 없이 다른 클라이언트에서 함수를 실행할 수 있게하는 통신 기술이라고 이해할 수 있다. Photon에선 Animator, Rigidbody, Transform Component 외의 함수로 동기화 시 사용한다. 코드 사용법 1. 호출하고자 하는 RPC Method PunRPC 속성을 부여해야 한다. 네이밍 컨벤션으론 마지막에 RPC를 붙인다. (다른 컨벤션이 있다면 해당 컨벤션 사용) 파라미터는 기본 형식만 가능하다. byte,..
-
Photon 동기화 방식 - Photon View Component게임 클라이언트 개발/Photon 2023. 11. 3. 20:00
Photon 동기화 방식은 크게 5가지가 있다. 그 중 Photon View Component에 관한 글이다. Photon View Component Photon View Component는 Photon 동기화 시 네트워크가 동기화를 위해 오브젝트를 관측하는 Component이다. Photon View Component의 맴버 변수 View ID : 오브젝트를 식별하기 위한 고유 ID IsMine : 로컬 플레이어의 소유인 Photon View Component인가? 즉, Owner가 로컬 플레이어인가? Owner : 해당 Photon View Component의 소유권을 가지고 있는 플레이어 Creator : 해당 Photon View Component를 생성한 플레이어 Observable Compon..