Godot项目架构建议与实体创建建议

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节点,协调场景切换和大的模块转换,但要注意不能让这个大模块管理节点,防止他变成一个上帝对象

在主场景节点下,

  1. 高级系统节点(管理统筹防止散落在项目各处)
  2. 世界节点(关卡、实体,特效)
  3. HUD
  4. Pasue
  5. TransitionLayer
  6. DebugLayer

实体创建建议

实体状态应该由状态机管理

有如下一些状态:

  • 是否可移动
  • 是否可见
  • 是否可被攻击
  • 是否有碰撞(引擎来管理?)

在这之下派生的类:玩家、npc、碰撞体积物品、敌人

在指定状态下,不可见,不可移动,不可攻击等。

状态机构建需要保持可拓展性,以及解耦性。