摘要: 通过创建一个类来支持新类型的灵活创建,其每个实例都代表一个不同的对象类型。 (摘自《游戏编程模式》) 有两种实现多态的方式,“Have One”和继承。而类型对象模式就是运用“Have One”。类型对象模式的处理和享元模式类似,都是需要将一类对象的共有部分独立成一个类并采用“Have One”将其 阅读全文
posted @ 2021-10-27 14:50 ZhuSenlin 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 使用基类提供的操作集合来定义子类中的行为。 (摘自《游戏编程模式》) 沙盒(英语:sandbox,又译为沙箱)是一种安全机制,为运行中的程序提供的隔离环境。 (摘自维基百科) 在我看来,子类沙盒模式就是一种是代码更紧凑为目的的模式,它更好的约束了程序员对继承的肆意使用。为什么这么说呢?首先我们要了解 阅读全文
posted @ 2021-10-26 11:26 ZhuSenlin 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 通过将行为编码成虚拟机指令,而使其具备数据的灵活性。 (摘自《游戏编程模式》) 游戏是一个庞大的工程,因此,在开发的过程中我们会选用高稳定性和高效率的重型语言,例如C++。C++的每一次代码更新都需要编译,然而庞大的代码量使得编译时间变得很长。因此,我们需要想办法将可自定义性高、变动可能性高的部分从 阅读全文
posted @ 2021-10-25 16:34 ZhuSenlin 阅读(104) 评论(0) 推荐(0) 编辑
摘要: AI角色处于“感知”->“思考”->“行动”的循环中。 (摘自《Unity3D人工智能编程精粹》) 我们常常希望游戏中的非玩家角色(NPC)能够更像一个真正的人,可以主动获取周围的信息,做出符合人逻辑的选择并迅速的执行。对这一方面的研究就属于游戏中的人工智能(AI)部分。机器和人的重要区别就在于主动 阅读全文
posted @ 2021-10-23 23:35 ZhuSenlin 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 通过对所有对象实例同时进行帧更新来模拟一系列相互独立的游戏对象。 (摘自《游戏编程模式》) 游戏状态更新最好由游戏循环进行调用,而非重新编写while()循环代码,但当我们使用Unity开发游戏的时候,我们有接触到游戏循环的代码吗?我们如何将需要实时调用的代码添加到游戏循环中?相比Unity开发者都 阅读全文
posted @ 2021-10-22 10:46 ZhuSenlin 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 实现用户输入和处理器速度在游戏行进时间上的解耦。 (摘自《游戏编程模式》) 游戏作为一个实时互动软件,实时是其核心。在程序里,总有那么一段代码一直在软件运行周期里不断重复着以监听着用户的输入,并根据输入进行对应的响应,这就是游戏循环代码。要注意的是,在游戏循环中不会出现类似UI事件循环中的阻塞,即使 阅读全文
posted @ 2021-10-22 09:57 ZhuSenlin 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 问题引入 尽管计算机的处理能力相比过去有了极大的进步。但对于实时渲染的游戏程序,仍旧不能在一瞬间将同屏的所有物件全部加载出来。即使可以,用户的硬件条件参差不齐,若运行在性能较低的机器,用户将看到破碎断续加载的画面。 从更底层形象地看断续加载的原因,就要了解画面是如何绘制的。计算机维护着一个帧缓冲区, 阅读全文
posted @ 2021-10-21 10:23 ZhuSenlin 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 允许一个对象在其内部状态改变时改变自身的行为。对象看起来好像是在修改自身类。。 (摘自《游戏编程模式》) 我们熟悉的名词:有限状态机(finite state machines,fsm)就是状态模式的应用。正如Unity 的动画状态机。 状态机 根据上面给出Unity游戏引擎的Animator状态机 阅读全文
posted @ 2021-10-20 15:27 ZhuSenlin 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 确保一个类只有一个实例,并为其提供一个全局访问入口。 (摘自《游戏编程模式》) 在GoF中对单例模式的描述中,它通常弊大于利。我的实际编码过程很喜欢使用单例,因为它让代码更加整洁,且访问函数时很便捷。然而,同样要注意的是,单例模式具有很多缺点缺点,我们需要知道如何在使用中避免这些弊端的影响。 单例模 阅读全文
posted @ 2021-10-20 11:02 ZhuSenlin 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 使用特定原型实例来创建特定种类的对象,并且通过拷贝原型来创建新的对象。 (摘自《游戏编程模式》) 原型模式很简单,简单到我们看到描述的定义就能知道大概如何实现。然而,在当时没有泛型编程的时代,能够将代码按照原型模式进行设计也是花费了很大功夫去组织的。我们需要体会设计一步步实现的思考过程。 原型模式主 阅读全文
posted @ 2021-10-19 22:56 ZhuSenlin 阅读(92) 评论(0) 推荐(0) 编辑