[๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด] ๊ฒŒ์ž„ ๋ฃจํ”„ ํŒจํ„ด(Game Loop Pattern)
ยท
๐Ÿ“ Computer Science/โœ Design Pattern
๊ฒŒ์ž„ ๋ฃจํ”„ ํŒจํ„ด(Game Loop Pattern) ๋จผ์ € ์š”์•ฝํ•˜์ž๋ฉด ๊ฒŒ์ž„ ๋ฃจํ”„ ํŒจํ„ด์ด๋ž€ ๊ฒŒ์ž„ ์ง„ํ–‰์„ ์œ ์ € ์ž…๋ ฅ, ํ”„๋กœ์„ธ์„œ ์†๋„์™€ ๋””์ปคํ”Œ๋ง ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋” ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด ์ž…๋ ฅ์ด ์—†์–ด๋„ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ž˜ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๋ง์ด๋‹ค. ์ด ํŒจํ„ด์€ ํŠน์ˆ˜ํ•˜์—ฌ ๊ฒŒ์ž„ ๋ถ„์•ผ ์™ธ์—์„œ๋Š” ์ฐพ์•„๋ณด๊ธฐ๋Š” ํž˜๋“ค์ง€๋งŒ ์‹ค์ œ๋กœ ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ๋‹ค. (์œ ๋‹ˆํ‹ฐ ๋“ฑ ๊ฒŒ์ž„ ์—”์ง„) ์˜ˆ์ „ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์งœ๊ณ  ๋‚˜์„œ์•ผ ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ๋ฆด ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ฆ‰, ์ค‘๊ฐ„์— ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค. ์ด๋Ÿฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐ์น˜ ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚˜๊ณ  ๋‚˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ˜๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ์ ์€ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ๋„ ์˜ค๋ž˜ ๊ฑธ๋ ค ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€ํ™”ํ˜• ํ”„๋กœ๊ทธ๋žจ์ด ๋‚˜์™”๋‹ค. ํ”Œ๋ ˆ์ด์–ด์˜ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์‘๋‹ตํ•˜๋ฉด..
[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 10์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ ์‚ฌ๋ก€ (2)
ยท
๐Ÿ“ Book/โœ Game Server
10์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ ์‚ฌ๋ก€ 4. ๋ชฌ์Šคํ„ฐ NPC ์ฒ˜๋ฆฌ์˜ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๋ณดํ†ต ์„œ๋ฒ„์—์„œ ํ•˜๋Š” ๋ชฌ์Šคํ„ฐ ์ฒ˜๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ๋ชฌ์Šคํ„ฐ์˜ ์›€์ง์ž„์„ ๋ธํƒ€ ํƒ€์ž„๋งŒํผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(์œ„์น˜ ์ด๋™, ๋ชจ์…˜ ๋ณ€ํ™”)ํ•œ๋‹ค. ์ผ์ • ์กฐ๊ฑด(์‹œ๊ฐ„)๋งˆ๋‹ค ๋ชฌ์Šคํ„ฐ์˜ ์›€์ง์ž„ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์‹œ์ž ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ธ๋‹ค. ๊ฐ€์‹œ๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ž€ ๋ชฌ์Šคํ„ฐ ์ฃผ๋ณ€์— ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด๋“ค์„ ๋งํ•œ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ชฌ์Šคํ„ฐ์™€ ์ƒํ˜ธ ์ž‘์šฉ(๊ณต๊ฒฉ)ํ•  ๊ฒฝ์šฐ, ์ด์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋ชฌ์Šคํ„ฐ ๋ฐ ํ”Œ๋ ˆ์ด์–ด ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค. ํ•œํŽธ ์„ฑ๋Šฅ์ƒ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ฒƒ๋“ค๋„ ์žˆ๋‹ค. ๋ณดํ†ต ๋ชฌ์Šคํ„ฐ ์ˆ˜๊ฐ€ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๋ณด๋‹ค ๋งŽ๋‹ค. ๊ธธ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ ๋ชฌ์Šคํ„ฐ ์›€์ง์ž„์„ ์œ„ํ•œ ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งŽ์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋ชฌ์Šคํ„ฐ์˜ ์—ฐ์‚ฐ ๋กœ์ง์—๋Š” ๊ฒŒ์ž„ ๊ธฐํš์ž์˜ ์•„์ด๋””์–ด๊ฐ€ ๋งŽ์ด ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ..
[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 10์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ ์‚ฌ๋ก€ (1)
ยท
๐Ÿ“ Book/โœ Game Server
10์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ ์‚ฌ๋ก€ ๋Œ€ํ‘œ์ ์ธ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จํ•ด์„œ ๋ถ„์‚ฐ ์„œ๋ฒ„ ์„ค๊ณ„ ์œ ํ˜•์„ ์‚ดํŽด๋ณด๊ณ  ๊ฒŒ์ž„ ์žฅ๋ฅด๋ณ„๋กœ ๋ถ„์‚ฐ ์„œ๋ฒ„ ์„ค๊ณ„ ์œ ํ˜•๋„ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. 1. ๋กœ๊ทธ์˜จ ์ฒ˜๋ฆฌ์˜ ๋ถ„์‚ฐ ๋ณดํ†ต ๋กœ๊ทธ์˜จ ์ฒ˜๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ๋ณด๋‚ธ๋‹ค. ๋กœ๊ทธ์˜จ ๋‹ด๋‹น ์„œ๋ฒ„(์ธ์ฆ ์„œ๋ฒ„)์—์„œ ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ๋ณตํ˜ธํ™”ํ•œ๋‹ค. ์„œ๋ฒ„๋Š” ๋ณตํ˜ธํ™”๋œ ๋ฉ”์‹œ์ง€์—์„œ ID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ตฌํ•˜๊ณ  DB์— ์งˆ์˜๋ฅผ ๋˜์ง„๋‹ค. DB์—์„œ ์งˆ์˜๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ์‘๋‹ต์„ ์„œ๋ฒ„์— ํšŒ์‹ ํ•œ๋‹ค. ์„œ๋ฒ„๋Š” ์ด๋ฅผ ๋ฐ›์•„ ๋กœ๊ทธ์ธ ์„ฑ๊ณต ํ˜น์€ ์‹คํŒจ๋ฅผ ํŒ๋‹จํ•œ๋‹ค. ๋กœ๊ทธ์˜จ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ธ๋‹ค. ๋กœ๊ทธ์˜จ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋‹จ์ผ ์„œ๋ฒ„๋Š” ์ธ์ฆ ์„œ๋ฒ„ ํ•œ ๋Œ€์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 1๊ฐœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์€ ์–ด๋””์ผ๊นŒ? ๋™์‹œ..
[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 9์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ (2)
ยท
๐Ÿ“ Book/โœ Game Server
9์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ 5. ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ (์ˆ˜ํ‰ ๋ถ„์‚ฐ) vs ๊ธฐ๋Šฅ์  ๋ถ„์‚ฐ (์ˆ˜์ง ๋ถ„์‚ฐ) ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ์ด๋ž€ ํ•œ ๋จธ์‹ ์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋จธ์‹ ์ด ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ๊ฐ ์„œ๋ฒ„๋Š” ๋ชจ๋‘ ๋˜‘๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ผ์„ ํ•œ๋‹ค. ๊ธฐ๋Šฅ์  ๋ถ„์‚ฐ์€ ํ•œ ๋จธ์‹ ์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์„ธ๋ถ„ํ™”ํ•ด์„œ ์—ฌ๋Ÿฌ ๋จธ์‹ ์ด ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์›๋ฆฌ๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋„ ๋น„์Šทํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ๋‹จ์œ„ ๋ถ„์‚ฐ(์ˆ˜ํ‰ ํŒŒํ‹ฐ์…”๋‹)์ด๋ž€ ํ…Œ์ด๋ธ” 1๊ฐœ๋ฅผ ํ…Œ์ด๋ธ” ์•ˆ์˜ ํ‚ค ํ•„๋“œ ๋‹จ์œ„๋กœ ๋ถ„๋ฐฐํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋Šฅ ๋‹จ์œ„ ๋ถ„์‚ฐ(์ˆ˜์ง ํŒŒํ‹ฐ์…”๋‹)์ด๋ž€ ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ถ„์‚ฐ..
[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 9์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ (1)
ยท
๐Ÿ“ Book/โœ Game Server
9์žฅ ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ตฌ์กฐ ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ, ์ˆ˜์ง ํ™•์žฅ, ์ˆ˜ํ‰ ํ™•์žฅ, ์ƒค๋“œ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ๊ณ ๊ฐ€์šฉ์„ฑ ๋“ฑ ์ด๋Ÿฌํ•œ ์šฉ์–ด๋“ค์ด ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์•ผ๊ฐ€ ๋ฐ”๋กœ ๋ถ„์‚ฐ ์„œ๋ฒ„์ด๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์—์„œ ๋ฐ˜๋“œ์‹œ ๋‹ค๋ฃจ๋Š” ์ฃผ์ œ๋กœ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„๋ฅผ ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๊ฒŒ์ž„ ์„œ๋น„์Šค๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 1. ์ˆ˜์ง ํ™•์žฅ๊ณผ ์ˆ˜ํ‰ ํ™•์žฅ ๊ฒŒ์ž„ ์„œ๋ฒ„์— ํ’ˆ์งˆ์„ ๋…ผํ•  ๋•Œ ๋‚˜์˜ค๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋กœ, ํ™•์žฅ์„ฑ์ด๋ž€ ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋”๋ผ๋„ ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ตœ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๋ฌด์ œํ•œ์ด์–ด๋„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค. ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋„ ์„œ๋ฒ„ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋ณดํ†ต ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์Šค์ผ€์ผ ์—… = ์ˆ˜์ง ํ•™์žฅ: ์„œ๋ฒ„์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋” ์ข‹์€ ๊ฒƒ์œผ๋กœ ๊ต์ฒดํ•˜์—ฌ ์ฒ˜๋ฆฌ๋Ÿ‰..
[C++] ๋ˆ„์  ํ•ฉ(Prefix sum)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
๋ˆ„์  ํ•ฉ(Prefix sum) ๊ณ„์‚ฐ ์–‘์„ ์ค„์—ฌ์„œ ์‹œ๊ฐ„์ ์œผ๋กœ ๋งŽ์€ ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. 1. ๊ธฐ๋ณธ ์›๋ฆฌ 1) 1์ฐจ์› ๋ฐฐ์—ด 1์ฐจ์› ๋ฐฐ์—ด์—์„œ i๋ฒˆ์งธ๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ k๋ฅผ ๋”ํ•œ ๊ฒƒ์„ ๊ธฐ๋กํ•˜๋ ค๋ฉด, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ i๋ฒˆ์งธ ์ธ๋ฑ์Šค์— k๋ฅผ ๋”ํ•˜๊ณ  j+1๋ฒˆ์งธ ์ธ๋ฑ์Šค์— k๋ฅผ ๋นผ๋ฉด ๋œ๋‹ค. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ๊ธฐ์กด ๋ฐฐ์—ด ํฌ๊ธฐ๋ณด๋‹ค ํ•˜๋‚˜ ์ด์ƒ ํฌ๊ฒŒ ๋งŒ๋“ ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๊ธฐ๊ฐ€ 5์ธ ๋ฐฐ์—ด์—์„œ 0๋ฒˆ์งธ๋ถ€ํ„ฐ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ N์„ ๋นผ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ˆ„์  ํ•ฉ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. { -N, 0, 0, N, 0, 0 } ์œ„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ 0๋ฒˆ์งธ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๊นŒ์ง€ ๋ˆ„์  ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ถ”๊ฐ€๋กœ 1๋ฒˆ์งธ๋ถ€ํ„ฐ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ M์„ ๋”ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ˆ„์  ํ•ฉ ๋ฐฐ์—ด์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค. { -N, -M, 0, N, M..