Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜
BEST

[C++๊ณผ ์–ธ๋ฆฌ์–ผ๋กœ ๋งŒ๋“œ๋Š” MMORPG ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ] Part4: ๊ฒŒ์ž„ ์„œ๋ฒ„

๋„คํŠธ์›Œํฌ/๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ/์šด์˜์ฒด์ œ ๋“ฑ ํ•ต์‹ฌ ์ „๊ณต ์ง€์‹์„ ๊ณต๋ถ€ํ•˜๊ณ  ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ MMORPG ๊ธฐ์ˆ ์„ ํ•™์Šตํ•˜๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์‹ ์ž… ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•Œ์•„์•ผ ์ „๋ฐ˜์ ์ธ ์ง€์‹์„ ๋ชจ๋‘ ํ›‘์–ด๋ณด๊ธฐ์— ์–ด๋Š ํ”„๋กœ์ ํŠธ์— ํ•ฉ๋ฅ˜ํ•˜๋”๋ผ๋„ ๋‹นํ™ฉํ•˜์ง€ ์•Š๊ณ  ์ ์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์Œ“๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Thumbnail
Rookiss๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

[Rookiss ์˜ค๋งˆ์นด์„ธ] 3~4์›” ๋ผ์ด๋ธŒ ๊ฐ•์˜ ์ผ์ • (UE5 C++ 3ํšŒ์ฐจ vs C# Server + M1 Live)

์•ˆ๋…•ํ•˜์„ธ์š”, Rookiss ๋ผ์ด๋ธŒ ์ผ์ •์ž…๋‹ˆ๋‹ค.

์ผ์ • : 3~4์›”
๋น„์šฉ : 26.4๋งŒ์›

3์›”๋ถ€ํ„ฐ ์ œ๊ฐ€ ์ง์ ‘ ์ง„ํ–‰ํ•˜๋Š” ๋ผ์ด๋ธŒ ๊ฐ•์˜๋ฅผ ๊ฐœ์„คํ•˜๋ฉฐ,
์ผ์ฃผ์ผ์— 4๋ฒˆ(ํ™”/๋ชฉ/๊ธˆ/์ผ) ์ง„ํ–‰ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.
(ํ™”/๋ชฉ)์€ ์–ธ๋ฆฌ์–ผ C++ ๊ฐ•์˜์ด๊ณ ,
(๊ธˆ/์ผ)์€ C#์„œ๋ฒ„ ๋ฐ M1 Live ์œ ๋‹ˆํ‹ฐ ๊ฐ•์˜๊ฐ€ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š” : Live ๊ฐ•์˜๋Š” ๋ณต์Šต์„ ์œ„ํ•œ ์ž„์‹œ ๊ฐ•์˜๋ฅผ ํŒŒ์„œ 3๊ฐœ์›”๊ฐ„ ์ œ๊ณต๋˜๋ฉฐ,
3๊ฐœ์›” ํ›„์— ์ž„์‹œ ๊ฐ•์˜๋Š” ์‚ญ์ œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
Live ๊ฐ•์˜๋Š” ์ปค๋ฆฌํ˜๋Ÿผ ํ…Œ์ŠคํŠธ ๋ฐ ๊ทธ๋ฃน ๊ณผ์™ธ ๋ชฉ์ ์ด ๊ฐ•ํ•œ๋ฐ
์ด๋ฅผ ์˜จ๋ผ์ธ ๊ฐ•์˜๋กœ ๋งค ๋ฒˆ ์ถœ์‹œํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—,
์•ž์œผ๋กœ๋Š” Live ๊ฐ•์˜์™€ ์˜จ๋ผ์ธ ๊ฐ•์˜๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์ง„ํ–‰ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.
๊ทธ ๋Œ€์‹  R&D ์ค‘์ธ ๋‹ค์ˆ˜์˜ ๋ผ์ด๋ธŒ ๊ฐ•์˜๋ฅผ ๋น ๋ฅด๊ฒŒ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ ๋ณธ์—ฐ์˜ ํ˜œํƒ์„ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ (ํ™”/๋ชฉ) or (๊ธˆ/์ผ) ๊ตฌ๋ถ„ํ•ด์„œ ์‹ ์ฒญ์„ ๋ฐ›์ง€๋งŒ,
์‹ค์ œ๋กœ ๊ต์ฐจ๋กœ ๋ผ์ด๋ธŒ ์ˆ˜๊ฐ•์€ ๊ฐ€๋Šฅํ•˜๋ฉฐ
์ด๊ฒƒ์ €๊ฒƒ ๊ณต๋ถ€ํ•˜๋Š” ์„ ๋น„๊ฐ™์€ ๋งˆ์Œ์œผ๋กœ 3~4์›”์„ ๋ณด๋‚ด์‹ค ๋ถ„๋“ค์€
์–‘์ชฝ ๋‹ค ์ฐธ์—ฌํ•˜์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

(๋‹ค๋งŒ ์ผ์š”์ผ ๋ฐ˜์€ ์ด๋ฏธ ์ง„ํ–‰์ค‘์ด๋ฏ€๋กœ, ๊ธฐ์กด M1 Live ์ˆ˜๊ฐ•์ƒ๋งŒ ์ฐธ์—ฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค)

์‹ ์ฒญํ•˜์‹ค ๋•Œ ํ™”์š”์ผ(UE5 C++) or ์ผ์š”์ผ(Unity & Server)
ํฌ๋งํ•˜์‹œ๋Š” ๊ฐ•์˜๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์‹ ์ฒญ์ฃผ์„ธ์š”. (์ถœ์ฒต ๊ด€๋ฆฌ ์šฉ๋„)
[Rookiss ์˜ค๋งˆ์นด์„ธ] ๋ผ์ด๋ธŒ ๊ฐ•์˜๋“ค์€ ๋งค ๋‹ฌ๋งˆ๋‹ค ๋ชจ์ง‘์„ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ด์ง€๋งŒ,

์ด๋ฒˆ ๋‹ฌ์€ ์ฒซ ์‹œ๋„์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฃŒ๋กœ +1๋‹ฌ์„ ์ถ”๊ฐ€ํ•ด์„œ
3~4์›”์„ ๋ฌถ์–ด์„œ ํ•œ ๋ฒˆ์— ์ˆ˜์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


1) UE5 C++ 3ํšŒ์ฐจ (3์›” 5์ผ ๊ฐœ๊ฐ•. 3์›” ๋งค์ฃผ ํ™”/๋ชฉ 8pm~11pm + @)

