阅读笔记
文章平均质量分 72
铃兰177
蓬莱山在
展开
-
游戏设计模式总结
后续这本书的读书笔记感悟都将更新在这里。原创 2022-03-22 14:42:29 · 3394 阅读 · 0 评论 -
游戏设计模式阅读笔记19——优化模式(空间分区)
目录一、意图二、动机三、空间分区1.适用场景:2.实例代码四、注意 1.划分是层次的还是平面的? 2.划分依赖于对象数量吗?空间分区 · Optimization Patterns · 游戏设计模式一、意图将对象根据它们的位置存储在数据结构中,来高效地定位对象。二、动机在实施战略游戏中。双方有成百上千的单位在战场上撞在一起。战士自动向离他最近的敌人挥刀。最简单的处理就是遍历所有敌人。如果...原创 2022-03-22 11:27:29 · 3513 阅读 · 0 评论 -
游戏设计模式阅读笔记18——优化模式(对象池模式)
定义一个池对象,其包含一组可重用对象。其中每个可重用对象都支持查询其状态,是否在被使用。池被初始化时,就创建了整个对象集合(通常使用一次连续的分配)。 需要新对象,池子会返回一个不在使用中的对象,并改变其状态。原创 2022-03-21 10:35:00 · 4123 阅读 · 0 评论 -
游戏设计模式阅读笔记17——优化模式(脏标识模式)
将工作延期至需要其结果时才执行,避免不必要的工作。一组原始数据随着时间变化而改变。使用代价昂贵的过程推定一组导出数据。用一个脏标识追踪导出数据是否与原始数据保持一致。它在原始数据改变时被设置。如果导出数据被请求时,该标识被设置了,那么重新计算并清除标识 否则的话,使用之前缓存的导出数据。原创 2022-03-18 16:45:55 · 643 阅读 · 0 评论 -
游戏设计模式阅读笔记16——优化模式(数据局部性)
现代CPU有缓存来加速内存读取。它可以更快地读取最近访问过的内存的毗邻内存。通过提高内存局部性来提高性能——保证数据以处理顺序排列在连续内存中。原创 2022-03-17 11:24:25 · 3229 阅读 · 0 评论 -
游戏设计模式阅读笔记15——解耦模式(服务定位器)
提供服务的全局接入点,避免使用者和实现服务的具体类耦合。 服务类定义了一堆操作的抽象接口。具体的服务提供者实现这个接口。分离的服务定位器提供了通过查询获取服务方法,同时隐藏了服务提供者的具体细节和定位它的过程。原创 2022-03-16 11:31:08 · 1259 阅读 · 0 评论 -
游戏设计模式阅读笔记14——解耦模式(事件队列)
事件队列也叫消息队列,是更广为人知的观察者模式的异步实现。 事件队列在队列中按先入先出的顺序存储一系列的时间。发送的系统,将请求放入队列,立即返回。处理请求的系统之后从队列中获取请求并处理。 就解耦了发送者和接收者,既静态又及时。原创 2022-03-15 11:15:36 · 1783 阅读 · 0 评论 -
游戏设计模式阅读笔记13——解耦模式(组件模式)
允许单一实体跨越多个领域而不会导致这些领域彼此耦合。原创 2022-03-14 10:41:30 · 1385 阅读 · 0 评论 -
游戏设计模式阅读笔记12——行为模式(类型对象)
目录一、意图二、动机三、类型对象 1. 适用场景: 2.难以定义每种类型的行为四、实例代码一、意图创造类A来允许灵活地创新“类型”,类A的每个实例都代表了不同的对象类型。二、动机以怪物为例,在一个游戏中可能有很多中怪物。他们有相同的行为,走,攻击,跳跃等。但是他们的血量,攻击力,速度有不同。传统的面向对象方案是,写一个Monster基类,然后每种怪物都继承基类。...原创 2022-03-11 11:50:02 · 1010 阅读 · 0 评论 -
游戏设计模式阅读笔记11——行为模式(子类沙箱)
基类定义抽象的沙箱方法和几个提供的操作。将操作标为protected,表明它们只为子类所使用。每个推导出的沙箱子类用提供的操作实现了沙箱函数。原创 2022-03-10 13:56:31 · 1381 阅读 · 0 评论 -
游戏设计模式阅读笔记10——行为模式(字节码)
一、意图将行为编码为虚拟机器上的指令,赋予其数据的灵活性。二、动机 为了脱离出一些容易被修改的部分,而不是使用硬编码的方式。如果是硬编码,每次修改都要在游戏的可执行文件打补丁。如果支持模组,那每个模组制造这都需要拥有编译游戏的整套工具链。而且需要开源游戏代码。三、方法1.解释器模式以编程语言为例:比如算术表达式:(1 + 2)*(3 - 4) 将每块表达式和每条语言规则都变成对象。就变成了下面的树状。解释器模...原创 2022-03-09 10:40:08 · 402 阅读 · 0 评论 -
游戏设计模式阅读笔记9——序列模式(更新方法)
简单的更新,会堆积在游戏循环代码中。随着需要更新的对象越来越多,循环就会越来越杂乱无章。更新方法就是用来优化这个简单的循环逻辑。原创 2022-03-07 11:12:47 · 432 阅读 · 0 评论 -
游戏设计模式阅读笔记8——序列模式(游戏循环)
一、意图 将游戏的进行和玩家的输入解耦,和处理器速度解耦。二、动机 一个真实游戏循环的第一个关键部分:它处理用户输入,但是不等待它。循环总是继续旋转。 使用实际时间来测算游戏循环运行的速度,就得到了帧率FPS。一个简单的while循环是能转多快转多快。两个因素决定它的帧率: 1.每帧需要做的工作。(复杂的物理,众多需要渲染的对象......) 2.底层平台的速度。更快的芯片可以在同样的时间里执行更多的...原创 2022-03-02 16:42:27 · 827 阅读 · 0 评论 -
游戏设计模式阅读笔记7——序列模式(双缓冲模式)
双缓冲解决的核心问题是状态可能在被修改的同时被请求。原创 2022-03-01 11:11:27 · 602 阅读 · 0 评论 -
游戏设计模式阅读笔记6——重访设计模式(状态模式)
状态模式,有限状态机(FSMs),层次状态机,下推自动机。如果你从来没有听说过状态机,不要难过。虽然在AI和编译器程序方面很出名,但它在其他编程圈就没这么知名。一、有限状态机1.例子当在做玩家操作时,比如:跳跃。跳跃不能在下降时跳,不能在游泳的时候跳,不能再。。。发生。又可以在斩击的时候发生,实现跳斩。单单一个动作就有很多规则,最简单的ifelse列举很多情况,只会让情况变糟糕。当有限状态机的加入:先画一个流程图:有限状态...原创 2022-02-28 15:03:34 · 546 阅读 · 0 评论 -
游戏设计模式阅读笔记5——重访设计模式(单例模式)
GOF描述的单例模式通常弊大于利。他们强调应该谨慎使用这个模式,但在游戏业界的口口相传中,这一提示经常被无视了原创 2022-02-22 18:27:18 · 724 阅读 · 0 评论 -
游戏设计模式阅读笔记4——重访设计模式(原型模式)
现在有很多原型的术语,这里讨论的是传统的原型设计模式。1.《圣铠传说》例子 但这种会产生众多的类,众多的引用,众多冗余,众多的副本。原型模式的关键思路:一个对象可以产出与它自己相近的对象、这里运用原型模式:所有的怪兽都继承这个基类。就只需要再定义一个生产者类:2.原型语言范式很多人认为“面向对象编程”和“类”是同义词。而除了使用类来实现,还可以使用self语义,...原创 2022-02-22 17:20:40 · 614 阅读 · 0 评论 -
游戏设计模式阅读笔记3——重访设计模式(观察者模式)
观察者模型是应用最广泛和最为人知的GoF模型。随便打开电脑的一个应用,就很有可能他用了MVC架构。原创 2022-02-11 11:04:26 · 802 阅读 · 0 评论 -
游戏设计模式阅读笔记2——重访设计模式(享元模式)
对于有很多相同的类时,需要共享类时,就会用到享元模式。比如渲染森林时,CPU向GPU传递3D数据。目前的游戏中,很多数都会使用一样模型,这时候就可以使用一个共享类。每二、.享元模式1.简介对于有很多相同的类时,需要共享类时,就会用到享元模式。比如渲染森林时,CPU向GPU传递3D数据。目前的游戏中,很多数都会使用一样模型,这时候就可以使用一个共享类。每棵树的需要传递数据就会大大的减少。在Unity的静态批处理和动态批处理。还有URP管线中的SRP Batcher。...原创 2022-02-11 10:04:08 · 1046 阅读 · 0 评论 -
游戏设计模式阅读笔记1——重访设计模式(命令模式)
目录一、命令模式1.定义2.解耦消费者和生产者实例3.撤销和重做的例子4.用类还是用函数5.总结一、命令模式1.定义GOF的定义精简定义:命令是具观化的方法调用。2.解耦消费者和生产者实例上面是一个简单的按键调函数的例子。但在这里,返回的是一个函数。最后再用传入“消费者”。这个模式也适用于,AI触发更高级的行为。把按键行为换成某个AI。则AI只需要生成命令,然后玩家角色...原创 2022-02-10 15:10:16 · 821 阅读 · 0 评论 -
游戏设计模式阅读笔记0——序
中文版链接:致谢 · 游戏设计模式一、序——笔记反思1.反思:在是实习生的时候,就明显感觉到了主程在编码能力上对我的压制力。具体体现在,同样的功能,他的思路更清晰,实现明显更优美,模块更分明,但当时的我只能尽量依葫芦画瓢,也不明白这是哪方面的知识的缺失,只能全归在经验缺失上。在正式工作后,感觉到自己的代码复用性很低,平时写代码很没有规范,总觉得少了一部分知识学习。只知道实现功能,而不知道如何规范,优美的实现功能。对性能也一知半解。2.3....原创 2022-02-10 10:28:34 · 533 阅读 · 0 评论