[TIL] 250730

๊น€์„ธํฌยท2025๋…„ 7์›” 30์ผ

โœ๏ธToday I Learned

๐Ÿ“… 2025-07-30

  • ํŒ€ํ”Œ - AI ์Šคํฌ๋„ˆ ๊ตฌํ˜„ ์™„๋ฃŒ
  • Gameplay Framework - ์—ญํ• ๊ณผ ์ฑ…์ž„ ๋ถ„๋ฆฌ

Gameplay Framework

4๋Œ€ ํด๋ž˜์Šค

GameMode
- ๊ฒŒ์ž„์˜ ์‹ฌํŒ๊ด€ (๊ทœ์น™, ํ๋ฆ„ ์ œ์–ด, ์Šน๋ถ€ ํŒ์ •) -> ๊ฒฐ์ •
GameState
- ๊ฒŒ์ž„ ์ƒํ™ฉํŒ (๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ณด๋Š” ๊ณตํ†ต ์ •๋ณด) -> ์ •๋ณด ์ €์žฅ
PlayerState
- ๊ฐœ์ธ ์ˆ˜์ฒฉ (๊ฐ ํ”Œ๋ ˆ์ด์–ด๋งŒ์˜ ์ •๋ณด) -> ๊ฐœ์ธ ๋ฐ์ดํ„ฐ
GameInstance
- ๊ฒŒ์ž„ ๊ด€๋ฆฌ์ž (์ „์ฒด ์ƒ๋ช…์ฃผ๊ธฐ, ๋ ˆ๋ฒจ ๊ฐ„ ๋ฐ์ดํ„ฐ) -> ์ „์ฒด ๊ด€๋ฆฌ

GameMode

GameModeBase
๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ ๋‹จ์ˆœํ•œ ๊ฒŒ์ž„ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ๋งŒ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ƒ๋ช…์ฃผ๊ธฐ๋งŒ ๊ด€๋ฆฌํ•œ๋‹ค.
GameStateBase ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
GameState ์“ฐ๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

GameMode
์™„์ „ํ•œ ๋งค์น˜ ์‹œ์Šคํ…œ์ด๋‹ค. EMatchState๋ผ๋Š” ๋งค์น˜ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ๊ตฌํ˜„๋˜์–ด์žˆ๋‹ค. ์ž๋™ ๋ฆฌ์Šคํฐ ์‹œ์Šคํ…œ๊ณผ ๊ด€์ „์ž ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค.
GameState์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
GameStateBase ์“ฐ๋ฉด ๊ธฐ๋Šฅ์ด ๋ˆ„๋ฝ๋œ๋‹ค.

๊ฒฐ์ •๋งŒ ๋‚ด๋ฆฐ๋‹ค. ์ •๋ณด๋Š” ์ง์ ‘ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ •๋ณด๋Š” GameState์—๊ฒŒ ๋„˜๊ธด๋‹ค. ์ •๋ณด ๊ด€๋ฆฌ ๋ฐ ์ „๊ด‘ํŒ ์—ญํ• ์€ GameState.

GameState

์ •๋ณด ์ œ๊ณต์ž: ์ „๊ด‘ํŒ์ฒ˜๋Ÿผ ์ •๋ณด๋งŒ ํ‘œ์‹œํ•œ๋‹ค.
์ฝ๊ธฐ ์ „์šฉ: UI์—์„œ ์ฐธ์กฐ๋งŒ, ์ง์ ‘ ์ˆ˜์ • ๋ถˆ๊ฐ€. ํ”Œ๋ ˆ์ด์–ด๋‚˜ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ ‘๊ทผํ•ด์„œ ์ˆ˜์ •ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
์ง์ ‘ ๊ฒฐ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฉ€ํ‹ฐ ํ”Œ๋ ˆ์ด์–ด์ผ๋•Œ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•
1. GameMode๊ฐ€ ์ƒํƒœ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ GameState์— ์•Œ๋ ค์ค€๋‹ค.
2. GameState๋Š” ๊ทธ ์ƒํƒค๋ฅด ์ „ ํด๋ผ์ด์–ธํŠธ์— ์ž๋™์œผ๋กœ ๋ณต์ œํ•œ๋‹ค.
3. UI๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ GameState๋ฅผ ๋ณด๊ณ  ํ‘œ์‹œ๋งŒํ•œ๋‹ค. GameMode์—์„œ ๊ณ„์‚ฐํ•˜๊ณ  GameState์—์„œ ํ‘œ์‹œํ•œ๊ฑธ UI๊ฐ€ ๋“ค๊ณ ๊ฐ€์„œ ์ถœ๋ ฅ. UI๊ฐ€ GameMode์—์„œ ์ง์ ‘ ๊ฐ’์„ ๋“ค๊ณ ๊ฐ€์„œ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

