5.13 有关游戏设计的总结

一、设置eclipse游戏开发的JRE

  windows---preference---Install JREs---jdk---edit---  -Xmx128m

二、统一建模语言UML(Unified Modeling Language)

  是专门用来进行软件系统和架构建模的一门可视化建模语言,它通过各种图示展示了软件系统的方方面面。

  IBM的系统建模语言UML成为业界认同的统一建模技术。

  一个类中包含:属性,方法,关系。

  在UML中,抽象类的类名以及抽象方法的名字都用斜体字表示。

  -:私有,+:公有,#:受保护,~:默认

  接口名前有《interface》,没有就表示类。

  类和类,类和接口,接口和接口之间存在的关系:实现关系,泛化关系,关联关系,依赖关系,聚合关系,组合关系

  •   实现关系:一个类实现一个接口(由实现类指向接口)
  •   泛化关系:一个类继承另一个类(由子类指向父类)
  • 关联关系:
  1. 依赖关系:(1)一个类是另一个类的方法(2)一个类是另一个类方法的参数(3)一个类是另一个类方法返回类型
  2. 聚合关系:一个类是另一个类的属性,是整体和部分的关系(部分指向整体)
  3. 组合关系:一个类是另一个类的属性,是整体和部分的关系,部分是整体不可分割的一部分(部分指向整体)

三、面向对象的七个原则

  1. 单一职责原则:一个类只应该有一个引起它变化的原因,不要让一个类存在多个变化的理由。换句话说,一个类只应该做和一个职责相关的业务,不要让一个类拥有过多职责。
  2. 开闭原则:软件实体应该面向修改关闭,面向扩展开放。其实其核心是抽象。将相同的部分抽象出来,便于代码重用,这就是闭。将不同的部分也抽象出来,便于功能的扩展,这就是开。开闭原则是面向对象设计原则的核心原则,其他的设计原则都是开闭原则的具体表现和补充。
  3. 聚合/组合复用原则:尽量使用聚合/组合达到代码复用,少使用继承复用。继承只能单根继承,无法通过继承达到多个类代码的重用。但可以通过聚合/组合关系达到多个类的代码重用。
  4. 依赖倒置原则:依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
        我们知道,依赖一定会存在于类与类、模块与模块之间。当两个模块之间存在紧密的耦合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。
        抽象的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心。
        依赖于抽象是一个通用的原则,而某些时候依赖于细节则是在所难免的,必须权衡在抽象和具体之间的取舍,方法不是一层不变的。依赖于抽象,就是对接口编程,不要对实现编程。  
  5. 接口隔离原则

    其核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口。
       具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。
        接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等;而某些时候,实现类型并非需要所有的接口定义,在设计上这是“浪费”,而且在实施上这会带来潜在的问题,对胖接口的修改将导致一连串的客户端程序需要修改,有时候这是一种灾难。在这种情况下,将胖接口分解为多个特点的定制化方法,使得客户端仅仅依赖于它们的实际调用的方法,从而解除了客户端不会依赖于它们不用的方法。
        分离的手段主要有以下两种:1、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。2、多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好的。

  6. 迪米特法则

    一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

  7. 里氏替换原则

    其核心思想是:子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但是基类不一定能替换子类。
        Liskov替换原则,主要着眼于对抽象和多态建立在继承的基础上,因此只有遵循了Liskov替换原则,才能保证继承复用是可靠地。实现的方法是面向接口编程:将公共部分抽象为基类接口或抽象类,通过Extract Abstract Class,在子类中通过覆写父类的方法实现新的方式支持同样的职责。
        Liskov替换原则是关于继承机制的设计原则,违反了Liskov替换原则就必然导致违反开放封闭原则。
        Liskov替换原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。

      

时间: 2024-10-24 10:30:12

5.13 有关游戏设计的总结的相关文章

MMORGP大型游戏设计与开发(客户端架构 part4 of vegine)

