存档

‘设计模式’ 分类的存档

接口和抽象类在程序设计中的区别和定位

2021年4月30日 评论已被关闭

在开发中,很多情况下倾向于使用虚基类,而很少使用接口,有些人甚至声称接口很“鸡肋”,不知道接口可以用来做什么、怎么用。本文根据个人开发经验和阅读大型项目代码的经验总结一下接口和基类在程序设计、架构上面的区别和定位。

阅读全文...

分类: Unity, 设计模式, 游戏开发 标签:

【游戏设计模式】注册表

2021年4月6日 评论已被关闭

【游戏设计模式】分化

2021年2月24日 评论已被关闭

分化(differentiation)是从细胞分化中衍生的概念,指一个类的不同实例拥有不同的行为和特征,选择性开启某些属性或者方法。

阅读全文...

分类: 设计模式 标签:

【游戏设计模式】派生和演化

2020年9月24日 评论已被关闭

派生(derive)和继承是OOP的核心,随着经验增加,对派生的理解更深入后认为有必要写一篇文章。

阅读全文...

分类: 设计模式, 其他 标签:

【游戏设计模式】多例模式

2020年7月27日 评论已被关闭

多例模式(Multiton)区别于单例模式,类型在整个进程内同时可以有多个实例,可以不限制实例个数,也可以限制实例个数,且在类型内部创建、管理实例,并向外部提供实例。多例模式的应用包括对象池、线程池等。多例模式不像单例模式那样通过一个Multiton模板去实现,是比较隐晦的,但应用很多,简单的说就是集中创建、管理、销毁某个类型的实例,属于一种创建型模式。 阅读全文...

分类: 设计模式 标签:

【游戏设计模式】装饰器

2020年7月23日 评论已被关闭

装饰器(Decorator)有的地方叫包装器(Wrapper)用来对类型进行扩展,但并不直接继承这个类型,而是继承自类型的基类,并通过组合方式引用此类型。这样不会产生拥有同样特性的重复类,只提供额外的新特性。也可以称作包装器(Wrapper),一个包装器是对另一个类型的包装。

阅读全文...

分类: 设计模式 标签:

【游戏设计模式】共生

2020年5月24日 评论已被关闭

共生(Symbiotic Objects)指紧密联系的一些对象,拥有相同的生命周期,一荣俱荣,一损俱损,当其中一个被销毁时,其他共生对象也会一起销毁,这些对象共同组成一个共生体。

阅读全文...

分类: 设计模式 标签:

【游戏设计模式】可见性剔除

2020年4月1日 评论已被关闭

当游戏场景中存在几十上百个复杂物体时,对这些物体进行逻辑更新以及渲染是很大的工作,一个自然而然能够想到的优化就是根据可见性进行剔除。这些剔除操作对效率的优化是最明显的,是应该首先考虑的优化。

阅读全文...

【游戏设计模式】子系统

2019年11月7日 评论已被关闭

游戏开发的复杂性体现在模块的多样性和相互之间的协作上,比如动画、渲染、物理、特效、逻辑等等。一个游戏角色可能同时包含这些模块(组件),如果在角色的update中处理所有的内容,会让维护和调试非常困难。子系统的设计方法用来解决这个问题,将同一模块的类和操作封装为一个子系统,以独立的生命周期运行,这样能降低上层模块和底层模块的耦合度。合理构建子系统能让代码逻辑清晰、易于调试以及优化。

阅读全文...

【游戏设计模式】“种群”和资源管理

2019年10月7日 评论已被关闭

资源管理包含一系列算法的弹性控制内存、CPU、GPU资源的算法。把计算机的硬件资源视作大自然,一个进程视作一个种群,内存中的对象实例视作种群中的个体,每个个体会占用相应的自然资源,随着种群规模增长,占用的自然资源同步增加,当自然资源超过极限时,就会压缩种群数量,最终达到动态平衡。操纵大自然的上帝之手,追求的是以最少的资源维持最低的种群繁衍速度,并保证种群存活率,以达到物种多样性。程序对应的是上帝之手,追求的是最低开销下的最高性能。

阅读全文...