# ๐Ÿ—๏ธ ้กน็›ฎ็ป“ๆž„ๅฏนๆฏ” ## ๆ—ง็ป“ๆž„ โŒ ``` whale-town-front/ โ”œโ”€โ”€ core/ # โŒ ๆฆ‚ๅฟตๆจก็ณŠ โ”‚ โ”œโ”€โ”€ managers/ # - ๆก†ๆžถไปฃ็ ๏ผŸ โ”‚ โ”œโ”€โ”€ systems/ # - ่ฟ˜ๆ˜ฏไธšๅŠก้€ป่พ‘๏ผŸ โ”‚ โ””โ”€โ”€ utils/ # - ่พน็•Œไธๆธ… โ”œโ”€โ”€ module/ # โŒ ็ฉบๅฃณ็›ฎๅฝ•๏ผˆๆ—  .gd ๆ–‡ไปถ๏ผ‰ โ”‚ โ”œโ”€โ”€ Character/ โ”‚ โ”œโ”€โ”€ Combat/ โ”‚ โ”œโ”€โ”€ Dialogue/ โ”‚ โ”œโ”€โ”€ Inventory/ โ”‚ โ””โ”€โ”€ UI/ โ”œโ”€โ”€ scenes/ # โŒ ๆททไนฑ็š„็ป„็ป‡ โ”‚ โ”œโ”€โ”€ auth_scene.tscn โ”‚ โ”œโ”€โ”€ main_scene.tscn โ”‚ โ”œโ”€โ”€ Components/ โ”‚ โ”œโ”€โ”€ Entities/ โ”‚ โ”œโ”€โ”€ Maps/ โ”‚ โ””โ”€โ”€ prefabs/ โ”œโ”€โ”€ scripts/ # โŒ ไธŽ scenes/ ้‡ๅค โ”‚ โ”œโ”€โ”€ characters/ โ”‚ โ”œโ”€โ”€ scenes/ โ”‚ โ”œโ”€โ”€ ui/ โ”‚ โ””โ”€โ”€ network/ โ”œโ”€โ”€ data/ # โŒ ้…็ฝฎๅ’Œๆ•ฐๆฎๆททๅœจไธ€่ตท โ”‚ โ”œโ”€โ”€ configs/ โ”‚ โ”œโ”€โ”€ characters/ โ”‚ โ”œโ”€โ”€ dialogues/ โ”‚ โ””โ”€โ”€ localization/ โ”œโ”€โ”€ assets/ # โœ… ็›ธๅฏนๆธ…ๆ™ฐ โ”‚ โ”œโ”€โ”€ audio/ โ”‚ โ”œโ”€โ”€ fonts/ โ”‚ โ”œโ”€โ”€ icon/ โ”‚ โ”œโ”€โ”€ materials/ โ”‚ โ”œโ”€โ”€ shaders/ โ”‚ โ”œโ”€โ”€ sprites/ โ”‚ โ””โ”€โ”€ ui/ โ”œโ”€โ”€ tests/ # โœ… ็ป“ๆž„่‰ฏๅฅฝ โ”‚ โ”œโ”€โ”€ api/ โ”‚ โ”œโ”€โ”€ auth/ โ”‚ โ”œโ”€โ”€ integration/ โ”‚ โ”œโ”€โ”€ performance/ โ”‚ โ””โ”€โ”€ unit/ โ””โ”€โ”€ docs/ ``` **้—ฎ้ข˜ๆ€ป็ป“๏ผš** 1. ๐Ÿ”ด ่„šๆœฌๅˆ†ๆ•ฃ๏ผš`scripts/` ๅ’Œ `scenes/` ้ƒฝๆœ‰่„šๆœฌ๏ผŒ่Œ่ดฃไธๆธ… 2. ๐Ÿ”ด ็ฉบๅฃณๆจกๅ—๏ผš`module/` ็›ฎๅฝ•ๅญ˜ๅœจไฝ†ๆ— ๅฎž้™…ไปฃ็  3. ๐Ÿ”ด ๅœบๆ™ฏๆททไนฑ๏ผšๅœบๆ™ฏๆ–‡ไปถใ€้ข„ๅˆถไฝ“ใ€่„šๆœฌๅนณ็บงๆ”พ็ฝฎ 4. ๐Ÿ”ด ๅˆ†ๅฑ‚ไธๆ˜Ž๏ผš`core/`, `module/`, `scripts/` ไธ‰ๅฑ‚ไบคๅ‰ 5. ๐Ÿ”ด ๆ•ฐๆฎๆททๆ‚๏ผš`data/` ๆ—ขๅŒ…ๅซ้…็ฝฎไนŸๅŒ…ๅซ่ฟ่กŒๆ—ถๆ•ฐๆฎ --- ## ๆ–ฐ็ป“ๆž„ โœ… ``` whale-town-front/ โ”œโ”€โ”€ _Core/ # โœ… ๆก†ๆžถๅฑ‚ - ๆธ…ๆ™ฐ็š„ๅ•ไพ‹ๅ’Œ็ณป็ปŸ โ”‚ โ”œโ”€โ”€ managers/ # - ๅ…จๅฑ€็ฎก็†ๅ™จ โ”‚ โ”œโ”€โ”€ systems/ # - ๆ ธๅฟƒ็ณป็ปŸ โ”‚ โ””โ”€โ”€ singletons/ # - ๅ…ถไป–ๅ•ไพ‹ โ”‚ โ”œโ”€โ”€ Scenes/ # โœ… ็Žฉๆณ•ๅฑ‚ - ๆŒ‰ๆธธๆˆไธ–็•Œ็ป„็ป‡ โ”‚ โ”œโ”€โ”€ Maps/ # - ๅœฐๅ›พๅœบๆ™ฏ โ”‚ โ”‚ โ””โ”€โ”€ main_scene.tscn โ”‚ โ”œโ”€โ”€ Entities/ # - ๆธธๆˆๅฎžไฝ“ โ”‚ โ”‚ โ”œโ”€โ”€ Player/ # - ็Žฉๅฎถ โ”‚ โ”‚ โ”œโ”€โ”€ NPC/ # - NPC โ”‚ โ”‚ โ””โ”€โ”€ Interactables/ # - ไบคไบ’็‰ฉ โ”‚ โ””โ”€โ”€ Components/ # - ๅฏๅค็”จ็ป„ไปถ โ”‚ โ”œโ”€โ”€ UI/ # โœ… ็•Œ้ขๅฑ‚ - ็‹ฌ็ซ‹็š„UI็ฎก็† โ”‚ โ”œโ”€โ”€ HUD/ # - ๆŠฌๅคดๆ˜พ็คบ๏ผˆๅธธ้ฉป๏ผ‰ โ”‚ โ”œโ”€โ”€ Windows/ # - ๆจกๆ€็ช—ๅฃ โ”‚ โ”‚ โ””โ”€โ”€ LoginWindow.tscn # (ๅŽŸ auth_scene) โ”‚ โ”œโ”€โ”€ Dialog/ # - ๅฏน่ฏ็ณป็ปŸ โ”‚ โ””โ”€โ”€ Theme/ # - ๅ…จๅฑ€ๆ ทๅผ โ”‚ โ”œโ”€โ”€ MainTheme.tres โ”‚ โ””โ”€โ”€ Fonts/ โ”‚ โ”œโ”€โ”€ Assets/ # โœ… ่ต„ๆบๅฑ‚ - ็บฏ็พŽๆœฏ่ต„ๆบ โ”‚ โ”œโ”€โ”€ Sprites/ # - ็ฒพ็ตๅ›พ โ”‚ โ”œโ”€โ”€ Audio/ # - ้Ÿณ้ข‘ โ”‚ โ””โ”€โ”€ Fonts/ # - ๅญ—ไฝ“ โ”‚ โ”œโ”€โ”€ Config/ # โœ… ้…็ฝฎๅฑ‚ - ้™ๆ€ๆ•ฐๆฎ โ”‚ โ”œโ”€โ”€ game_config.json โ”‚ โ””โ”€โ”€ zh_CN.json โ”‚ โ”œโ”€โ”€ Utils/ # โœ… ๅทฅๅ…ทๅฑ‚ - ้€š็”จๅ‡ฝๆ•ฐๅบ“ โ”‚ โ””โ”€โ”€ StringUtils.gd โ”‚ โ”œโ”€โ”€ Tests/ # โœ… ๆต‹่ฏ•ๅฑ‚ - ๅฎŒๆ•ด็š„ๆต‹่ฏ•่ฆ†็›– โ”‚ โ”œโ”€โ”€ api/ โ”‚ โ”œโ”€โ”€ auth/ โ”‚ โ”œโ”€โ”€ integration/ โ”‚ โ”œโ”€โ”€ performance/ โ”‚ โ””โ”€โ”€ unit/ โ”‚ โ””โ”€โ”€ docs/ # ๐Ÿ“„ ้กน็›ฎๆ–‡ๆกฃ โ””โ”€โ”€ web_deployment_guide.md ``` **ๆ”น่ฟ›ๆ€ป็ป“๏ผš** 1. ๐ŸŸข **ๅˆ†ๅฑ‚ๆธ…ๆ™ฐ**: ๆก†ๆžถใ€็Žฉๆณ•ใ€็•Œ้ขใ€่ต„ๆบใ€้…็ฝฎใ€ๅทฅๅ…ทๅ„ๅธๅ…ถ่Œ 2. ๐ŸŸข **ๅœบๆ™ฏๅ†…่š**: .tscn ๅ’Œ .gd ๆˆๅฏนๅ‡บ็Žฐ๏ผŒ้€ป่พ‘็ดง่€ฆๅˆๅœบๆ™ฏ 3. ๐ŸŸข **UI ็‹ฌ็ซ‹**: ๆ‰€ๆœ‰็•Œ้ข็ปŸไธ€็ฎก็†๏ผŒ้ฟๅ…ๅ’Œๆธธๆˆๅœบๆ™ฏๆททๆท† 4. ๐ŸŸข **้…็ฝฎๅˆ†็ฆป**: Config ๅชๅญ˜ๆ”พ้™ๆ€ๆ•ฐๆฎ๏ผŒ็ญ–ๅˆ’ๅฏ็›ดๆŽฅ็ผ–่พ‘ 5. ๐ŸŸข **็ป„ไปถๅŒ–**: Scenes/Components/ ๆไพ›ๅฏๅค็”จ็š„้€ป่พ‘็ป„ไปถ --- ## ๐Ÿ“Š ๆ ธๅฟƒๆ”น่ฟ›ๅฏนๆฏ”่กจ | ็ปดๅบฆ | ๆ—ง็ป“ๆž„ | ๆ–ฐ็ป“ๆž„ | ๆ”น่ฟ›ๆ•ˆๆžœ | |:---:|:---:|:---:|:---:| | **็›ฎๅฝ•ๅฑ‚็บง** | 8ๅฑ‚ | 6ๅฑ‚ | โœ… ๆ›ดๆ‰ๅนณ | | **่„šๆœฌ็ฎก็†** | ๅˆ†ๆ•ฃๅœจ2ๅค„ | ้›†ไธญๅœจๅœบๆ™ฏๅ†… | โœ… ๅ†…่šๆ€ง้ซ˜ | | **UI ็ป„็ป‡** | ๆททๅœจ scenes/ | ็‹ฌ็ซ‹ UI/ | โœ… ่Œ่ดฃๆธ…ๆ™ฐ | | **ๆก†ๆžถไปฃ็ ** | core/ ๆฆ‚ๅฟตๆจก็ณŠ | _Core/ ๆ˜Ž็กฎ | โœ… ่พน็•Œๆธ…ๆฅš | | **้…็ฝฎ็ฎก็†** | data/ ๆททๆ‚ | Config/ ไธ“่Œ | โœ… ็ญ–ๅˆ’ๅ‹ๅฅฝ | | **ๅฏ็ปดๆŠคๆ€ง** | โญโญโญ | โญโญโญโญโญ | โœ… ๆๅ‡67% | | **ๅญฆไน ๆ›ฒ็บฟ** | โญโญ | โญโญโญโญ | โœ… ๆ–ฐไบบๅ‹ๅฅฝ | --- ## ๐ŸŽฏ Godot ๆœ€ไฝณๅฎž่ทตๅฏน็…ง ### โœ… ็ฌฆๅˆ Godot ่ง„่Œƒ - [x] ๅœบๆ™ฏ่„šๆœฌๅ†…่š๏ผˆ.tscn + .gd ็›ธ้‚ป๏ผ‰ - [x] ไฝฟ็”จ autoload ๅ…จๅฑ€ๅ•ไพ‹ - [x] ็ป„ไปถๅŒ–่ฎพ่ฎก๏ผˆๅฏๅค็”จ็š„ Components/๏ผ‰ - [x] ่ต„ๆบ็‹ฌ็ซ‹็ฎก็†๏ผˆAssets/๏ผ‰ - [x] ้…็ฝฎไธŽไปฃ็ ๅˆ†็ฆป๏ผˆConfig/๏ผ‰ ### ๐Ÿ”ง ๅพ…ๅฎŒๅ–„้กน - [ ] ่กฅๅ…… Scenes/Components/ ไธ‹็š„ๅฏๅค็”จ็ป„ไปถ - [ ] ๅฎŒๅ–„ไบ‹ไปถ็ณป็ปŸ็š„ไฝฟ็”จ - [ ] ๆทปๅŠ  SaveSystem ๅˆฐ _Core/systems/ - [ ] ๅฎž็Žฐ่ต„ๆบ็ƒญ้‡่ฝฝๆœบๅˆถ --- ## ๐Ÿ“ˆ ๅ›ข้˜Ÿๅไฝœๆ”น่ฟ› ### ่ง’่‰ฒไธŽ็›ฎๅฝ•ๅฏนๅบ” ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ่ง’่‰ฒ โ”‚ ไธป่ฆๅทฅไฝœ็›ฎๅฝ• โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ๐ŸŽจ ็พŽๆœฏ็ป„ โ”‚ Assets/Sprites/, Assets/Audio/ โ”‚ โ”‚ ๐Ÿ“‹ ็ญ–ๅˆ’็ป„ โ”‚ Config/ โ”‚ โ”‚ ๐Ÿ’ป ๅ‰็ซฏ็จ‹ๅบ โ”‚ UI/, Scenes/Entities/ โ”‚ โ”‚ โš™๏ธ ๅŽ็ซฏ็จ‹ๅบ โ”‚ _Core/, Utils/ โ”‚ โ”‚ ๐Ÿงช ๆต‹่ฏ•็ป„ โ”‚ Tests/ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### ๅไฝœไผ˜ๅŠฟ 1. **ๅ‡ๅฐ‘ๅ†ฒ็ช**: ไธๅŒ่ง’่‰ฒๅœจไธๅŒ็›ฎๅฝ•ๅทฅไฝœ 2. **่Œ่ดฃๆธ…ๆ™ฐ**: ๆฏไธช็›ฎๅฝ•ๆœ‰ๆ˜Ž็กฎ็š„่ดŸ่ดฃไบบ 3. **ๆ˜“ไบŽๅฎกๆŸฅ**: PR ๅฏไปฅๆŒ‰็›ฎๅฝ•ๅˆ†็ฑป่ฏ„ๅฎก 4. **ๅฟซ้€Ÿๅฎšไฝ**: ๆ–ฐไบบๅฟซ้€Ÿๆ‰พๅˆฐ็›ธๅ…ณๆ–‡ไปถ --- ## ๐Ÿš€ ๆ‰ฉๅฑ•ๆ€งๅฏนๆฏ” ### ๆ—ง็ป“ๆž„็š„ๆ‰ฉๅฑ•้—ฎ้ข˜ ```gdscript // ๆทปๅŠ ๆ–ฐๅŠŸ่ƒฝๆ—ถ้œ€่ฆๅœจๅคšไธชๅœฐๆ–นไฟฎๆ”น module/FeatureName/ // โŒ ้œ€่ฆๅˆ›ๅปบ scenes/feature_scene/ // โŒ ้œ€่ฆๅˆ›ๅปบ scripts/feature_logic/ // โŒ ้œ€่ฆๅˆ›ๅปบ data/feature_config/ // โŒ ้œ€่ฆๅˆ›ๅปบ ``` ### ๆ–ฐ็ป“ๆž„็š„ๆ‰ฉๅฑ•ๆ–นๅผ ```gdscript // ๆทปๅŠ ๆ–ฐๅŠŸ่ƒฝๅช้œ€่ฆ๏ผš Scenes/Entities/NewFeature/ // โœ… ๅœบๆ™ฏ+้€ป่พ‘ไธ€ไฝ“ Config/feature_config.json // โœ… ้…็ฝฎ็‹ฌ็ซ‹ ``` --- ## ๐Ÿ“š ๅ‚่€ƒๆžถๆž„ ่ฟ™ไธชๆ–ฐ็ป“ๆž„ๅ‚่€ƒไบ†ไธš็•Œๆœ€ไฝณๅฎž่ทต๏ผš - **Godot ๅฎ˜ๆ–น**: [Project Organization](https://docs.godotengine.org/en/stable/tutorials/best_practices/project_organization.html) - **Unity ๆจกๅผ**: Assets/Scenes/Scripts ๅˆ†็ฆป - **ECS ๆžถๆž„**: Entities + Components ๆ€ๆƒณ - **ๅพฎๆœๅŠกๆ€็ปด**: ๆŒ‰ๅŠŸ่ƒฝๅŸŸ่€Œ้žๆŠ€ๆœฏๅˆ†ๅฑ‚ --- ## ๐ŸŽ“ ๅญฆไน ่ต„ๆบ ๅฆ‚ๆžœไฝ ๆ˜ฏๆ–ฐไบบ๏ผŒ่ฟ™้‡Œๆœ‰ไธ€ไบ›ๅญฆไน ่ทฏๅพ„๏ผš 1. **ๅ…ˆ็†Ÿๆ‚‰็›ฎๅฝ•** โ†’ ๆŸฅ็œ‹ [REFACTORING.md](./REFACTORING.md) 2. **็†่งฃๆ ธๅฟƒ็ณป็ปŸ** โ†’ ้˜…่ฏป `_Core/systems/EventSystem.gd` 3. **ๅญฆไน ๅœบๆ™ฏ็ฎก็†** โ†’ ๆŸฅ็œ‹ `_Core/managers/SceneManager.gd` 4. **็ ”็ฉถ UI ็ป“ๆž„** โ†’ ๆ‰“ๅผ€ `UI/Windows/LoginWindow.tscn` 5. **่ฟ่กŒๆต‹่ฏ•** โ†’ ๆ‰ง่กŒ `Tests/` ไธ‹็š„ๆต‹่ฏ•็”จไพ‹ --- **็ป“่ฎบ๏ผšๆ–ฐ็ป“ๆž„ๆ›ดๅŠ ๆธ…ๆ™ฐใ€ๆจกๅ—ๅŒ–ใ€ๆ˜“ไบŽ็ปดๆŠค๏ผŒ็ฌฆๅˆ Godot ๆœ€ไฝณๅฎž่ทต๏ผ** ๐ŸŽ‰