《3D编程模式》写书-第3次记录
大家好,这段时间我完成了“积木模式”、“管道模式”、“多线程模式”、“依赖隔离模式”的初稿
目前我已经完成了所有模式(7个模式)的初稿,下面会给出它们的定义和使用场景,如果您正好能用到,请联系我提前阅读模式的初稿,欢迎大家给出反馈建议,您的大名有机会出现在《3D编程模式》的书中,感谢!
我的QQ号:
395976266
我的微信号:
chaogex
这里是所有的的写书记录:
《3D编程模式》写书记录
模式的概况
积木模式
定义
系统由积木搭建而成
使用场景
多人开发的大型系统
具体场景如下:
- 多人开发的引擎
- 多人开发的编辑器
管道模式
定义
将连续的、有一定执行顺序的逻辑离散化为一个个独立的Job,按照配置数据在管道中依次执行
使用场景
需要按串行或者并行的顺序连续地执行多个逻辑
具体场景如下:
- 系统的初始化
- 引擎主循环中的更新、渲染
多线程模式
定义
首先并行运行多个线程,然后同步更新主线程数据
使用场景
需要渲染大型场景或者有并行逻辑的系统
具体场景如下:
- 需要渲染大型场景
- 开多个线程来并行地执行一些逻辑,如加载超大模型、进行复杂计算等逻辑
依赖隔离模式
定义
隔离系统的外部依赖,使得外部依赖的变化不会影响系统
使用场景
使用了频繁变化的外部依赖的系统
具体场景如下:
替换编辑器使用的引擎
升级编辑器使用的引擎的版本
增加编辑器使用的引擎
拼接模式
定义
分解包括各种分支的大数据为小块单位,按照配置文件来拼接
使用场景
系统需要构造包括各种分支的数据
具体场景如下:
- 构造引擎的Shader代码
- 构造游戏的地图数据
撤销重做模式
定义
操作时保存不可变的state,撤销/重做时取出对应的state来作为当前的state
使用场景
使用函数式编程范式开发的系统,该系统需要撤销/重做功能
具体场景如下:
- 需要撤销/重做功能的编辑器
- 需要保存/载入功能的游戏
ECS模式
定义
组合代替继承,集中管理组件数据,分离逻辑和数据
使用场景
适合于大型的游戏,场景中有很多人物,人物的行为很多或者很复杂
具体场景如下:
- 有很多个种类的游戏人物的游戏
- 游戏人物有很多的行为,而且还经常会增加新的行为
《3D编程模式》写书-第3次记录的更多相关文章
- 《3D编程模式》写书-第1天记录
大家好,我现在开始写书了,书名为:<3D编程模式> 我会在本系列博文中记录写书的整个过程,感谢大家支持! 这里是所有的的写书记录: <3D编程模式>写书记录 为什么写书 去年我 ...
- 3D编程模式:依赖隔离模式
大家好~本文提出了"依赖隔离"模式 系列文章详见: 3D编程模式:开篇 本文相关代码在这里: 相关代码 目录 编辑器需要替换引擎 设计意图 定义 应用 扩展 最佳实践 更多资料推荐 ...
- 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]
ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...
- 开始3D编程前需注意的十件事
http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...
- Java多线程编程模式实战指南之Promise模式
Promise模式简介(转) Promise模式是一种异步编程模式 .它使得我们可以先开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,而不必等待该任务执行完毕就可以继续执行其他操作.等 ...
- MVC编程模式
MVC编程模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表) ...
- 游戏编程模式KeyNote
[游戏编程模式KeyNote] 1.命令模式. 重做在游戏中并不常见,但重放常见.一种简单的重放实现是记录游戏每帧的状态,这样它可以回放,但那会消耗太多的内存.相反,很多游戏记录每个实体每帧运行的命令 ...
- 近中期3D编程研究目标
近几年一直在用业余时间研究3D编程,研究的中期目标是建立一个实用的开源3D编程框架.3D编程技术最直接的应用是开发游戏,所以3D编程框架也就是3D游戏开发框架.在我看来,游戏是否好玩的关键是能否为玩家 ...
- [.net 多线程]异步编程模式
.NET中的异步编程 - EAP/APM 从.NET 4.5开始,支持的三种异步编程模式: 基于事件的异步编程设计模式 (EAP,Event-based Asynchronous Pattern) 异 ...
- 跟Evan学Sprign编程思想 | Spring注解编程模式【译】
Spring注解编程模式 概况 多年来,Spring Framework不断发展对注解.元注解和组合注解的支持. 本文档旨在帮助开发人员(Spring的最终用户以及Spring Framework和S ...
随机推荐
- JXNU acm选拔赛 涛神的城堡
涛神的城堡 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submiss ...
- 华企盾DSC导致导出文件报错常见处理方法
1.导出文件的进程和打开该文件的进程启用OLE控制是否都是未勾选,以及启用虚拟重定向是否设置一致(要么都勾选要么都不勾) 2.用procmon监控个人模式下导出非加密的文件,搜索writefile的进 ...
- Date、正则表达式练习
Date.正则表达式练习 package com.guoba.date; import java.text.SimpleDateFormat; import java.util.Calendar; i ...
- MinIO客户端之ping
MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc ping 检查指定的MinIO节点的服务是否可用. 不带参数,命令如下: ./mc ping local1 ...
- Python——第五章:处理异常try、except、else、finally
处理异常try 和 except 在 Python 中,try 和 except 语句用于处理异常(错误).通过使用这两个关键字,你可以编写代码来捕获和处理可能发生的异常,以保持程序的稳定性. try ...
- CUDA驱动深度学习发展 - 技术全解与实战
全面介绍CUDA与pytorch cuda实战 关注TechLead,分享AI全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云 ...
- Skywalking(8.7)安装以及docker镜像打包
Skywalking安装以及docker镜像打包 Skywalking版本:apache-skywalking-apm-es7-8.7.0 ES版本:7.17.2 一.下载Skywalking的安装包 ...
- Git commit emoji 对照表
emoji emoji代码 commit说明 (调色板) :art: 改进代码结构/代码格式 ️ (闪电) :zap: 提升性能 (赛马) :racehorse: 提升性能 (火焰) :fire: 移 ...
- Apache Hudi在信息服务行业构建流批一体的实践
个人介绍 李昂 高级数据研发工程师 Apache Doris & Hudi Contributor 业务背景 部门成立早期, 为了应对业务的快速增长, 数仓架构采用了最直接的Lambda架构 ...
- Spark Streaming快速入门
Spark Streaming快速入门 一.简介 Spark Streaming 是构建在 Spark Core 基础之上的流处理框架(但实际上是微批次处理框架),是 Spark 非常重要的组成部分. ...