PlayerState

์ƒ๋ช…์ฃผ๊ธฐ ํŠน์ง•
๋ ˆ๋ฒจ ์ „ํ™˜์‹œ ์œ ์ง€๋œ๋‹ค.
GameState, GameMode, Pawn ๋“ฑ ์€ ๋ ˆ๋ฒจ์ „ํ™˜์‹œ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

์†Œ์œ ๊ถŒ ๊ตฌ์กฐ
GameMode(์„œ๋ฒ„)
- PlayerController(๊ฐ ํ”Œ๋ ˆ์ด์–ด๋งˆ๋‹ค ์กด์žฌ, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘ ์กด์žฌ)
- PlayerState(๊ฐ๊ฐ ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘ ์กด์žฌ)

GameInstance

๊ฒŒ์ž„์˜ ์ตœ๊ณ  ๊ด€๋ฆฌ์ž
ํŠน์ง•
๊ฒŒ์ž„ ์ „์ฒด ์ƒ๋ช…์ฃผ๊ธฐ: ๊ฒŒ์ž„ ์‹œ์ž‘๋ถ€ํ„ฐ ์ข…๋ฃŒ๊นŒ์ง€ ์‚ด์•„์žˆ๋‹ค.
๋ ˆ๋ฒจ ๊ฐ„ ๋ฐ์ดํ„ฐ ์œ ์ง€: ๋ ˆ๋ฒจ์ด ๋ฐ”๋€Œ์–ด๋„ ์œ ์ง€๋œ๋‹ค.
๋ ˆ๋ฒจ ์ „ํ™˜ ๊ถŒํ•œ: GameInstance๋งŒ ๋ ˆ๋ฒจ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

GameInstance๋Š” ์ผ๋ฐ˜ ์•กํ„ฐ์™€ ๋‹ฌ๋ผ ์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ์ด ์•ˆ๋œ๋‹ค. ์„œ๋ฒ„์ „์šฉ์ด๋ผ ๋ฉ€ํ‹ฐ ์ง€์›์ด ์•ˆ๋œ๋‹ค.
GameState๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋ณต์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ๋ฉ€ํ‹ฐ ์ง€์›์ด ๋œ๋‹ค.

๊ฒŒ์ž„๋ชจ๋“œ ์ ์ˆ˜ ๊ณ„์‚ฐ
๊ฒŒ์ž„์Šคํ…Œ์ดํŠธ ํ˜„์žฌ ์ ์ˆ˜
ํ”Œ๋ ˆ์ด์–ด ์Šคํ…Œ์ดํŠธ ๊ฐ ํ”Œ๋ ˆ์ด์–ด์˜ ์ ์ˆ˜
๊ฒŒ์ž„์ธ์Šคํ„ด์Šค ์ตœ์ข…์ ์ˆ˜ ๋ˆ„์ 

โ—Framework ๋กœ๋”ฉ ์ˆœ์„œ

๊ฒŒ์ž„ ์‹œ์ž‘๋ถ€ํ„ฐ ๋ ˆ๋ฒจ ๋กœ๋”ฉ๊นŒ์ง€ ์™„์ „ํ•œ ์ˆœ์„œ

