Skip to content

Latest commit

ย 

History

History
139 lines (94 loc) ยท 6.57 KB

File metadata and controls

139 lines (94 loc) ยท 6.57 KB

โœŠ ์•„๋ฆฌ์•„๋ฆฌ (เน‘โ€ขฬ€ใ…‚โ€ขฬ)ูˆโœง โœŠ

2024 ์บก์Šคํ†ค๋””์ž์ธ๊ณผ์ฐฝ์—…ํ”„๋กœ์ ํŠธ ํŒ€ 33 ์•„๋ฆฌ์•„๋ฆฌ

๊ฒŒ์ž„ ์†Œ๊ฐœ

์ €์Šน๊ณผ ์ด์Šน์˜ ๊ฒฝ๊ณ„์— ์กด์žฌํ•˜๋Š” ์‚ผ๋„์ฒœ ๋ถ€๊ทผ์˜ ํ•œ ๋งˆ์„์„ ๋ฐฐ๊ฒฝ์œผ๋กœ, ๋ณ€ํ˜ธ์‚ฌ์™€ ๊ฒ€์‚ฌ ํŒ€์œผ๋กœ ๋‚˜๋‰œ ํ”Œ๋ ˆ์ด์–ด๋“ค์ด โ€˜๋ง์žโ€™๋ผ ๋ถˆ๋ฆฌ์šฐ๋Š” ์ž๋“ค์˜ ์ „์ƒ์„ ์กฐ์‚ฌํ•˜๊ณ  ์„ ์•…์„ ํŒ๋ณ„ํ•˜์—ฌ ๊ทธ๋“ค์˜ ์šด๋ช…์„ ์ฒœ๊ตญ ๋˜๋Š” ์ง€์˜ฅ์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” AI ์ฑ„ํŒ… ๊ธฐ๋ฐ˜ 3D ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์žฌํŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„


QuackToHell

QuackToHell์€ Unreal Engine 5.4 ๊ธฐ๋ฐ˜์˜ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์žฌํŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.
ํ”Œ๋ ˆ์ด์–ด๋Š” ๊ฒ€์‚ฌ ๋˜๋Š” ๋ณ€ํ˜ธ์‚ฌ๊ฐ€ ๋˜์–ด AI ์ฆ์ธ์„ ์ƒ๋Œ€๋กœ ์‹ฌ๋ฌธํ•˜๊ณ , ๋…ผ๋ฆฌ์  ์šฐ์œ„๋ฅผ ์ ํ•ด ์žฌํŒ์—์„œ ์Šน๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
๋ณธ ํ”„๋กœ์ ํŠธ๋Š” OpenAI API๋ฅผ ํ†ตํ•œ ์ž์—ฐ์–ด ๋Œ€ํ™” ์‹œ์Šคํ…œ, ๋™๊ธฐํ™”๋œ ๋กœ๋น„ ๋ฐ ๊ฒŒ์ž„ ์„ธ์…˜, ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ ์ค‘์‹ฌ์˜ ๊ฒŒ์ž„ ํ๋ฆ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.


