์ด๊ธฐ ๋งค์ปค๋์ฆ ์์ฒด๋ ๊ตฌํํ๊ธฐ ์ฌ์ด๋ฐ, ๋คํธ์ํฌ ๋๊ธฐํ ์์ ์ด ์ง์ง ๋นก์ ๋ค.
๋ ์ ๋ชป๋๋ผ๋๋ก ํด๋ผ์ด์ธํธ ์์ธก์ ์ฌ์ฉํ๋๋ฐ, ์ด๊ฒ ์์ธก์ ์๋ชปํ์๋ ๊ต์ ํด์ฃผ๋ ๋ฐฉ๋ฒ์ ์ด๋ป๊ฒ ํด์ผํ ์ง ํ์ฐธ ๊ณ ๋ฏผํ์.
์ฒ์์ ๊ทธ๋ฅ property replication ์ผ๋๋ฐ, ๋ฌธ์ ๋ ์ด๊ฒ ์๋ฒ์ธก ํ๋กํผํฐ ๊ฐ์ด ๋ณ๊ฒฝ๋์์ ๋๋ง ๋ฆฌํ๋ฆฌ์ผ์ด์ ๋๋๊ฑฐ๋ผ, ๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ์์ธก์ผ๋ก ๊ฐ์ ๋ณ๊ฒฝํ๋๋ฐ, ์๋ฒ์์ ๊ฒ์ฆํด๋ณด๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด ๊ฐ ๋ณ๊ฒฝ์ ์ทจ์ํด์ผ ํ๋๋ฐ, ์๋ฒ์ ๊ฐ์ ์๋ฐ๋์์ผ๋ ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์๋ ค์ค ๋ฐฉ๋ฒ์ด ์๋๊ฑฐ์. ๊ฒฐ๊ตญ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ ๊ทธ๋๋ก ์๋ชป๋ ์ํ๋ก ๋จ์์๊ฒ ๋จ. (๋ฌผ๋ก ์ด๋ด ๋๋ง๋ค RPC๋ก ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๊ธด ํ๋ฐ, ๋ถ์์ ํ์)
์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด๊ณ ์๋ํด๋ดค์ง๋ง, ๋ด๊ฐ ๊ฒฐ๋ก ๋ด๋ฆฐ ์ต์ ์ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์.
- ์๋ฒ๊ฐ owner ํด๋ผ์ด์ธํธ์๊ฒ ์ผ์ ์ฃผ๊ธฐ (์ผ๋จ 0.5์ด๋ก ํด๋์) ๋ง๋ค 'correction data'๋ผ๋ ์ด๋ฆ์ผ๋ก ์๋ฒ์ ์ต์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋.
- ์ด๊ฑธ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ๋ฐ๋ก ๋ฐ์ ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํด์ค ์๋ ์๊ฒ ์ง๋ง, ๊ทธ๋ฌ๋ค๊ฐ ๋ด๊ฐ ์์ธก์ค์ธ ๋ฐ์ดํฐ๊ฐ ๋ ์ต์ ์ผ ์๋ ์๋๋ฐ ์ด๊ฑธ ๋ฒ๋ฆฌ๊ณ ๊ณผ๊ฑฐ๋ก ๋์๊ฐ๊ฒ ๋๋ ๊ผด์. ์ดํด ์ฝ๊ฒ ์ค๋ช
ํ์๋ฉด, ์ด์ ์ฐ์ฌ๋ก ๊ฐ๊ธฐ๊ณ ์๋ค๊ณ ์๊ฐํด๋ณด์
. ํด๋ผ๋ ์์ธก์ ์ฌ์ฉํ๋ ์ผ๋จ 1๋ฐ ๊น๊ณ ๋ณด๋๊ฑฐ์. ๊ทธ๋ผ 29๋ฐ์ธ๋ฐ, ์์ง ํจํท์ด ์๋ฒ์ ๋์ฐฉํ์ง ์์์ ์๋ฒ๋ 30๋ฐ์. ์ด๋ correction data๋ฅผ ์ ์กํ๋ฉด, ์ง๊ธ 29๋ฐ์ธ๋ฐ 30๋ฐ๋ก ๊ต์ ํ๋ผ๋ ๋ง์ด ๋จ. ๊ณผ๊ฑฐ๋ก ๋์๊ฐ๋ ๊ฑฐ์ง. ๋ถ๋ช
ํ ๋ฌธ์ ๊ฐ ์์.
- ๊ทธ๋์ ํด๋ผ์ด์ธํธ ํ๋กํผํฐ์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋, ๊ทธ ์๊ฐ์ ๊ธฐ๋กํด๋๊ณ , correction data๋ฅผ ๋ฐ์์ ๋, ํ๋กํผํฐ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ง ๊ฝค ์ค๋๋ ๊ฒฝ์ฐ์๋ง ๊ต์ ์ ํด์ฃผ๋ ์์ผ๋ก ํ์. ๋ณ๊ฒฝ๋์ง ์ค๋๋์๋ค๋ ๊ฑด, ๊ทธ ์๊ฐ๋์ ์ถฉ๋ถํ ์๋ฒ์ ๋๊ธฐํ๋์ด, ํด๋ผ์ด์ธํธ ์
์ฅ์์ ์ต์ ๋ฐ์ดํฐ์ผ ํ๋ฅ ์ด ๋๋ค๊ณ ํ๋จํ ์ ์๋ ๊ฑฐ์. '์ค๋๋์๋ค'์ ๊ธฐ์ค์ RTT(round trip time, ํ)์ผ๋ก ํ์.
์ด ํจ์๋ ๋งค ํฑ๋ง๋ค ํธ์ถ๋จ. ์ฒซ if๋ฌธ์ ๊ฐ๋จํ ๋งํ๋ฉด ์๋ฒ์์๋ง ์คํํ๋๋ก ๊ฑธ๋ฌ์ฃผ๋ ๊ฑฐ์
๊ทธ๋์ 0.5์ด๋ง๋ค ํด๋ผ์ด์ธํธ์๊ฒ correction data ๋ณด๋ด์ฃผ๋ ๊ฑฐ๊ณ ใ ใ
ํด๋ผ์ด์ธํธ์์ correction data ๋ฐ์์ ์ค์ ๋ก ๊ต์ ํด์ฃผ๋ ์ฝ๋์. IsExpired ๋ณด๋ฉด ์๋ค์ํผ ์์ ํ ์ง๋ ์๊ฐ์ด ping ์ด์์ด์ด์ผ๋ง ๊ต์ ํด์ฃผ๋ ๊ฑฐ๊ณ .
344๋ฒ ์ค์์ ํ์ 4๋ฅผ ๊ณฑํด์ฃผ๋๊ฑด ๋ณ๊ฑฐ ์๋๊ณ ์๋ 4๋ก ๋๋ ์ ์ ์ฅ๋์ด์์ด์ ๋ค์ ๊ณฑํด์ค๊ฑฐ์.
356๋ฒ ์ค if๋ฌธ์ ์ด ์๋ค๊ฐ ๋ฉ์ถฐ์ Idle ์ํ์ผ ๋ Firing์ผ๋ก ๊ต์ ๋๋ฉด ๋ ๋๋ฅด์ง๋ ์์๋๋ฐ ์ด ๋ฐ์ฌ๋๋ ํ์์ด ์์ด์ ์์ธ์ฒ๋ฆฌ ํด์ค๊ฑฐ์. ๋ฐ๋๋ก ์๋ค๊ฐ ์ง๋ง๋๋ก ๋ฉ์ถ๋ ์ํฉ๋ ใ ใ
์๋ฐ ๋ฉํฐํ๋ ์ด ๊ฒ์๋ง ์๋์์ด๋ ๊ฐ๋ฐ ๊ธฐ๊ฐ 30%๋ก ์ค์์๊ฑฐ๋ค ในใ ์์ง ๊ฒ์๊ฐ์ง๋ ์์ ์์ค์ธ๋ฐ ์ด๋ ๊ฒ ํ๋ ๊ฑฐ ๋ณด๋ฉด ์๋ ์ด ๊น๊นํ๋ค
3์ผ ์ฐํด๋ฅผ ์ด๋ ๊ฒ ๋ ๋ ค๋ฒ๋ฆฌ๋๊น ๊ธฐ๋ถ์ด ์ฐธ ์์พํด
๋ ์ข ์งฑ์ธ๋ฏ...
์ถ์ฒ ~~
์ธ๋ถ์ด๋ค์ด๋์ ์์ค์ด ๋ค๋ฅธ๋ฐ? ใ
์ ์๋ง๋์๋ค์
์ด์ด๋ ์ ๋๋ฉ์ด์ ์์ ์?
ใ ใ ๋ ๋ชจ๋ธ๋ง์ด๋ ์ ๋๋ฉ์ดํ ๊ฐ์๊ฑด ํ๋๋ ํ ์ค๋ชฐ๋ผ์ - dc App
๋คํธ์ํฌ๋ ๋ญ์ฐ๋๊ฑฐ์์?
์ธ๋ฆฌ์ผ ๋ด์ฅ ๋ฆฌํ๋ฆฌ์ผ์ด์ ์์คํ
์ด๋ค์์ผ๋ก Fire ํ๋๋ฐ? ํด๋ผ์์ ServerFire ํธ์ถํ๊ณ ์๋ฒ์์ ๊ฐ ์๋ชจํด์ฃผ๊ณ RPC ๋๋ฉด ๋ณดํต์ ๋ฌธ์ ์์์ ์๋ฒ์ธก ํ๋กํผํฐ๊ฐ ์๋ฐ๊ผ๋๋ฐ ํด๋ผ์ชฝ ํ๋กํผํฐ๊ฐ ๋ฐ๋์ด์ ๋ฌด๊ฒฐ์ฑ๊ฒ์ฌ๋ฅผ ํ๋๊ฒฝ์ฐ๊ฐ ์ ์๊ธฐ๋๊ฑฐ์?
1. ์ด๋ค์์ผ๋ก Fire ํ๋๋ฐ?: ๋ฐ์ฌํ ๋๋ง๋ค RPC ํธ์ถํ๋ฉด ํธ๋ํฝ ๋ถํ ์ฌํ๊ณ , ์ฐ๋ฐ ์ด๊ธฐ RPM ์ด๊ธ๋จ. ๊ทธ๋์ state machine ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ state ๋ณ๊ฒฝ์ ์์ฒญํ๋๋ก ๊ตฌํํ์. ์ด์ ๋ฐ์ฌํ๋ ค๋ฉด Firing state๋ก ๋ณ๊ฒฝํ๋๋ก ํ๋ฉด ๋๋๊ฑฐ์ง. ๋ฉ์ถ๋ ค๋ฉด Idle state๋ก ๋ณ๊ฒฝํ๋๋ก ์์ฒญํ๋ฉด ๋๋๊ฑฐ๊ณ 2. ~~๊ฒฝ์ฐ๊ฐ ์ ์๊ธฐ๋๊ฑฐ์?: ์ฌ๋ฌ๊ฐ์ง ์๋๋ฐ, ๋ด๊ฐ ๊ฒฝํํ ๋ฌธ์ ํ๋ ๋งํด์ค๊ฒ. ๋ฌ๋ฆฌ๋ฉด์ ์ฌ์ฅ์ ์ ๋ชปํ๋๋ก ํด๋จ๋๋ฐ, ์ด๊ฒ ๋ฌ๋ฆฌ๊ธฐ๋ฅผ ์ทจ์ํ ์งํ์ ์ฌ์ฅ์ ์ ํ๋ฉด ํ๋ฅ ์ ์ผ๋ก ์ด๊ธ๋จ. ํจํท์ด ์์๋๋ก ๋์ฐฉํ๋ค๋ ๋ณด์ฅ์ด ์๊ธฐ ๋๋ฌธ์, ํด๋ผ์ด์ธํธ์์๋ ๋ฌ๋ฆฌ๊ธฐ ์ทจ์ ํ๊ณ ์ฌ์ฅ์ ํด์ ์ฑ๊ณต์ด๋ผ๊ณ ํ๋จํ ์ ์์ง๋ง, ์๋ฒ๋ ์์ง ๋ฌ๋ฆฌ๊ณ ์๋ ๊ฑธ๋ก ์๊ณ ์์ ์๋ ์๋๊ฑฐ์
์ค์ ๋ก๋ ๋ฌ๋ฆฌ๊ธฐ ๋ฉ์ถ ํ์๋ 0.15์ด ๋์์ ๋ฌ๋ฆฌ๊ธฐ/๋ฐ์ฌ/์ฌ๊ฒฉ๋ชจ๋ ๋ณ๊ฒฝ ๋ฑ๋ฑ ๋ค ๋ชปํ๊ฒ ๋์ด์๋๋ฐ, ๊ทธ๋์ ์ด๋ฐ ํ์์ด ๋ ์ฌํจ. RTT๊ฐ ํญ์ ์ผ์ ํ๊ฒ ์๋๋ผ์ ใ ใ
๊ทธ ์ธ์๋, ์บ๋ฆญํฐ ์์น๊ฐ ์๋ฒ์ ํด๋ผ๊ฐ ํญ์ ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ธฐ๋๋ฌธ์, ์ด๋ค ์ฅ์ ๋ฌผ์ ์์์ ์ง๋๊ฐ๋ค๊ฐ ๋น ์ ธ๋์ค์๋ง์ ์ผ์ด์ ๋ค๊ณ ํ ๋, ํด๋ผ๋ ๋น ์ ธ๋์๋ค๊ณ ๋ณด๊ณ ์ฑ๊ณตํ์ด๋, ์๋ฒ๋ ์์ง ๋น ์ ๋์ค๊ธฐ ์ง์ ์ด๋ผ ์คํจํ ์๋ ์๋๊ฑฐ์ง
Firing State ์๊ธฐํ๋๊ฑฐ๋ณด๋ฉด UT ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ์์ ํ๋๊ฑฐ ๊ฐ์๋ฐ ์ฌ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋๊ฑฐ์? state ๋ณ๊ฒฝ์์ ์๊ธฐ๋ ์ค์ฐจ๊ฐ์๊ฑด ์๊ฐ์ํด๋ดค๋๋ฐ ๊น๊ฒ ํ๋๊น ๋ณ ๋ฒ๊ทธ๊ฐ ๋ค ์๊ธฐ๋๋ณด๋ค ใทใท ์ง๊ธ ์ ๋ ๊ฒ ์ฃผ๊ธฐ๋ณ๋ก ์ ๋ฐ์ดํธํด์ฃผ๋๊ฒฝ์ฐ๋ ํธ๋ํฝ ๋ถํ๋ ๋ณ๋ก ์์ฌํจ?? 0.5์ด์ ํ๋ฒ์ฉ์ธ๋ฐ ์ด๊ฒ๋ ์๊ทผํ ๋ง์ด ์ธ๊ฑฐ๊ฐ์๋ฐ
ํ์คํ ๊ณ ๋์ด๋ผ ๋๊ธ์ด ๋นจ๋ผ์ ์ข๋ค ใ ใ ใ ์นดํ๋ณด๋ค ๋ซ๋ค
๋ฌด๊ธฐ ์ํ๋ 4๋ฐ์ดํธ, ์บ๋ฆญํฐ ๋ฌด๋ธ๋จผํธ ์ํ๋ 3๋ฐ์ดํธ๋๊น, ์ด๋น 14๋ฐ์ดํธ์ ๋๋ค. ๊ฑฐ๊ธฐ์ RPC ์ค๋ฒํค๋ ๋ํ๋ฉด ์ข ๋ ๋๋ ค๋. ์ด์ ๋๋ฉด ์ฌ์ค ๊ธฐ๋ณธ์ ์ธ ์บ๋ฆญํฐ ๋ฌด๋ธ๋จผํธ์ ์ํ ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ด๋ ์ ์ ์ ๋ ฅ ๋๊ธฐํ๊ฐ์๊ฑฐ์ ๋นํ๋ฉด ๋๊ฒ ์ ์๊ฑฐ๋ผ ๊ด์ฐฎ๋ค๊ณ ํ๋จํ์
๊ทธ๋ฆฌ๊ณ ๊ต์ RPC๋ unreliable๋ก ํด์ ๋ ๊ด์ฐฎ์๋ฏ ใ ใ
์ค์ฐ์ผ ๋ต๋ณ๊ฐ์ฌ๊ฐ์ฌ ๊ฐ๋ฐ ํ๋ด ํ
์ฑ๊ธ์ ํํ ๋ฆฌ์ผ์ด๋ ์ ๋ณด, ์์ ํ ํ๋ฆฟ๊ฐ์๊ฑฐ๋ ๋ง์๋ฐ ๋ฉํฐ์ชฝ, ํนํ ์ฝ์ต๊ฐ์ ์์๊ฐ ์๋๋ผ MMO๊ฐ์ ๋ค์๊ฐ๋๋ฉด ๋๋ ์ ๋ณด๊ฐ ์์ด์ ๋ด๊ฐ๋ณด๊ธฐ์ ์ฑ๊ธ๋ง๋ค๊ฑฐ ๋ฉํฐ๋ก ๋ง๋ค๊ธฐ ์์ํ๋ฉด ๊ฐ๋ฐ๊ธฐ๊ฐ์ด ๋ณธ๋ ๊ฑธ๋ฆด ๊ธฐ๊ฐ๋ณด๋ค ๋ช๋ฐฐ๋ ๋ ๊ฑธ๋ฆฌ๋๊ฑฐ๊ฐ์ ํนํ ๋ฉํฐ๋ ์ํฐ๋ ๋ฐ์์ ์ํด์ค์ผํด์ ๋ ๋์ด๋๊ฐ ์ฌ๋ผ๊ฐ๋๊ฑฐ๊ฐ๊ณ
๋ฉํฐ์๋๋ฉด 30ํผ์ผํธ๋ผ๊ณ ๋งํ๋๊ฑด ๋คํธ์ํน์ชฝ๋ ๊ฝค ์ง์์ด ์๊ฑฐ๋ ๊ฒฝํ์ด ์๊ธฐ๋๋ฌธ์ ๊ทธ๋ฐ๊ฒ์?
๋ญ ์ ์ ์ด๋ฏธ ์ธ๋ฆฌ์ผ๋ก ๋ฉํฐ TPS๊ฒ ๋ง๋ค์ด์ ์ถ์ํด๋ณธ ๊ฒฝํ ์๊ธดํ๋๊น
์ ๊ฒฝํ ์์ผ๋ฉด ์ด๋ณด์ธ ๋ค๋ฅธ ์ธ๋๊ฐ๋ฐ์์ ๋นํด ์์๊ฐ์ ๋ง๋ค๊ฒ ๋ค ๋คํธ์ํน,๋ฉํฐ๊ฒ๋ง๋๋ ์ง์์ ํ์์ด๋ ๊ทธ์ชฝ๊ฒ์ํ์ฌ์ ์ผํ๊ฑฐ๋ ํด์ ๋ฐฐ์? ๋ณดํต ์ด๋ค์์ผ๋ก ์๊ฒ๋จ? ์ ํ๋ธ๋ ๊ตฌ๊ธ๋ก ๋ค์ ธ๋ณด๊ธฐ์ ์ ๋ณด๊ฐ ์ ์ด๋ณด์ด๋๋ฐ
๊ฑ ํ๊ต์์ ๋ ํํ๋๋
๋ญ ๊ฑฐ์ ์ฝ์ง๋ก ์ป์ ์ง์๋ค์ด์ง. ๊ฐ์ฅ ๋์ ๋ ๊ฑด ์ธ๋ฆฌ์ผ ์์ค์ฝ๋? ์คํ์์ค์ธ ๋๋ถ์ ๋ชจ๋ฅด๋๊ฑฐ ์์ผ๋ฉด ๊ฑ ์์ค์ฝ๋ ๊น์ ๋ณด๋ฉด ๋จ ใ ใ