ํ™”/๋ชฉ ๋ฐ˜์€ ์–ธ๋ฆฌ์–ผ ์ปค๋ฆฌํ˜๋Ÿผ ๊ด€๋ จ์ด๋ฉฐ,
์•ž์œผ๋กœ ์ง„ํ–‰๋  Haker๋‹˜์˜ UE5 ์†Œ์Šค์ฝ”๋“œ ๋ถ„์„
๋ฐ ํ•˜๋ฐ˜๊ธฐ์— ์˜ˆ์ •๋œ Dedicated-Server Lab๊ณผ
์‹œ๋„ˆ์ง€๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

C++ ์ปค๋ฆฌํ˜๋Ÿผ ์—ฐ๊ตฌ๋ฅผ ์—ฌ๋Ÿฌ ํšŒ์ฐจ์— ๊ฑฐ์ณ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ,
ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ 3ํšŒ์ฐจ ์ฐธ์—ฌ์ž๋ฅผ ๋ชจ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ 3์›” 5์ผ๋ถ€ํ„ฐ ํ™”/๋ชฉ (10ํšŒx3์‹œ๊ฐ„)์œผ๋กœ ์žก๊ณ  ์žˆ์ง€๋งŒ,
์‹œ๊ฐ„์— ๋งž์ถฐ์„œ ๊ธ‰ํžˆ ์ง„ํ–‰ํ•  ์ƒ๊ฐ์€ ์—†๊ณ  ๋˜๋ฐ•๋˜๋ฐ• ์ฒœ์ฒœํžˆ
์ „์ฒด ๋‚ด์šฉ์„ ๋‹ค ๋๋‚ผ๋•Œ๊นŒ์ง€ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—
์—ฌ์œ ์žˆ๊ฒŒ 4์›”๊นŒ์ง€ ๋น„์›Œ์ฃผ์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

3ํšŒ์ฐจ๋Š” ๊ธฐ์กด ํšŒ์ฐจ์™€ ๋‹ค๋ฅด๊ฒŒ ํ•œ ๋ฒˆ์— RPG ๊ฒŒ์ž„์„ ์™„์„ฑํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ
C++ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— C++ ๊ฒฝํ—˜์ด ์—†์œผ์‹œ๋ฉด ์‹ ์ฒญํ•˜์‹œ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
3ํšŒ์ฐจ์—์„œ๋Š” ์ œ๊ฐ€ ๋งˆ์ผ“์—์„œ ๊ตฌํ•œ ์—ฌ๋Ÿฌ ์• ์…‹๋“ค๋กœ ์ง„ํ–‰๋˜์ง€๋งŒ,
์ด๋ฅผ ํ•œ ํšŒ์ฐจ ๋‹ค์‹œ ์ง„ํ–‰ํ•ด์„œ ์ตœ์ข…์ ์œผ๋กœ๋Š” 4ํšŒ์ฐจ์—์„œ๋Š”
์ €ํฌ ํŒ€์—์„œ ์ง์ ‘ ๋งŒ๋“  ์—์…‹๋“ค๋กœ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
๋น„๊ณ 1. (์˜จ๋ผ์ธ ๊ฐ•์˜ ๋˜ํ•œ ์ตœ์ข… 4ํšŒ์ฐจ๋กœ ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค)
๋น„๊ณ 2. (4ํšŒ์ฐจ ๋ผ์ด๋ธŒ๋กœ ์ง„ํ–‰์„ ํ• ์ง€๋Š” ๋ฏธ์ •์ž…๋‹ˆ๋‹ค)