๐ŸŽฎ ์—”์ง„ ๋ถ€ํŒ… ๋‹จ๊ณ„
1. ์—”์ง„ ์ดˆ๊ธฐํ™” (UEngine ์ƒ์„ฑ)
2. GameInstance::Init() โญ ๊ฐ€์žฅ ๋จผ์ €!
   - ์ด ์‹œ์ : World ์—†์Œ, GameMode ์—†์Œ
   - ๊ธ€๋กœ๋ฒŒ ์„ค์ •, ์„œ๋ธŒ์‹œ์Šคํ…œ ์ดˆ๊ธฐํ™”๋งŒ ๊ฐ€๋Šฅ

๐ŸŒ ์ฒซ ๋ ˆ๋ฒจ ๋กœ๋”ฉ ๋‹จ๊ณ„
3. World ์ƒ์„ฑ
4. GameMode ์ƒ์„ฑ โ†’ PostInitializeComponents()
5. GameState ์ƒ์„ฑ โ†’ PostInitializeComponents()
6. PlayerController ์ƒ์„ฑ
7. PlayerState ์ƒ์„ฑ
8. Pawn ์ƒ์„ฑ
9. ๋ชจ๋“  BeginPlay() ํ˜ธ์ถœ (์ˆœ์„œ ๋ณด์žฅ ์•ˆ๋จ!)

๐Ÿ”„ ๋ ˆ๋ฒจ ์ „ํ™˜ ์‹œ
10. ๊ธฐ์กด World ํŒŒ๊ดด (GameMode, GameState ์‚ฌ๋ผ์ง)
11. PlayerState๋Š” ์ƒˆ World๋กœ ์ด์ฃผ โญ
12. 3~9๋ฒˆ ๊ณผ์ • ๋ฐ˜๋ณต

๊ฒŒ์ž„ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์•„์ดํ…œ ์ˆ˜์ง‘
    -> ํ”Œ๋ ˆ์ด์–ด ์Šคํ…Œ์ดํŠธ์— ์ ์ˆ˜ ์ „๋‹ฌ
  2. ํ”Œ๋ ˆ์ด์–ด ์Šคํ…Œ์ดํŠธ์—์„œ ์ ์ˆ˜ ์—…๋ฐ์ดํŠธ
    -> ๊ฒŒ์ž„๋ชจ๋“œ์— ์Šน๋ฆฌ ์ฒดํฌ ์š”์ฒญ
  3. ๊ฒŒ์ž„๋ชจ๋“œ์—์„œ ์Šน๋ฆฌ์กฐ๊ฑด ํ™•์ธ
    -> ๊ฒŒ์ž„์ธ์Šคํ„ด์Šค์— ๋ ˆ๋ฒจ ์™„๋ฃŒ ๋ณด๊ณ 
  4. ๊ฒŒ์ž„์ธ์Šคํ„ด์Šค์—์„œ ์ตœ์ข… ์ฒ˜๋ฆฌ
    -> ๊ฒŒ์ž„์ธ์Šคํ„ด์Šค์—์„œ ๋‹ค์Œ ๋ ˆ๋ฒจ ๋กœ๋“œ

๐Ÿ’ก ๋А๋‚€ ์  (What I Felt)

๊ทธ๋™์•ˆ ๊ฐ๊ฐ์˜ ์—ญํ• ์ด ์ œ๋Œ€๋กœ ์ดํ•ด๊ฐ€ ์•ˆ๋์—ˆ๋Š”๋ฐ ์˜ค๋Š˜ ๊ฐ•์˜๊ฐ€ ๋„์›€์ด ๋งŽ์ด ๋๋‹ค. ๋ฉ€ํ‹ฐ ํ”Œ๋ ˆ์ด ๊ตฌํ˜„ํ•˜๋‹ค๋ณด๋ฉด ๋‹ค์‹œ ๋ฒฝ์„ ๋А๋‚„ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์–ด๋””์„œ ์ฐพ์•„๋ด์•ผํ• ์ง€ ๊ฐ์„ ์žก์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.


์ถœ์ฒ˜: ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

0๊ฐœ์˜ ๋Œ“๊ธ€