引擎系统设计思路 - 用户态与系统态隔离
用户态与系统态隔离:
a. 外部用户侧的对象或者逻辑,在外部创建使用。内部系统侧的对象或者逻辑,在内部创建使用。
b. 用户状态下对内部系统的操作要立即响应,但是具体如何实际执行系统内部的机制,则是异步并行的。因为有异步,也可以或者提供保留同步机制。
c. 用户态与系统态之间不会建立直接的依赖关系他们的关系是异步并行的。前者负责面向用户行为,后者负责面向引擎内部系统的管理行为(包括资源管控,算力使用,渲染机制的动态生成与调度等等)。总体来讲,前者是数据和行为约束的提供方,而后者会依据实际策略具体使用这些数据和实现预期的行为结果。
d. 用户态的正确执行,并不会收到系统态的限制。
情景类比说明:银行客户需要处理一个账户上的事情(此银行的相关业务),他将此事交给银行的一个客服。在处理过程中(不管是否此事已经在处理中),此客户持续告诉客服各种可能的调整。最终账户事宜处理完成,符合银行的需求进而正常接入相关财务事宜。这里的客户,可以看做是用户态。而客服以及银行则是系统态。整个事情的推进中,双方保持信息同步但是异步并行。
达到的目的:
1. 使用的时候,各司其职,保持高效。
2. 运行的时候, 各司其职,保持高效。
3. 升级迭代的时候,各司其职,保持高效。
4. 将相对复杂和重要的工作交给系统接管,而不需要用户负责。
6. 将复杂而广泛的应用形式交给用户实现,尽量不干扰用户的使用自由度。
其他相关:
1. 支撑高效能3D虚拟视觉系统的七个维度-CSDN博客
2. 3D系统中可渲染实体容器(Renderable Entity Container)-CSDN博客