美文网首页我爱编程
游戏中的设计模式综述

游戏中的设计模式综述

作者: JervieQin | 来源:发表于2018-05-28 16:23 被阅读0次

初衷

学游戏制作也有一段时间了,越来越觉得游戏制作对于我们程序员来说根本还是在编程而不是使用引擎(或许是unity太好用了,让我忽略了这个最浅显的道理)。之前也一直在依赖引擎,但是随着深入才发现本末倒置了。所以,今天开始持续更新设计模式文集。并且,今后的主要任务就是加强编程能力。
我们知道所有软件都是需要维护的,游戏也一样。但是有的软件维护起来很舒服,有的却分分钟让人抓狂。这是为什么呢?因为代码的组织方式、软件架构是有好坏的。这些方面做好了,你的系统条理十分清晰、能够很容易的应对需求的改变。所以我们学习软件开发不能只是说“哦,我做出了什么什么软件,我实现了什么什么功能”,我们还要追求我们的代码是否扩展性优良、容错性优良、维护友好。

本文集参考的书籍

《大话设计模式》程杰:这本书能够由浅入深的带我们认识每一个设计模式。
《游戏编程模式》Robert Nystorm:这本书将设计模式运用到游戏的思考中,可以给我们游戏程序员更好的掌握设计模式。

案例

本文集中出现的案例我都会放到github上供大家参考。


接下来,我们来简单看一下《游戏编程模式》中对软件架构的讨论。

什么是好的软件架构

好的设计当程序员做出改动时,可以调用少量的可选函数来完美解决一个问题,而不会给整体程序带来副作用。

我们如何从解耦中获益

如果两块代码耦合,意味着你必须同时了解这两块代码。如果你让他们解耦,那么你只需要了解其一。这是软件架构的一个关键目标。
当然,解耦的另一个定义是:当修改了一块代码时不必再修改另一块代码。尽量介绍修改波及的范围。

代价

这似乎正是人们会对抽象、模块化、设计模式和软件架构兴奋的原因。良好的软件架构在生产力上会形成巨大的差异。怎么夸它带来都不为过。

但是,天下没有免费的午餐。良好的架构需要一系列准则和努力。每当你实现一个功能时,你必须优雅的将它们融入到整个系统中。所以,你必须如履薄冰地组织代码并保证它在开发周期中经历数以千计的修改后仍具有良好的组织性。

你必须考虑程序那一部分应该要解耦然后再这些地方引入抽象。同样的,你要确定在哪里做一些扩展以便将来很容易应对变化。
如此种种,都将延长你组织代码的时间。
另外,许多模式在增加你代码的灵活性时蚕食你的性能。

因此,设计模式不是说用的越多越好,而是在你可预见的前提下,利大于弊的分析下才使用。而这种经验之谈只有多与大牛交流或者时间积累才能学习到。

相关文章

  • 游戏中的设计模式综述

    初衷 学游戏制作也有一段时间了,越来越觉得游戏制作对于我们程序员来说根本还是在编程而不是使用引擎(或许是unity...

  • 设计模式-综述

    设计模式:设计模式可以通俗的理解为实现/解决某些问题,而形成的解决方案规范。增加代码的可重用性,让代码能更容易理解...

  • 设计模式综述

    设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用...

  • 设计模式综述

    1.为什么需要设计模式 1.1 软件设计准则 一个好的软件系统通常需要满足以下原则: * 单一职责原则 一个类=只...

  • 快速理解设计模式之创建型模式

    要想更全面理解设计模式,建议先查看Spring的设计模式快速入门干货,前半部分是设计模式的分类和综述,与Sprin...

  • iOS常用设计模式综述

    1-设计模式主要有三种: 创建型模式:主要用于描述如何创建对象; 结构型模式:主要用于描述如何实现类或对象的而组合...

  • 设计模式(Design Patterns)综述

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设...

  • 行为型模式之职责链

    参考: 责任链模式综述 引言: 行为型模式是一类主要关注对象之间相互通信(也可以说成交互)的设计模式。 其作用...

  • KG知识图谱 学习 Part2 - 知识图谱设计

    ?主要是进行知识图谱的设计模式和方法☺️这部分的学习主要就是对实体的设计和关系的设计 综述 1.知识设计方法 1....

  • 第三波总结

    六、产品设计方法总结(点、面) 【应用内搜索设计】 以xx游戏中心为例 <1>明确索引,罗列索引 标题、tag、游...

网友评论

    本文标题:游戏中的设计模式综述

    本文链接:https://www.haomeiwen.com/subject/ockijftx.html