๐Ÿš€ How to Install

  1. ์–ธ๋ฆฌ์–ผ ์—”์ง„ 5.4๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ณธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.

  3. ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๊ฒฝ๋กœ์— OpenAIAuth.ini ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ฉ”๋ชจ์žฅ ๋“ฑ์œผ๋กœ ํŒŒ์ผ์„ ์—ด๊ณ  ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

    ApiKey=์ค€๋น„ํ•œ OpenAI key
    
  5. QuackToHell.uproject ํŒŒ์ผ์„ ๋”๋ธ” ํด๋ฆญํ•˜์—ฌ ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ๋กœ ์—ฝ๋‹ˆ๋‹ค.

  6. ํŒ์—…์ด ๋‚˜ํƒ€๋‚˜๋ฉด '์˜ˆ(Yes)'๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”ง How to Build

  1. ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ Tools > Generate Visual Studio(Rider) project ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ํด๋ก ๋œ ํด๋”์— ์ƒ์„ฑ๋œ QuackToHell.sln ํŒŒ์ผ์„ Visual Studio ๋˜๋Š” Rider๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. IDE ๋‚ด์—์„œ Build๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช How to Test

  1. ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ ์ƒ๋‹จ์˜ ์  ์„ธ ๊ฐœ ๋ฒ„ํŠผ ํด๋ฆญ โ†’ Number of Players๋ฅผ 2๋กœ ์„ค์ •
  2. Edit > Editor Preferences > Process ๊ฒ€์ƒ‰ > Run Under One Process ํ•ด์ œ
  3. ์ƒ๋‹จ ์ดˆ๋ก์ƒ‰ โ–ถ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ํ…Œ์ŠคํŠธ ์‹คํ–‰

๐Ÿ“ Source Code Structure

ํด๋” ์„ค๋ช…
Actors/ ์žฌํŒ์žฅ ๋‚ด ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋ฌผ (์˜ˆ: ์ฆ๊ฑฐ๋ฌผ, ์˜ค๋ธŒ์ ํŠธ) ๊ด€๋ฆฌ
Animation/ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๋ฐ ์• ๋‹˜ ์ธ์Šคํ„ด์Šค
Character/ ํ”Œ๋ ˆ์ด์–ด ๋ฐ NPC ์บ๋ฆญํ„ฐ ํด๋ž˜์Šค ์ •์˜
ClientTest/ ํด๋ผ์ด์–ธํŠธ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ ๊ตฌ์„ฑ ๋˜๋Š” ์ž„์‹œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
Game/ GameMode, GameState, PlayerState ๋“ฑ ์ „์ฒด ๊ฒŒ์ž„์˜ ํ•ต์‹ฌ ํ๋ฆ„ ์ œ์–ด
GameData/ ๊ตฌ์กฐ์ฒด, ENUM, ์ƒ์ˆ˜ ๊ฐ’ ๋“ฑ ๊ฒŒ์ž„ ์ „์—ญ์—์„œ ์ฐธ์กฐ๋˜๋Š” ์ •์˜ ๋ชจ์Œ
NPC/ AI NPC ๊ด€๋ จ ํด๋ž˜์Šค ๋ฐ AIController, ํ–‰๋™ ํŠธ๋ฆฌ ๋“ฑ
Player/ PlayerController, ์ž…๋ ฅ ์ฒ˜๋ฆฌ ๋ฐ ํด๋ผ์ด์–ธํŠธ ์ „์šฉ UI ์—ฐ๊ฒฐ ๋“ฑ
Private/ ๋ชจ๋“ˆ ๋‚ด๋ถ€์šฉ ํด๋ž˜์Šค (์–ธ๋ฆฌ์–ผ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์— ๋”ฐ๋ฅธ ๊ตฌ์กฐ)
Public/ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋Š” ํ—ค๋” ํŒŒ์ผ ์ง‘ํ•ฉ
UI/ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์œ„์ ฏ (WBP ๋“ฑ) ๋ฐ HUD ๊ตฌ์„ฑ ์š”์†Œ

๐Ÿ“ฆ Used Open Source

์ด๋ฆ„ ์—ญํ• 
OpenAI API (GPT) NPC์˜ ๋Œ€์‚ฌ ๋ฐ ๋ฐ˜์‘ ์ƒ์„ฑ์— ์‚ฌ์šฉ๋˜๋Š” ํ•ต์‹ฌ ์–ธ์–ด ๋ชจ๋ธ
Unreal Engine 5.4 Epic Games์˜ ๊ฒŒ์ž„ ์—”์ง„. C++ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ
Slate / UMG UI ๊ตฌ์ถ• ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋ฒ„ํŠผ/ํ…์ŠคํŠธ/์• ๋‹ˆ๋ฉ”์ด์…˜ UI ์ฒ˜๋ฆฌ

