๐ง Unreal์ Replication ๊ฐ๋ ์ ์์๋ณด๊ณ ๋ฉํฐํ๋ ์ด๋ฅผ ๋ง๋ค์ด๋ณด์.
์๋ง์ ๊ฒ์ ์ฅ๋ฅด๊ฐ ์์ง๋ง ๊ทธ ์ค์์๋ ํผ์์๋ ํ๋ ์ดํ ์ ์๊ฑฐ๋, ์ฌ๋ฟ์ด์ ํ๋ฉด ๋ ์ฌ๋ฏธ์๋ ์ฅ๋ฅด๊ฐ ์๋ค.
์ด๋, ์ฌ๋ฌ ์ฌ๋์ด ๋ชจ์ฌ ํจ๊ป ํ๋ ์ดํ๋ ๊ฒ์ ๋ฉํฐํ๋ ์ด๋ผ๊ณ ํ๋ค.
์ด๋ฒ ์๋ฆฌ์ฆ์์๋ ์ค์ํ ๊ฐ๋
์ธ Replication์ ๋ํด์ ์์๋ณด๊ณ
๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ๋ฆฌ์ผ ์์ง์์ ๋ฉํฐํ๋ ์ด ๊ฒ์ ์์ ๋ฅผ ๊ฐ๋จํ๊ฒ ์ ์ํด๋ณด์.
Replication ๊ฐ๋
Replication ์๋ฆฌ์ฆ
Replication ๊ฐ๋จ ์์
Session ๊ธฐ๋ฐ ๋ฉํฐํ๋ ์ด ์์
์ด๋ฒ ํฌ์คํ ์๋ Actor Spawn์ ๋ํด์ ์์ ๋ณด๊ฒ ์ต๋๋ค.
๋ฉํฐํ๋ ์ด ๊ธฐ๋ฐ์ ๊ฒ์ ์ ์์ ๋๊ธฐํ๊ฐ ์ค์ํ๊ณ ,
๊ฒฐ๊ตญ ๋ชจ๋ ๋ก์ง์ด ์๋ฒ๋ฅผ ํตํ ์ ๋ฐ์ ์์ต๋๋ค.
์ํ์กํฐ์ Replication ์ํ์ RPCํธ์ถ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ ๋ณด๊ฒ ์ต๋๋ค.
๊ฐ๋จํ๊ฒ Sphere๋ฅผ ๊ฐ์ง ์ํ์ฉ ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ํ๋ ์ ์ํ์ต๋๋ค.
Replication ์ค์ ์ Net Load On Client
๋ฅผ ์ ์ธํ๊ณค ์๋ฌด๊ฒ๋ ๋์ด ์์ง ์์ต๋๋ค.
BP_Ball
์ Replicate๋์ง ์์๊ณ , RPC๋ ํธ์ถํ์ง ์๊ณ ์ํํด๋ณด๊ฒ ์ต๋๋ค.
SpawnBall์ด๋ผ๋ ์ด๋ฒคํธ๋ฅผ ๋ง๋ค์ด์
์ฐํด๋ฆญ ์ ์ํ๋๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํํด๋ณด๋ฉด ๊ฐ Client
์ธก์์๋ง ์ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋ํ ์ด์ํ ์ ํ๋๋ BP_Ball
์ ๊ฐ๋ก ๋งํ์ง ์๊ณ ๊ทธ๋ฅ ์ง๋๊ฐ ์ ์๋ค๋ ๊ฒ๋๋ค.
์ด์ ์ ์ถฉ๋(Collision)์ Server(Host)๊ฐ ๊ด์ฅํ๋ค.
๋ผ๊ณ ๋ง์๋๋ ธ์ต๋๋ค.
์ ์์ ์์ ์กํฐ๊ฐ ์ํ๋ ๊ฒ์ Server
๊ฐ ์๋๋ผ Client
์
๋๋ค.
์ฆ Server
๋ BP_Ball
์ด ์ํ๋ ์ ์ด ์์ผ๋ Collision ๋ํ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ํ๋ ์ด์ด๊ฐ ์ด๋ํ๋๋ผ๋
์๋ฌด๊ฒ๋ ์๋ค๊ณ ํ๋จํ๊ณ ์ง๋๊ฐ ์ ์๊ฒ ๋ฉ๋๋ค.
BP_Door๋์ ๊ฐ์ ์ํฉ์
๋๋ค.
์ด๋ฒ์๋ Run On Server
RPC๋ฅผ ํตํด์ ์ํํด๋ณด๊ฒ ์ต๋๋ค.
SpawnBall_Server
๋ฅผ ๋ง๋ค์ด์ Run On Server
์ค์ ํ ์ฐ๊ฒฐํด์ฃผ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํํ์ฌ ์ํํด๋ณด๋ฉด?
์๋ฌด๊ฒ๋ ๋ณด์ด์ง ์์ต๋๋ค.
๊ทธ๋ ์ง๋ง ํ๋ ์ด์ด๋ ๋ฌด์ธ๊ฐ์ ๊ฐ๋ก ๋งํ ์ง๋๊ฐ ์ ์์ต๋๋ค.
์์๋ ์ ๋ฐ๋์ ์ํฉ์
๋๋ค.
Server
์๋ ๋ถ๋ช
ํ ์ํ๋์์ผ๋ Client
๋ค์๊ฒ ๋ณต์ ๋์ง ์์ ๋๊ธฐํ๊ฐ ์ผ์ด๋์ง ์์ ๊ฒ์
๋๋ค.
์ด์ ๋๊ธฐํ๋ฅผ ์ํ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
์ฝ๋๋ ๊ทธ๋๋ก ๋๊ณ , BP_Ball
์ Replication ์ต์
๋ง ์ฒดํฌํด์ฃผ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํํ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ ์์ ์ธ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ์ด์ ์ ํฌ์คํ
์์ ์งํํ๋ ํ์ ์์ ๋ฐ๋ฅธ ์ํฉ์ ๋ณด๊ฒ ์ต๋๋ค.
์กํฐ๊ฐ Replicate
๋์ด ์์ง ์์ฒด์์ ๋๊ธฐํ๊ฐ ์งํ๋์ด ํ์ ์์ ํด๋ ์ํ๋ ์กํฐ๊ฐ ๋จ์ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
BP_Ball
์ Replication ์ต์
์ ํด์ ํ๊ณ Multicast
RPC๋ฅผ ํธ์ถํ์ฌ ๋๊ธฐํํด๋ณด๊ฒ ์ต๋๋ค.
SpawnBall_Multi
๋ฅผ ๋ง๋ค์ด์ SpawnBall
์ ์ฐ๊ฒฐํ๊ณ ,
SpawnBall_Multi
๋ SpawnBall_Server
์ ์ฐ๊ฒฐํด์ฃผ์์ต๋๋ค.
์คํํด์ฃผ๋ฉด ๋๊ธฐํ๊ฐ ์ญ์ ์ ๋ฉ๋๋ค.
ํ์ง๋ง ํ์ ์ ์์๋ ๋๊ธฐํ๊ฐ ๋์ง ์์ ์ํ๋ ์กํฐ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค.
Multicast
RPC๋ฅผ ํธ์ถํ๋, BP_Ball
์ Replication ์ต์
๋ ์ผ์ ธ ์์ผ๋ฉด์?
๊ทธ๋ผ Multicast
RPC๋ฅผ ๋ฐ์ง ๋ชปํ ํ์ ์ ํ๋ ์ด์ด๋ BP_Ball
์์ฒด๊ฐ Replicate๋์ด ์๊ธฐ ๋๋ฌธ์,
์ ๋ณด์ด๊ณ , ๊ฐ๋ก ๋งํ๋ ๊ฒ๊น์ง ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ Client
์๊ฒ ์ ํ๊ฐ 2๋ฒ ๋๋ ๊ฒ๊ณผ ๋์ผํ ์ํฉ์
๋๋ค.
๊ทธ๋์ ์กํฐ๊ฐ 2๋ฒ ์ํ์ด ๋ฉ๋๋ค.
์ํ๋๋ ์กํฐ๊ฐ Simulate Physics
์ธ ๊ฒฝ์ฐ๋ ์ด๋จ๊น์?
๋๊ฐ์ต๋๋ค.
์ ์ผํ๊ฒ ๋ค๋ฅธ ์ ์ด๋ผ๋ฉด Replicate Movement
๊ฐ ์ผ์ ธ ์์ด์ผ ํ๋ค๋ ์ ์
๋๋ค.
๋ฉํฐํ๋ ์ด ํ๊ฒฝ์์์Spawn Actor
์ ํต์ฌ์
์กํฐ์ ์ํ์ Server(Host)์์ ์ด๋ฃจ์ด์ ธ์ผ ํ๊ณ , ์ํ๋ ์กํฐ์ ๋ํด ๋๊ธฐํ๋ฅผ ํด์ค์ผ ํ๋ค.
๋ผ๋ ๊ฒ์ ๋๋ค.
์ด๋ฒ ํฌ์คํ
์ ์ฌ๊ธฐ์ ๋ง์น๊ณ , ๋ค์ ํฌ์คํ
์๋ ์ํ๋ ์กํฐ๋ฅผ `Destroy
ํ๋ ๋ฒ์ ์์ ๋ณด๊ฒ ์ต๋๋ค.