Godot项目架构建议与实体创建建议
项目架构建议
1 2 3
| -addons -assets(资源) -src (源码)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| - addons - art 美术 - characters 人物 - enemies - npcs - player - ui - fonts - icons - splash_screen - world - backgrounds - props - tilesets - audio - music - sfx
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| - src - core - autoload - main_game - debug - gameplay - camera - enemies - interactables - player - levels - level_objects - bonfire - markers - resources - enemy_definitions(敌人定义) - item_definitions(物品定义) - shaders - ui
|
主游戏场景下(MainGame),初始化Systems节点,协调场景切换和大的模块转换,但要注意不能让这个大模块管理节点,防止他变成一个上帝对象
在主场景节点下,
- 高级系统节点(管理统筹防止散落在项目各处)
- 世界节点(关卡、实体,特效)
- HUD
- Pasue
- TransitionLayer
- DebugLayer
实体创建建议
实体状态应该由状态机管理
有如下一些状态:
- 是否可移动
- 是否可见
- 是否可被攻击
- 是否有碰撞(引擎来管理?)
在这之下派生的类:玩家、npc、碰撞体积物品、敌人
在指定状态下,不可见,不可移动,不可攻击等。
状态机构建需要保持可拓展性,以及解耦性。