Skip to content
xxr5566833 edited this page Nov 1, 2017 · 5 revisions

设计产生的思路历程记录

2017.10.22 第一次会议后

下面定义昨晚7点多的会议是第一次会议,之后我们四个人讨论的是第二次会议。

昨天晚上第一次最后我们确定了我们的大致的功能实现目标:

借鉴开罗游戏的《游戏发展国》:

  1. 实现员工的雇佣,解雇,培养等
  2. 实现项目的产生,接受,完成,结算等
  3. 还有资金的赚和赔

以上是我们在第一次会议最后确定的简单框架。

之后在第二次会议中,我们又在这个基础上仔细的讨论了具体要实现的功能细节以及如何实现的细节,我们在讨论时的思路是这样的:

  1. 根据第一次会议的那三点,我们可以先把这个游戏的第一个场景给大致的描述出来。(见附图)

  2. 考虑到我们是第一次接触这里,所以目前仅仅就考虑第一次会议的那几个基本功能。(经过讨论后发现这几个基本功能细节也很多)所以我们在具体功能设计时,完全就是通过“实现这个场景里各个组件的具体功能”这个思路来思考该设计哪些功能。这里我们把设计先分为UI游戏内逻辑

  3. UI功能的大致描述,我们可以从这个场景的左上角到右下角扫描一遍要实现的功能,同时定义UI功能是指:

    1. 日期(即记录游戏内部的时间)的表示和自动增加
    2. 金币的表示和自动增加
    3. 我们可能需要一些对话框用来:①新手引导②随机事件的触发等
    4. 员工的状态表示(这里我们可以定义员工有多个状态:①闲着,即随时准备工作②工作中③放假或者休息),这里的状态表示具体是指要根据员工的状态让他能做出不同的动作,比如工作中会敲键盘,闲着会左顾右盼,放假会离开,放完假会回来等
    5. 员工可能的随机事件等
    6. 接下来就是菜单栏了,在《开罗游戏》中,菜单栏是点击弹出并暂停游戏,这里我们可以借鉴它的做法,或者我们可以自己设计一种表现形式。但不管怎样,菜单栏和子菜单栏的按钮交互要设计好
    7. 然后在点击菜单栏的某个选项,比如点击了“开发”栏中的“接受外包任务”这个选项后,我们需要弹出一个框,其中包含每个可接受任务的相关信息,并且提供“接受”和“关闭”按钮供点击,所以这种触发具体功能的UI框也需要设计,再举个例子就是在点击“职员”的“解雇”后会提供包含所有职员的信息框,并提供“解雇”按钮。总之就是这种触发具体功能的UI框也是需要设计的
    8. 状态栏的实现。在这里状态栏就是指《开罗游戏》中的最下方的状态栏,可以记录当前进度,全年受益等等信息

所以我觉得大致的UI功能是上面这些了,大家有什么意见可以补充或者有什么不明白的地方说出来。

  1. 游戏内部逻辑的大致描述,其实我设计游戏内部逻辑的思路就是:通过实现之前UI的内部游戏逻辑就好,所以下面叙述游戏内部逻辑的思路也是这样:
    1. 左上角的日期具体实现:我们游戏内部需要有一个全局的单一日期类来记录游戏内部的时间

    2. 右上角的资金具体实现:我们游戏内部可能需要有一个类似于会计类来管理公司的资金的流动,资金的流动其实之前也总结了,目前支出就是员工的工资或者还可能用于职员的培养,收入就是外包,并且可以把资金流动记录下来后面其他功能实现可能会用到

    3. 职员在不同状态下的不同行为:比如职员在“工作”状态下,肯定需要实现相应的工作方法,在《开罗游戏》里的表现就是会给当前的项目增加点数。还有就是职员在不同状态之间的转换方法等。这些我觉得可能需要职员类职员管理类共同完成。

    4. 菜单栏中“开发”的具体实现:我们肯定需要任务产生类来根据当前公司状态和公司之前的“开发经验”产生适合的任务。同时肯定也有任务类或者说是项目类来描述一个任务对象,会有相应的目标,截止时间,报酬等属性。

    5. 菜单栏中“职员”相关按钮的具体实现:

      1. 职员雇佣:职员雇佣的具体步骤是:①人才市场类(目前先这么叫)提供可选的职员②我们选定某个职员后就把它加入到我们的职员管理类中作为公司的一员
      2. 职员解雇:这个用职员管理类提供具体的方法就好
      3. 职员培养:这个我觉得可以让职员管理类提供相应的方法就可以吧
    6. 菜单栏中“设置”相关按钮的实现:

      1. 可能需要设置相关音乐声音大小,音效,游戏速度等等,所以可能需要一个全局的游戏控制类来控制所有的音乐大小,游戏速度等等
      2. 可以把玩家的成就记录放这里,这个优先级不高
      3. 可以设置一个“存档”功能,不过还没想好存档的具体实现

到现在我们其实就粗略的实现了对UI和游戏内部两大逻辑的分析,但是之前也说了上面分析的思路是按照:从需要实现的初始场景的左上角到右下角扫描一遍,分析出所有需要的UI和对应游戏内部逻辑。所以我们还没有细致的考虑很多功能的具体代码实现和各个类之间的依赖关系,还没有考虑类之间的耦合性问题。所以下面的思路着重从这些方面来描述设计。

2017.10.31

确定了现在先按照《游戏发展国》的“委托开发”模块继续进行开发。

在定义接下来的工作之前,我把之前遗留下的问题修复了一些,包括:

  1. issue中的一些bug和编码约定,但是不包括公有私有,目前还没有确定相关约定。大家可以在编码约定里查看新增的注释和cc.log的规定,
  2. 新增了PGControl是用于之后扩展多个不同阶段的人才市场用的,对接下来要实现的逻辑没有影响,接下来计划要实现的逻辑先假设只有一个人才市场
  3. 新增的Game组件是为了以后的控制游戏的初始化逻辑等实现预留的,对计划实现的逻辑还没有影响。
  4. 规定接下来要实现的逻辑:
    1. 点击“委托开发”后,显示可选任务界面,选择可选任务并完成,结束后根据完成情况弹出相应的结算界面这整个流程
    2. 点击"雇佣"后,显示可选人物界面,选择可选人物,并把新人物加入到场景中即“雇佣”的整个流程
    3. 点击“解雇”后,显示可解雇人物界面,选择可解雇人物,并把人物从场景中删除,即“解雇”整个流程
    4. 实现人物的动画,包括:①闲时动画②工作时动画③门口和对应座位之间的自动寻路动画(这个如果实现难度大,可以先暂定先实现①和②)

2017.11.1

  1. 增加了person一些属性
  2. 增加了一些资源文件

Clone this wiki locally