๋Ÿฌํ”„ํ•œ ์ปค๋ฆฌํ˜๋Ÿผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚ด์šฉ์€ ๊ธฐ์กด ํšŒ์ฐจ์™€ ๋น„์Šทํ•˜์ง€๋งŒ,
๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๊ณผ์ •์ด ์ค‘๊ฐ„ ์ค‘๊ฐ„ ๋งŽ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
Dark&Darker์—์„œ ๋‚˜์˜ค๋Š” ๊ฐ์ข… ์ „ํˆฌ ์‹œ์Šคํ…œ,
์ธ๋ฒคํ† ๋ฆฌ, ์ธํ„ฐ๋ž™์…˜ ๋ฐ ๊ฒŒ์ž„ ๊ตฌ์กฐ ์ œ์ž‘ ๋“ฑ์„ ์ƒˆ๋กœ ๋„ฃ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Section 0. ํ™˜๊ฒฝ์„ค์ •
- ์–ธ๋ฆฌ์–ผ ์„ค์น˜
- ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ ์‹ค์Šต

Section 1. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ
- ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์—ฐ์Šต
- ๋ณ€์ˆ˜, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ํ•จ์ˆ˜, ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค

Section 2. C++ ๊ธฐ๋ฐ˜์˜ ์ž‘์—…
- C++ ๊ธฐ๋ฐ˜์˜ ์ž‘์—… ๋ฐฉ์‹ ์ดํ•ด (UBT)
- ํŒŒ์ผ ์ถ”๊ฐ€/์‚ญ์ œ ๋ฐ ํด๋” ๊ด€๋ฆฌ
- ๋กœ๊ทธ ์ถ”๊ฐ€ ๋ฐ ๋””๋ฒ„๊น…
- Module, Plugin
- Subsystem

Section 3. Object
- ๋ฆฌํ”Œ๋ ‰์…˜๊ณผ GC์— ๋Œ€ํ•œ ์ดํ•ด (UHT)
- UCLASS์™€ Metadata
- Gameplay Framework
- ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ C++ ํ˜ผํ•ฉ ์ž‘์—…

Section 4. Actor
- Actor ๊ธฐ๋ณธ (BeginPlay, TickEvent, SpawnActor, SetLifeSpan, DestroyActor)
- Vector์™€ ์ขŒํ‘œ๊ณ„
- ์‹ค์Šต : ์ด๋™, ๋”ฐ๋ผ๊ฐ€๊ธฐ ๋“ฑ
- Local vs World
- ActorComponent, SceneComponent
- ์‹ค์Šต : ๊ณ„์ธต ๊ตฌ์กฐ ๋งŒ๋“ค๊ธฐ

Section 5. Pawn
- Pawn ๊ธฐ๋ณธ
- Enhanced Input
- PlayerController
- ControlRotation
- SpringArm / Camera

Section 6. Character
- Character ๊ธฐ๋ณธ
- CharacterMovement

Section 7. ๋ฐ์ดํ„ฐ
- ๋ฐ์ดํ„ฐ์™€ DataAsset
- AssetManager
- ์‹ค์Šต : ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ

Section 8. ์• ๋‹ˆ๋ฉ”์ด์…˜
- ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ฐœ๋…
- ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€
- ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ชฝํƒ€์ฃผ
- ์—์ž„ ์˜คํ”„์…‹
- ์†Œ์ผ“๊ณผ ๋ฌด๊ธฐ ์žฅ์ฐฉ
- ์‹ค์Šต : ์ด๋™, ๊ณต๊ฒฉ ๋“ฑ

Section 9. ์ถฉ๋Œ
- ์ถฉ๋Œ ๊ธฐ์ดˆ
- Preset
- Trace
- ๋ธ๋ ˆ๊ฒŒ์ดํŠธ
- ์‹ค์Šต : ํ”ผ๊ฒฉ ํŒ์ •

Section 10. UI
- UMG ๊ธฐ์ดˆ
- ์‹ค์Šต : GameHUD
- ์‹ค์Šต : ์ธ๋ฒคํ† ๋ฆฌ

