《星界战场》开发日志 #3_进行
海报
海报完成了,下面是用在 Steam 商店页的效果。

游戏中的主美术还是以画素为主,实现的效率会高些。
游戏特性
这个游戏玩起来的感觉基本上像是一个小型的桌游。现在的版本在用简单的 AI 模拟对战的情况下,每局平均时间是两分钟,接下来加入动画和特效后一局时间会长很多,所以我们会控制整个游戏以比较快的节奏进行。以下是这两天加入的闪电链式攻击的效果,棋盘只是除错状态,实际战斗不会有这么大规模的部队接壤:

现在我们海报上的宣传语为:A Turn-based Strategy Sci-Fi Game In Anime Style。我现在想,还可以再加入一些词比如:Fast Pace / Board Game,那么整体可以改为:A Fast Pace Sci-Fi Board Game In Anime Style。这样一来一句话就包含了特性/型别/题材/美术风格。
另外,如果大家看过 B 站上自动对战的视讯的话,会感觉这个这个游戏还有点像消除游戏,所以要不要加入 Puzzle,我考虑一下 ...
快进
在我为这个游戏写日志的时候,实际开发已经进行了一个多月了,专案真正开始在 4 月中旬左右,现在把这段时间的内容压缩的介绍一下:
编辑器
人物设计完成后,我开始在 unity 中建立两个最基本的资料结构:地板和棋子。接下来我需要一些用于测试规则和互动的起始棋盘资料,这就需要一个简单的编辑器,试着做了一下,大概是 unity 不熟悉的原因总是有点不顺手。于是赶紧回到 godot 一下子就弄出来了:

规则逻辑
写规则逻辑的时候,我们是 playmaker 和 c# 混用的,C# 主要进行大规模的资料处理,这个方面 playmaker 是短板,主逻辑由 playmaker 负责,视觉化后的游戏逻辑比较清晰也比较容易除错。工作量主要集中在两大部分:

部队调色 Shader
调色版颜色替换,这是老画素游戏的一个特征,现代引擎当然已经不再支援这种老旧的 index 颜色技术。这个游戏中有红蓝两种部队,兵种都是一样的,所以很自然的,如果画了红色的,通过换调色版改成蓝色部队就好了。外部软件可以做这个工作,但是图片资源较多的时候就有点费劲了。所以我打算用 Shader 来完成。通过 Shader 实现颜色替换可以通过两种方式完成:一种是将要替换的颜色数值输入,一种是用贴图来将颜色对应关系进行输入。我不想学习任何一种 Shader 语言,所以我这里用节点 Shader 来实现。起初用的 Unity 的 Shader Graph,后来发现这个 Shader Graph 不能在预设渲染管道下使用,所以改为使用 ASE:

这个是将 16 种颜色进行替换的部分,看起来很笨,但是很有效,但是会有个替换的先后问题。


将以上图片中间部分颜色块作为贴图输入 Shader 就可以进行颜色替换。
网络对战
规则逻辑完成后,我们已经可以实现自己跟自己进行对战,那是不是该弄下 AI 了呢?我们觉得 AI 是块硬骨头,为了便于测试,我们决定先把网络对战弄起来,然后遇到了不少困难和问题:
这一弄至少花掉了两周的时间。
最笨的 AI
网络端完成后,我们开始弄 AI 部分。首先规则部分要对 AI 提供一些资料界面,就是让 AI 能够拿到当前棋盘的各种资料,最主要的是 AI 能够做的操作的所有可能性。有了这个之后就可以实现最笨的 AI:在所有可能性中随机进行选择。做完这个之后,我马上做的第一件事情就是做 AI 对 AI 的自动战斗,实现了这个也等于实现了对游戏规则和程式系统本身的自动测试。然后整个过程我都进行直播和录影:

结果就是有一天用来直播的笔记本黑屏了之后就再也进不了系统了,估计是过热,后来折腾了一下又正常了,看来得拿另外一台电脑进行测试了,不然损失太大... 而我弟负责最根本的 AI 演算法,直到现在还在弄。
关于故事与世界观
现在又一个选择分支:故事可以打造为单纯的棋类挑战,挑战各种关卡,比武大会之类的,也许更直接一些。
推广方面的工作

本次日志内容就这么多~
保持联络