โ€ป ์ƒ๊ธฐ ์˜คํ”ˆ์†Œ์Šค๋Š” ๊ฐ๊ฐ ํ•ด๋‹น ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, ์ƒ์„ธ ์‚ฌํ•ญ์€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.


๐Ÿ‘ง ํŒ€์›

์ „์œ ์ง„ : PM, ํด๋ผ์ด์–ธํŠธ ๋ฐ•์‹œ์–ธ : ๊ธฐํš, AI ์œ ์„œํ˜„ : ๊ธฐํš, ์„œ๋ฒ„
enter image description here enter image description here enter image description here

๐Ÿ“ข ๊ทธ๋ผ์šด๋“œ ๋ฃฐ

1๏ธโƒฃ ํšŒ์˜

  1. ๋งค์ฃผ ์›”์š”์ผ 6์‹œ ๋ฐ˜ ๊ณต๋Œ€ 109ํ˜ธ์—์„œ ๋Œ€๋ฉด์œผ๋กœ ์ง„ํ–‰ / ๋ชฉ์š”์ผ ์กธํ”„์‹œ๊ฐ„์—๋Š” ๊ทธ๋‚  ๊ณต์ง€ ํ™•์ธ & ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์—…๋ฐ์ดํŠธ
  2. ์ฒ˜๋ฆฌํ•ด์•ผํ•  ์‚ฌํ•ญ์€ ๊ทธ ์ž๋ฆฌ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋งˆ๊ฐ๊ธฐํ•œ์„ ์„ธ์šฐ๊ฑฐ๋‚˜ ๋‘˜ ์ค‘์— ํ•˜๋‚˜ (๋Œ€์ถฉ ๋‚˜์ค‘์— ํ• ๊นŒ์š”? XXX)
  3. ํšŒ์˜ ์‹œ์ž‘ ์ „๊นŒ์ง€ ํšŒ์˜๋ก ๋ฏธ๋ฆฌ ์ฝ๊ณ  ์˜ค๊ธฐ
  4. **ํšŒ์˜ ์ค‘ ์‹ค์‹œ๊ฐ„ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ๋“ค์€ ์žŠ์ง€ ์•Š๋„๋ก ํ˜•๊ด‘ํŽœ ํ‘œ์‹œํ•˜๊ธฐ
  5. ํ•ญ์ƒ ํšŒ์˜๋ก ๋ชฉ์ฐจ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๊ธฐ. (ํ˜„์žฌ ๋ชฉ์ฐจ์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ์ด์•ผ๊ธฐ๋Š” X)
    • ์ค‘๊ฐ„์— ์ƒ๊ฐ๋‚˜๋Š” ๋ง์ด ์žˆ์œผ๋ฉด,
      1. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•˜๊ณ ์‹ถ์€ ๋ง ๋ชฉ์ฐจ ๋ˆ„๋ฅด๊ธฐ
      2. ๊ทธ ๋•Œ ์ƒ๊ฐ๋‚ฌ๋˜ ๋ง ๋ฏธ๋ฆฌ ์จ๋‘๊ธฐ
      3. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•˜๊ณ ์‹ถ์€ ๋ง ๋ชฉ์ฐจ ๋•Œ์— ์–˜๊ธฐํ•˜๊ธฐ.
  6. ํ•ญ์ƒ ํ™”๋ฉด ๊ณต์œ  ๊ธฐ๋ฐ˜์œผ๋กœ ํšŒ์˜ ์ง„ํ–‰
    • PM: ํšŒ์˜ ์ง„ํ–‰ ์‹œ์—
    • ํŒ€์›: ์ง„ํ–‰ ์ƒํ™ฉ ๊ณต์œ  ์‹œ์—
  7. ์นดํ†ก์€ ์žก๋‹ด / ํŒ€์ฆˆ๋Š” ์—…๋ฌด ๊ด€๋ จ. ์ž˜ ๋ถ„๋ฆฌํ•˜๊ธฐ
  8. ๋‹ค๋ฅธ ํŒ€์›์ด ์•„์ด๋””์–ด๋ฅผ ์ œ์•ˆํ–ˆ์„ ๋•Œ์—๋Š” ๋ฌด์กฐ๊ฑด ์นญ์ฐฌ ๋จผ์ € ํ•ด์ฃผ๊ณ  ์˜๊ฒฌ ์–˜๊ธฐํ•˜๊ธฐ
  9. ๋น„๋Œ€๋ฉด ํšŒ์˜ ์‹œ ํ™”์ƒ ์นด๋ฉ”๋ผ ์ผœ๊ธฐ
  10. ๋ฐ˜๋ง/ ์กด๋Œ“๋ง MIX
    • ์กด๋Œ“๋ง์„ ํ•˜๋Š” ์ˆœ๊ฐ„์€, ์ง‘์ค‘ํ•˜์ž!! ๋Š” ๋œป!
  11. ํ•ต์‹ฌ ๊ตฌํ˜„ ์‚ฌํ•ญ์ด ์•„๋‹Œ ์‚ฌ์†Œํ•œ ์˜๊ฒฌ์€ ํŒ€์ฆˆ ๋””๋ฒจ๋กญ์˜๊ฒฌ๋ฐฉ์— ์ ์–ด๋‘๊ณ  ๋””๋ฒจ๋กญ ์‹œ๊ธฐ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ

2๏ธโƒฃ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰

  1. AI ๋„์›€ ์ตœ์†Œํ™”, gpt ๋‹ต๋ณ€ ์ดํ•ด์—†์ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ธˆ์ง€!!
  2. ๋‹ค๋ฅธ ํŒ€์› ์—ญํ• ๋„ ์•Œ๊ณ ์žˆ๊ธฐ!
    • ํ”Œ์  ํ๋ฆ„ ํŒŒ์•…์— ๋„์›€์ด ๋˜์–ด์š”.
    • ์•„๋Š” ๊ฑฐ๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ๋„์šธ ์ˆ˜ ์žˆ์–ด์š”.
  3. ์ง„์‹ฌ๊ณผ ์• ์ •์„ ๊ฐ–๊ณ  ํ•˜์ž! ์• ์ •์ด ๊ธฐ๋ฐ˜๋˜๋ฉด ๊ฒฐ๊ณผ๋ฌผ์€ ์ €์ ˆ๋กœ ๋”ฐ๋ผ์˜จ๋‹ค.
  4. ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ ๊ทน์ ์œผ๋กœ ์งˆ๋ฌธํ•˜๊ธฐ
  5. ์–ด๋ ค์šด ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ฉด ์†”์งํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ•˜๊ธฐ

3๏ธโƒฃ ์Šคํ„ฐ๋””

  1. ๋ฒŒ๊ธˆ : 1๋งŒ์›

  2. ๊ฐœ์ธ์˜ ๊ณต๋ถ€ ์ผ์ง€๋ฅผ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์— ์—…๋ฐ์ดํŠธํ•˜๊ธฐ

4๏ธโƒฃ ๊ธฐํƒ€

  1. 4์‹œ ๋ฐ˜ ๋ป๊พธ๊ธฐ : ํ† ์š”์ผ 4์‹œ ๋ฐ˜์— ์ƒˆ๋กœ์šด ๊ณต์ง€์‚ฌํ•ญ ์žˆ๋Š”์ง€ ์ฒดํฌ
  2. โ˜…โ˜…โ˜…์นผ๋‹ต์„ ์Šต๊ด€ํ™”ํ•˜์žโ˜…โ˜…โ˜… ์•ˆ์ฝ์”น ๊ธˆ์ง€