昨天是七夕,祝大家都过的快乐,希望这句迟到的问候不会造成大家心中的困扰.这一节讲到了前端比较重要的模块,性能以及调试异常模块.一个应用的性能往往是最核心的部分,就像人身体的各个器官一样,一小部分也不能马虎,否则你得到的只是你想象不到的苦果.在这里,我们封装了性能采集,调试输出.变量打印,以及异常收集.希望大家会对这方面有所了解与进步. 结构 CODE ax模块,文件profile.h /** * PAP Engine ( -- ) * $Id profile.h * @link -- for t

MMORGP大型游戏设计与开发(客户端架构 part11 of vegine)

从早年的无声电影到现在的逼真3D大片,人类在科技上可谓是一再突破.不知道有没有人经历过那无声的日子,没有声音的世界,咱们的耳朵也就失去了它本有的用途了.在游戏世界中,声音元素成了必不可少的一部分,一个没有声音的游戏现在可谓是太少见了,而且存活下来的希望自然不高.当前在游戏中,特别是3D游戏中,声音分为3D音效和平面音效.3D音效中主要是指环境音效,比如说某个地方的流水发出的声音,某片树林里充满的鸟叫声.平面音效即咱们感官的普通音效,背景音乐,自身的技能.UI声音. CODE 模块sound 文件

游戏设计艺术 第2版 (Jesse Schell 著)

第1章 太初之时,有设计师 第2章 设计师创造体验 第3章 体验发生于场景 第4章 体验从游戏中诞生 第5章 游戏由元素构成 第6章 元素支撑起主题 第7章 游戏始于一个创意 第8章 游戏通过迭代提高 第9章 游戏为玩家而生 第10章 体验在玩家的脑中 第11章 玩家的动机驱使着玩家的闹 第12章 有些元素是游戏机制 第13章 游戏机制必须平衡 第14章 游戏机制支持谜题 第15章 玩家通过界面玩游戏 第16章 体验可以用它们的兴趣曲线来评价 第17章 有种体验叫作故事 第18章 游戏和游戏结构

unity3f游戏开发之游戏设计中运营重用体系

游戏设计中,运用重用体系重用资源包括有以下几个设计目的: 1).方便玩家识别 为了方便玩家识别某一类游戏中的要素,而采用的设计目的.如某种某种动物的皮毛的道具图标.为了区分不同,除了基本图素相同外,不同之处只是以变换颜色和更改名称加以区分,这样可以方便玩家快速识别图标. 2).降低客户端的容量 游戏中最占用硬盘空间的,其实是大量的资源,如模型文件.贴图等美术资源文件.为了降低客户端的容量,开发者除了要采用压包技术进行资源压包外,在设计的过程中,设计师还要考虑到客户端容量大小的问题(特别是某些2D

MMORGP大型游戏设计与开发(客户端架构 part1 of vegine)

重写有些核心接口的时候,其实遇到了许多的问题,甚至一度的想过要放弃,但是最终还是坚持了下来.在客户端提供的这些接口中,可以清晰的看到客户端所依赖的各种模块的支持,以及各自之间的一些关联.下面只是介绍了vengine(微引擎)接口的基础模块框架,所谓的接口即对象设计中常见的Interface,为一个框架提供了清晰的规范支持. VEGINE FRAMEWORK 功能实现 该接口已全部实现,具体的实例只需要继承接口封装即可.上图只为简单的模块介绍,其实每个接口都有每个接口其特别的用处,这一点会在接下的

游戏设计中的道德

最近一直在思考一些关于游戏设计方面的问题.入行已经两年了,以前跟所有刚入行的朋友一样,一直想着怎么从自己设计的游戏中赚钱.怎么让玩家为我的劳动成果买单.当然,我并不是说这样不好,因为只要形成一个良性的循环,优秀的游戏才会持续不断的出现,君不见,几年前国内还是有很多优秀的单机游戏的,但是由于破解的存在,以及中国人在几年前还有着"我都花钱买了电脑了,难道软件还要钱吗?更别提游戏了."这些众所周知的原因,现在中国的市场上已经很难看到新的优秀单机游戏的出现了,还好手游平台拓宽了国内的游戏市场,

activiti5.13 框架 数据库设计说明书

转载自:http://www.cnblogs.com/llzgzljl/p/3356108.html activiti5.13 框架 数据库设计说明书 1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*: ‘RU’表示runtime,运行时表-Runtim

白--留白与游戏设计

我所谓之白,非颜色之白,乃设计之白,思想之白也. 我对白的理解得益于对日本传统艺术与现代设计的些许了解,前几日偶得日本设计业前辈原研哉先生的一本书<白>.阅后颇有所思,不禁联想至游戏行业.白,也可称间或空.是日本艺术创造中一直沿承的一种创作思维.空不是无,而是留给人们想象的空间,以自我的感受体会填充空,仿佛自己与艺术品融为一体,这也算是艺术至高境界之一了. 举两例也许可使白之意更为真切.其一,日本桃山时代画家长谷川等伯的<松林图>,这幅水墨作品中,稀疏错落的松木三三两两的布局在白色

怎样设计一个好玩的游戏——游戏设计的艺术

前言: 一个好玩的游戏,就是要让玩家在玩游戏的过程中感到愉快的游戏体验.游戏品质一般可以分为三个层次:普通.精品.经典. 仅仅要游戏能赚钱的好游戏可算是精品游戏,而经典的游戏,必定有深厚的游戏内涵,甚至可以从这个游戏产生周边产品:比如从游戏改编电影.玩具等等,有额外附加值.一个游戏的好坏由多方面决定,这里我们仅仅关注趣味性.其实趣味性是一个游戏最重要的部分.游戏画面优美程度,或者玩家可玩时间,或者角色的主角的乳房部位多边形数目,这些都是其次. 1.给予玩家目标(让玩家入局) 游戏開始的时候,我们