|
| 1 | +# ๊ฑด๊ตญ๋ํ๊ต ๋ฉํ๋ฒ์ค ์น ๊ฒ์ ๐ฎ |
| 2 | + |
| 3 | +> **Phaser.js ๊ธฐ๋ฐ์ ์ค์๊ฐ ๋ฉํฐํ๋ ์ด์ด ๋ฉํ๋ฒ์ค + ๋ฆฌ๋ฌ๊ฒ์** |
| 4 | +
|
| 5 | +๊ฑด๊ตญ๋ํ๊ต ์บ ํผ์ค๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ํ 2D ๋ฉํ๋ฒ์ค ๊ฒ์์ผ๋ก, ์ค์๊ฐ ์์
๊ธฐ๋ฅ๊ณผ K-POP ๋ฆฌ๋ฌ๊ฒ์์ ๊ฒฐํฉํ ์น ๊ธฐ๋ฐ ๊ฒ์์
๋๋ค. |
| 6 | + |
| 7 | +## ๐ ์ฃผ์ ํน์ง |
| 8 | + |
| 9 | +### ๐ ๋ฉํ๋ฒ์ค ์๋ |
| 10 | +- **๊ฑด๊ตญ๋ํ๊ต ์บ ํผ์ค ๋งต**: ์ค์ ์บ ํผ์ค๋ฅผ ๋ชจํฐ๋ธ๋ก ํ 2D ํ๋ค์ด ์๋ |
| 11 | +- **์ค์๊ฐ ๋ฉํฐํ๋ ์ด์ด**: ์ต๋ ๋ค์ ํ๋ ์ด์ด ๋์ ์ ์ |
| 12 | +- **์์
์ํธ์์ฉ**: ์ค์๊ฐ ์ฑํ
, ์ด๋ชจํฐ์ฝ, ๋งํ์ ์์คํ
|
| 13 | + |
| 14 | +### ๐ต ๋ฆฌ๋ฌ๊ฒ์ ๋ชจ๋ |
| 15 | +- **3๊ฐ์ง K-POP ํธ๋**: ์์คํ - Supernova, ๋ผ์ด์ฆ - Get A Guitar ๋ฑ |
| 16 | +- **ํ์ด๋ฐ ๊ธฐ๋ฐ ๊ฒ์ํ๋ ์ด**: ์ ํํ ํ์ด๋ฐ์ผ๋ก ๋
ธํธ ํํธ |
| 17 | +- **AI ๋์ ์์คํ
**: ๊ฐ์ ์๋์์ ์ค์๊ฐ ์ ์ ๊ฒฝ์ |
| 18 | + |
| 19 | +### ๐ฑ ํฌ๋ก์ค ํ๋ซํผ ์ง์ |
| 20 | +- **๋ฐ์คํฌํ**: ํค๋ณด๋ ๋ฐฉํฅํค + ๊ธฐ๋ฅํค ์กฐ์ |
| 21 | +- **๋ชจ๋ฐ์ผ**: ๊ฐ์ ์กฐ์ด์คํฑ + ํฐ์น ์ธํฐํ์ด์ค |
| 22 | + |
| 23 | +## ๐ ๏ธ ๊ธฐ์ ์คํ |
| 24 | + |
| 25 | +### Frontend |
| 26 | +- **๊ฒ์ ์์ง**: [Phaser.js 3.80.1](https://phaser.io/) - ์์ ํ 2D ๊ฒ์ ํ๋ ์์ํฌ |
| 27 | +- **์ธ์ด**: TypeScript 5.2.2 - ํ์
์์ ์ฑ ๋ณด์ฅ |
| 28 | +- **๋น๋ ๋๊ตฌ**: Vite 5.2.0 - ๊ณ ์ ๊ฐ๋ฐ ์๋ฒ ๋ฐ ๋ฒ๋ค๋ง |
| 29 | +- **UI ํ๋ฌ๊ทธ์ธ**: Phaser3-rex-plugins - ๊ฐ์ ์กฐ์ด์คํฑ ์ง์ |
| 30 | + |
| 31 | +### Backend & Communication |
| 32 | +- **์ค์๊ฐ ํต์ **: STOMP over WebSocket |
| 33 | +- **์๋ฒ**: `wss://api.getaguitar.site/ws` |
| 34 | +- **CDN**: AWS CloudFront - ๊ฒ์ ์์
์ ์ญ ๋ฐฐํฌ |
| 35 | + |
| 36 | +### Game Engine Features |
| 37 | +- **๋ฌผ๋ฆฌ ์์ง**: Phaser Arcade Physics - 2D ์ถฉ๋ ๊ฐ์ง ๋ฐ ์ด๋ |
| 38 | +- **ํ์ผ๋งต**: Tiled JSON ํฌ๋งท - ๋ ๋ฒจ ๋์์ธ ๋๊ตฌ ์ฐ๋ |
| 39 | +- **์ ๋๋ฉ์ด์
**: ์คํ๋ผ์ดํธ์ํธ ๊ธฐ๋ฐ ์บ๋ฆญํฐ ์ ๋๋ฉ์ด์
|
| 40 | +- **์ค๋์ค**: Web Audio API - ๊ณ ํ์ง ์ฌ์ด๋ ์ฌ์ |
| 41 | + |
| 42 | +## ๐ฏ ๊ฒ์ํ๋ ์ด |
| 43 | + |
| 44 | +### ๋ฉํ๋ฒ์ค ๋ชจ๋ |
| 45 | +1. **์บ๋ฆญํฐ ์์ฑ**: ๋๋ค์ ์
๋ ฅ ํ ๊ฒ์ ์ฐธ์ฌ |
| 46 | +2. **์์ ํํ**: ๊ฑด๊ตญ๋ ์บ ํผ์ค ๋งต ๋ด์์ ์์ ๋กญ๊ฒ ์ด๋ |
| 47 | +3. **์์
ํ๋**: ๋ค๋ฅธ ํ๋ ์ด์ด์ ์ฑํ
๋ฐ ์ด๋ชจํฐ์ฝ ๊ต๋ฅ |
| 48 | +4. **๋ฏธ๋๊ฒ์**: ๋งต ๋ด ํน์ ์ค๋ธ์ ํธ์ ์ํธ์์ฉ |
| 49 | + |
| 50 | +### ๋ฆฌ๋ฌ๊ฒ์ ๋ชจ๋ |
| 51 | +1. **๊ณก ์ ํ**: 3๊ฐ์ง K-POP ํธ๋ ์ค ์ ํ |
| 52 | +2. **๋
ธํธ ํ๋ ์ด**: ํ๋ฉด ์๋จ์์ ๋จ์ด์ง๋ ๋
ธํธ๋ฅผ ์ ํํ ํ์ด๋ฐ์ ํํธ |
| 53 | +3. **์ ์ ๊ฒฝ์**: AI ์๋์ ์ค์๊ฐ ์ ์ ๋น๊ต |
| 54 | +4. **๊ฒฐ๊ณผ ํ์ธ**: ๊ฒ์ ์ข
๋ฃ ํ ์ต์ข
์ ์ ํ์ |
| 55 | + |
| 56 | +## ๐๏ธ ์ํคํ
์ฒ |
| 57 | + |
| 58 | +### ์ฌ ๊ด๋ฆฌ ์์คํ
|
| 59 | +``` |
| 60 | +๋ก๋ฉ ํ๋ฉด โ ๋๋ค์ ์
๋ ฅ โ ๋ฉ์ธ ์๋ โ ๋ฆฌ๋ฌ๊ฒ์ |
| 61 | +``` |
| 62 | + |
| 63 | +### ์ค์๊ฐ ํต์ ๊ตฌ์กฐ |
| 64 | +- **WebSocket STOMP**: ๋ธ๋ผ์ฐ์ โ ์๋ฒ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ |
| 65 | +- **์ํ ๋๊ธฐํ**: ํ๋ ์ด์ด ์์น, ์ ๋๋ฉ์ด์
, ์ฑํ
๋ฉ์์ง |
| 66 | +- **์ด๋ฒคํธ ๊ธฐ๋ฐ**: Pub/Sub ํจํด์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ ๊ตฌ์กฐ |
| 67 | + |
| 68 | +### ๋ ๋๋ง ํ์ดํ๋ผ์ธ |
| 69 | +- **๋ฉํฐ ๋ ์ด์ด**: ๋ฐฐ๊ฒฝ, ์ค๋ธ์ ํธ, ์บ๋ฆญํฐ, UI ๋ถ๋ฆฌ ๋ ๋๋ง |
| 70 | +- **์นด๋ฉ๋ผ ์ถ์ **: ํ๋ ์ด์ด ์ค์ฌ ์ค๋ฌด์ค ์นด๋ฉ๋ผ ์ด๋ |
| 71 | +- **์ต์ ํ**: ๋ทฐํฌํธ ์ปฌ๋ง ๋ฐ ์ค๋ธ์ ํธ ํ๋ง |
| 72 | + |
| 73 | +## ๐ ์์ํ๊ธฐ |
| 74 | + |
| 75 | +### ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ |
| 76 | +```bash |
| 77 | +# ์์กด์ฑ ์ค์น |
| 78 | +npm install |
| 79 | + |
| 80 | +# ๊ฐ๋ฐ ์๋ฒ ์คํ |
| 81 | +npm run dev |
| 82 | + |
| 83 | +# ๋น๋ |
| 84 | +npm run build |
| 85 | +``` |
| 86 | + |
| 87 | +### ํ๋ก์ ํธ ๊ตฌ์กฐ |
| 88 | +``` |
| 89 | +src/ |
| 90 | +โโโ scenes/ # ๊ฒ์ ์ฌ๋ค |
| 91 | +โโโ assets/objects/ # ๊ฒ์ ์ค๋ธ์ ํธ |
| 92 | +โโโ constants/ # ์์ ๋ฐ ์ค์ |
| 93 | +โโโ utilities/ # ์ ํธ๋ฆฌํฐ ํจ์ |
| 94 | +โโโ main.ts # ์ํธ๋ฆฌ ํฌ์ธํธ |
| 95 | +``` |
| 96 | + |
| 97 | +## ๐จ ์์
๋ฐ ๋ฆฌ์์ค |
| 98 | + |
| 99 | +### ๊ทธ๋ํฝ ์์
|
| 100 | +- **์บ๋ฆญํฐ ์คํ๋ผ์ดํธ**: 32x32 ํฝ์
4๋ฐฉํฅ ์ ๋๋ฉ์ด์
|
| 101 | +- **ํ์ผ์
**: 16x16 ํฝ์
๋ชจ๋๋ฌ ํ์ผ |
| 102 | +- **UI ์์**: ํ์
, ๋ฒํผ, ๋งํ์ ๋ฑ |
| 103 | + |
| 104 | +### ์ค๋์ค ์์
|
| 105 | +- **BGM**: K-POP ํธ๋ 3๊ณก (MP3/OGG) |
| 106 | +- **ํจ๊ณผ์**: ๊ฒ์ ๋ด ์ํธ์์ฉ ์ฌ์ด๋ |
| 107 | + |
| 108 | +## ๐ง ์ฃผ์ ๊ธฐ๋ฅ ๊ตฌํ |
| 109 | + |
| 110 | +### Phaser.js ํ์ฉ |
| 111 | +- **๊ฒ์ ๋ฃจํ**: 60fps ๋ ๋๋ง ๋ฐ ์
๋ฐ์ดํธ |
| 112 | +- **๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์
**: ์บ๋ฆญํฐ ์ด๋ ๋ฐ ์ถฉ๋ ์ฒ๋ฆฌ |
| 113 | +- **์ด๋ฒคํธ ์์คํ
**: ์ฌ์ฉ์ ์
๋ ฅ ๋ฐ ๊ฒ์ ์ด๋ฒคํธ ๊ด๋ฆฌ |
| 114 | + |
| 115 | +### ์ค์๊ฐ ๋ฉํฐํ๋ ์ด์ด |
| 116 | +- **์ํ ๋๊ธฐํ**: ํ๋ ์ด์ด ์์น ์ค์๊ฐ ์
๋ฐ์ดํธ |
| 117 | +- **์ฑํ
์์คํ
**: ์ฆ์ ๋ฉ์์ง ์ ์ก ๋ฐ ๋งํ์ ํ์ |
| 118 | +- **์ด๋ชจํฐ์ฝ**: F1-F4 ํค๋ก ๊ฐ์ ํํ |
| 119 | + |
| 120 | +### ๋ฆฌ๋ฌ๊ฒ์ ์์ง |
| 121 | +- **ํ์ด๋ฐ ์์คํ
**: ๋ฐ๋ฆฌ์ธ์ปจ๋ ๋จ์ ์ ํ๋ |
| 122 | +- **์ ์ ๊ณ์ฐ**: ํํธ/๋ฏธ์ค ๊ธฐ๋ฐ ์ ์ ์์คํ
|
| 123 | +- **AI ๋์ **: ๋๋ค ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฐ ๊ฐ์ ์๋ |
| 124 | + |
| 125 | +## ๐ ๊ธฐ์ ์ ํ์ |
| 126 | + |
| 127 | +- **ํ์ด๋ธ๋ฆฌ๋ ์ฅ๋ฅด**: ๋ฉํ๋ฒ์ค์ ๋ฆฌ๋ฌ๊ฒ์์ ์ฑ๊ณต์ ๊ฒฐํฉ |
| 128 | +- **์น ๊ธฐ๋ฐ**: ๋ณ๋ ์ค์น ์์ด ๋ธ๋ผ์ฐ์ ์์ ์ฆ์ ํ๋ ์ด |
| 129 | +- **๊ต์ก ์ฝํ
์ธ **: ์ค์ ๋ํ ์บ ํผ์ค๋ฅผ ๊ฒ์ ์๋๋ก ๊ตฌํ |
| 130 | +- **K-POP ์ฐ๋**: ํ๊ตญ ๋์ค๋ฌธํ์ ๊ฒ์์ ์ตํฉ |
| 131 | + |
| 132 | +--- |
0 commit comments