๐ฎ ๋ฉํฐํ๋ ์ด์ด ๋งค์น๋ฉ์ดํน๊ณผ ๋ฃธ(Room) ์์คํ ๊ตฌํ – Unity + Photon
๋ฉํฐํ๋ ์ด์ด ๊ฒ์์์ ํ๋ ์ด์ด๋ฅผ ๋น ๋ฅด๊ฒ ๋งค์นญํ๊ณ ๋ฐฉ(Room)์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ํ์๋ค.
์ด๋ฒ ๊ธ์์๋ ๋งค์น๋ฉ์ดํน๊ณผ ๋ฃธ ์์คํ ์ Unity์ Photon ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
1. ๋งค์น๋ฉ์ดํน(Matchmaking) ๊ฐ๋
-
ํ๋ ์ด์ด๋ฅผ ๊ฐ์ ๊ฒ์ ํ๊ฒฝ์ ๋น ๋ฅด๊ฒ ์ฐ๊ฒฐ
-
์๋ ๋๋ ์๋ ๋งค์นญ ๊ฐ๋ฅ
-
๋ชฉํ: ๋๊ธฐ ์๊ฐ ์ต์ํ + ๋ฐฉ ๊ท ํ ์ ์ง
2. ๋ฃธ(Room) ์์คํ ๊ฐ๋
-
๋ฃธ: ๊ฒ์ ํ๋ ์ด ๊ณต๊ฐ ๋จ์
-
๊ฐ ๋ฐฉ์ ํ๋ ์ด์ด ์ ์ ํ, ๊ฒ์ ๊ท์น, ๋งต ๋ฑ ์์ฑ ๊ฐ์ง
-
์๋ฒ๊ฐ ๋ฐฉ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ → ํ๋ ์ด์ด๋ ๋ฐฉ ์ฐธ์ฌ/์์ฑ
3. Photon ์์
3-1. ๋ฐฉ ์์ฑ
3-2. ๋ฐฉ ์ฐธ์ฌ
3-3. ์๋ ๋งค์น
-
๋ฃธ ์์ผ๋ฉด ์๋ก ์์ฑ ๊ฐ๋ฅ:
OnJoinRandomFailed()
→CreateRoom()
4. ์ค์ ํ
-
๋ฐฉ ์์ฑ(Room Custom Properties): ๋งต, ๋์ด๋, ํ ๊ตฌ์ฑ ๋ฑ ์ ์ฅ ๊ฐ๋ฅ
-
๋ฐฉ ๋ฆฌ์คํธ(Room List): UI์์ ๋ฐฉ ํ์ธ ๋ฐ ์ ํ ๊ฐ๋ฅ
-
ํ๋ ์ด์ด ์ฐ๊ฒฐ/์ข ๋ฃ ์ด๋ฒคํธ:
OnPlayerEnteredRoom()
,OnPlayerLeftRoom()
ํ์ฉ
5. ๋ง๋ฌด๋ฆฌ
๋งค์น๋ฉ์ดํน๊ณผ ๋ฃธ ์์คํ ์ผ๋ก,
-
ํ๋ ์ด์ด ๋งค์นญ ์๋ํ
-
๊ฒ์๋ฐฉ ๊ด๋ฆฌ ํจ์จํ
-
๋ฉํฐํ๋ ์ด์ด ๊ฒฝํ ํฅ์
๋ค์ ๊ธ์์๋ ๋คํธ์ํฌ ๋๊ธฐํ ์ต์ ํ์ ์ง์ฐ(Lag) ์ฒ๋ฆฌ๋ฅผ ๋ค๋ค, ๋ฉํฐํ๋ ์ด ํ๊ฒฝ์์ ๋ถ๋๋ฌ์ด ๊ฒ์ํ๋ ์ด๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ๋ค.
๋๊ธ
๋๊ธ ์ฐ๊ธฐ