# 前言

唔.... 辛苦两个多月的 “游戏” 终于发了个 Demo 出来了!

首先,是个视频,当然,仅仅只是目前功能的一个简单展示:

# 程序

百度网盘

# 说明

这算是第四个 “自己” 鼓捣出来的东西了吧。当然,除了 “功能” 之外,余下剧情之类的同样还是没能最终弄完,不过目前功能模块基本也差不多了,没准某个时候又有了时间和兴致,再来补完呢?

包括:
1. 存档系统 (游戏所有功能模块几乎均可存档,模式采用的是二进制)
2. 技能系统 (技能升级、强化等)。

想要学习新的魔法,必须获得 “魔法书”,每个魔法或者技能都具有熟练度的属性,每使用一次,都会增加一点熟练度,当熟练度到达 100% 时,就会升级,并获得一点技能点数,通过使用技能点数,可以对技能进行不同方向选择性地强化。

3. 物品的系统 (包括方便的制作新物品 Editor 工具等)

物品系统也是一个蛮复杂的系统 —— 主要还是因为游戏本身需求。物品被大致分为了装备、道具、食物和材料。
最后的材料设计,是因为当初还打算做 “配方”、“合成” 系统的,比如装备就有 “材质” 的属性。以此,使用相应的材料,便可以由程序来自动生成相应材料制作的装备,并对默认属性进行生成。
除此之外,装备还包括了 “神器” 等参数。

4. 剧情 (任务) 系统 (包括 StoryEditor 等方便的剧情编辑工具)

这个使用了我曾经工作的时候,设计的一个 “Story Editor” 进行管理制作,可以方便地进行可视化的任务设计和编辑,默认情况下,数据存储为 ScriptObject,而存档的时候,则将数据转化为二进制存入存档文件中(所以,若稍加改动,平时也是可以独立于编辑器的)。

5. 实时修改地形的挖矿

因为使用了 Unity 自带的基于高度图的地形,所以在挖矿的时候,所以可以实时修改地形高低。

6. 状态模式切换、战场仇恨值模块等等.... 还有其它一些古古怪怪的功能就不一一列举了,相关功能可查看视频或下载 Demo 测试。

当初的本意是:工作两年之后,总结一下经验来着。我思索着,开始之前,可是还打算自己做做高端点内容,比如 写写 Shader,弄出一套 “高端、大气、上档次” 的效果来。
但是,果然如果真想那样的话,就不应该花时间去做 “逻辑”,而是纯粹像 “Demo” 这个目的去做才行的。一旦开始逻辑,各种各样的地方都开始要时间,大量的时间。

然后,然后就没空去管那些什么高档的效果了。

当然着重优化过的,是代码的性能 —— 毕竟边码代码也是边在设计。
比如代码中尽量避免过多 GC,使用对象池来装技能特效啊、魔法阵什么的,还有大部分功能 (UI) 刷新之类的,都是靠的事件和委托,所以也是省事省力。UI 上不频繁更新,基本上就没多大额外消耗。
平时游戏逻辑运行时的消耗,基本上都是最小的:

性能

(这儿指的是真的只是代码的性能,美术资源我就管不上了,毕竟是到处找的第三方美术资源插件了,所以也根本无从 “监管”。)
(2017.2.22: 特别是天气系统和水资源插件!从上图也可以看出来了,主要消耗是在 Camera 那儿,另外昨天我才发现,那两个插件消耗非常地巨大,基本上 60% 的性能被水资源插件吃了,还有一部分是天气系统!这两个插件当初使用的时候,还都会每帧造成大量 GC【我记得那两个插件更新 Material,竟然直接是每帧去获取的 Materials 的数组,不出 GC 才怪了】,还是我自己去优化的 —— 至于渲染这块儿.... 看上图就知道,开发的时候太流畅了以至于根本没注意到它们的巨大消耗,昨天朋友玩的时候,卡爆了稍微看了下,才发现了这两个的渲染问题 —— 虽说水确实比较真实,但是也太坑性能了 [记得当初在 Assetstore 评价上也看见过有老外在跟作者抱怨... 但是也没怎么在意])
(所以,建议还是好点的机器运行吧 —— 或者在系统设置内,把性能设置调低一点,会好些)
(PS: 我才不会承认我的代码有性能问题!o (︶︿︶) o)

剧情使用的是之前自己写的两个 Unity 的插件 StoryEditor 和 DialogEditor,两个结合起来用,虽然跟当初设计编辑器的用法有些不一样了,不过效果却还是挺不错的。比如说,下图就是游戏刚开始的一个自主剧情的一部分:

剧情

这些很容易就可以添加、修改了,虽然后期因为太忙,已经懒得给新加的功能写编辑器,不过,多数都是可以拖拖拽拽就搞定了。
换句话说,后期..... 除了 AI(因为我又把 AI 从行为树改成状态机实现了,所以得写代码),除非要改(新增)什么功能,否则其它都跟程序关联不大了。

然后,因为考虑到在家两个月了,再自个做下去... 吃着老本实在让人越来越不淡定了。

所以决定还是先找个工作吧。后续内容,工作之余空闲之时也可以做,只是进度会很慢吧... 大概。

另外,在计划这个 Demo 的时候,正好玩了一下曾经玩过的一个游戏《无限世界》,所以,属性设计就参考了那个游戏。

啊,事到临头果然写不出来什么东西了啊!
平时想到什么还是应该记下来!
先就这样了,有什么再补充吧。

# 其他

# 截图

这是个人信息页面,左侧为基本信息,,右侧为强化列表。

这是属性页面.... 因为当时在玩《无限世界》,所以参考那个游戏的属性,设计了一大堆的属性值。

存档栏位无限制,每个存档都是单独作为一个独立二进制文件进行保存的。

魔法,若无任何近战武器装备,默认情况下,会有一个最基础的攻击魔法攻击(造成纯物理伤害)。
想要学习新的魔法,必须获得 “魔法书”,每个魔法或者技能都具有熟练度的属性,每使用一次,都会增加一点熟练度,当熟练度到达 100% 时,就会升级,并获得一点技能点数,通过使用技能点数,可以对技能进行不同方向选择性地强化。

控制台 —— 即一个简单的测试系统。

# 源码

2017 年 2 月 19 日
昨天花了些功夫,我把源码整理上传至百度盘了。今天在贴吧发了一个帖子 (链接),将源码也一并发了出去。
毕竟,当我说出 “我要开始找工作了,这个版本就是...” 的时候,几乎就意味着这个游戏、或者或者说 Demo 差不多就如此了。
这是一种非常玄妙的感觉,在这时候,所有与此相关的功能想法、构思.... 统统消失 (或者说,在思维中变得不起眼了)。就算打开 Unity 的界面,看着熟悉的代码,兴趣也不再似之前那般深刻了。
到了晚上,也不会再 “忍不住” 思考功能、下一步计划,简而言之,不会因此而失眠了。
这几天也一直有打开 Unity,不过只是修复了一些看不下去的 Bug 而已,新的功能,感觉就 “没劲” 去实现了。
真是... 非常奇怪。
所以,暂且如此吧。