Section 11. ์ธ๊ณต์ง€๋Šฅ
- ๋งต๊ณผ ๊ธธ์ฐพ๊ธฐ
- Behavior Tree
- Blackboard
- Task
- ์‹ค์Šต : ๋ชฌ์Šคํ„ฐ AI

Section 12. GameAbilitySystem
- GAS ๊ฐœ๋ก 
- GameplayTag
- GameplayAttribute
- GameplayAbility
- GameplayEffect (+GameplayCue)
- ์‹ค์Šต : ๊ฐ์ข… ์Šคํ‚ฌ ๊ตฌํ˜„

Section 13. ๊ฐ์ข… ๊ฒŒ์ž„ ์ปจํ…์ธ  ๊ตฌํ˜„

Extra 1. ๋ถ€๋ก (๋จธํƒœ๋ฆฌ์–ผ)
- ๋จธํƒœ๋ฆฌ์–ผ๊ณผ ๋จธํƒœ๋ฆฌ์–ผ ์ธ์Šคํ„ด์Šค
- ์‹ค์Šต : ์•„์›ƒ๋ผ์ธ ์‰์ด๋”

2) ์œ ๋‹ˆํ‹ฐ & ๊ฒŒ์ž„์„œ๋ฒ„ ์ปค๋ฆฌํ˜๋Ÿผ (3์›”~4์›”)
MMO Lab #1๊ธฐ Live (3์›” 3์ผ ๊ฐœ๊ฐ•. 3์›”~4์›” ๋งค์ฃผ ์ผ์š”์ผ 8pm~11pm)
C# Server Live (3์›” 8์ผ ๊ฐœ๊ฐ•. 3์›”~4์›” ๋งค์ฃผ ๊ธˆ์š”์ผ 8pm~11pm)

MMO Lab #1๊ธฐ ์ˆ˜๊ฐ•์ƒ๋“ค์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ ๊ฐ•์˜์ด๋ฉฐ,
MMO Lab #1๊ธฐ ์ˆ˜๊ฐ•์ƒ๋งŒ ์ˆ˜๊ฐ• ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
M1 ๋ผ์ด๋ธŒ๋Š” ๋ฐ”๋กœ M1 ์˜จ๋ผ์ธ ๊ฐ•์˜์— ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
C# ์„œ๋ฒ„ ๊ฐ•์˜๋Š” ์ž„์‹œ ๊ฐ•์˜์— ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.


์ผ์š”์ผ M1 ๋ผ์ด๋ธŒ ๊ฐ•์˜์—์„  ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
3์›”๋ถ€ํ„ฐ๋Š” ์•„์ดํ…œ & UI ๋“ฑ์ด ๋“ค์–ด๊ฐ€ ๋ณด๋‹ค ๋งŽ์€ ์‹ค์Šต์ด ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜๋ฐ˜๊ธฐ๋ถ€ํ„ฐ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋ถ™์ด๋Š” ์ž‘์—…์ด ์˜ˆ์ •๋˜์–ด ์žˆ๋Š”๋ฐ,
์ด๋ฅผ ์œ„ํ•œ C# ์„œ๋ฒ„ ๋ณด์ถฉ ๊ฐ•์˜๋„ ๊ฐ™์ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

C# ์„œ๋ฒ„ ์ˆ˜์—…์€ [C# ์‹œ๋ฆฌ์ฆˆ Part4 : ๊ฒŒ์ž„์„œ๋ฒ„] ๊ฐ•์˜์™€ ํฐ ํ‹€์—์„œ๋Š” ๋น„์Šทํ•˜์ง€๋งŒ
์–ด๋ ต๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ตœ๋Œ€ํ•œ ์ œ๊ฑฐํ•˜๋ฉด์„œ ์‰ฝ๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ์ชฝ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ค‘๋ฐ˜๋ถ€์˜ ํŒจํ‚ท ์ž๋™ํ™” ๋“ฑ ์ค‘์š”๋„์— ๋น„ํ•ด ๋„ˆ๋ฌด ๊ธด ๋‚ด์šฉ์€ ์ œ๊ฑฐํ•˜๊ณ 
C# template engine, protobuf ์—ฐ๋™ ๋“ฑ์œผ๋กœ ๋Œ€์ฒดํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ํ•˜๋ฐ˜๊ธฐ์˜ C# ์„œ๋ฒ„ ๋‚ด์šฉ๊นŒ์ง€ ๋”ฐ๋ผ๊ฐ€๊ณ  ์‹ถ์ง€๋งŒ,
๊ธฐ์กด ๋‚ด์šฉ์ด ์–ด๋ ค์› ๋˜ ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœ์„ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋Œ“๊ธ€