思绪来得快去得也快,偶尔会在这里停留
4 followers 1 article/week
工人任务分配系统

在矮人要塞 like 的游戏中,都有一套基于工人的任务分发系统。玩家通常不能像 RTS 中那样直接操作工人去工作,而是对要做的事情下达任务,等着工人自主去完成。 由于任务数量通常远多于工人数量,这个任务分发系统中大多配有优先级设置,可以让诸多任务有条不紊的进行。调整优先级变成玩家主动操控的渠道。初玩这类游戏,会有点不习惯:感觉难以在微观层面直接做自己像做的事情。像捡块石头放进指定仓库这件事,无法像玩 RTS 游戏那样,先点选工人,再针对石头发出拾取指令…… 但习惯之后,恐怕又回不去了。比如我在玩 Ratopia 时,就对操控鼠王直接干活烦躁不已。 这类游戏,我玩的时间比较长的有三个,按时长排序为:缺氧 (ONI) 、边缘世界 (Rimworld)、矮人要塞 (DF)。其它如 Songs...

Thu Jul 25, 2024 11:05
飞船建设部分的设计草案

像异星工厂、缺氧、边缘世界都有大量的 mod 。可以通过大改游戏机制,把本体游戏改造成完全体验不同的游戏。这些好玩的 mod 几乎都是一个人完成的。所以我觉得,固然游戏的外层玩法决定了整体体验,但其实开发的总工作量并不大。而且,一旦玩法不满意,也容易修改。 我的游戏开发计划是先完成一些底层基础系统,再考虑完整游戏的全貌。没有上层玩法支撑,光有底层系统玩起来一定寡淡无味,但我认为它们是设计和开发中最重要的一环。 在进一步实现 demo 之前,我设计了一下飞船的建造系统。 游戏世界中的物质分为三种:建筑,零件,原料。 摆放在场景中(飞船)的是建筑,墙体、门、机器、家具这些属于建筑,一旦修建出来就不可任意移动位置。建筑是由零件构成,拆毁建筑会 100% 返还零件。建筑修建是可逆的。...

Tue Jul 16, 2024 13:19
室内空气流动模拟

在设计飞船建造的游戏时,我想做一个空气流动的模拟系统。这里有一个初步的方案,不知道好不好,先记录一下: 空间是由二维的正方形格子构成的,有些格子如墙体会阻止空气流动。每个格子有温度属性及气体质量的记录。不同气体可以同时存在于同一个内,质量单独记录。温度传导系统另外设计。 每个游戏 tick 对每个格子做一次独立计算,根据温度值给出一个概率,这个概率决定了该格气体向周围扩展的比例。 温度越高,越可能将更大比例的气体平均扩散到最多邻接的 8 格空间。 当格子因为建墙而导致空间变化时,把该格内气体全部扩散到临接格,当极端情况下无法做到时,空气锁定在墙体内,不会消失,等待以后满足条件后再扩散出去。 为什么要做基于格子而不是基于舱室的空气模拟?例如, FTL 的氧气气压模拟就是基于房间的。...

Wed Jul 10, 2024 06:52
角色动画系统

Ant 引擎的角色动画系统还需要完善。 之前我们用 Ant 引擎开发的游戏以机械装置为主,所以并不需要人型角色动画。对于人物角色动作的动画控制,最好有更多的引擎支持。 通常,角色逻辑上的属性和动画表现存在一个映射关系。一个角色,它逻辑上的基本属性可能只有在空间中的坐标。我们编写代码控制它时,只关心它在哪里。但是,在做画面表现时,则需要根据空间坐标这组简单属性,转换为动画播放:如果角色静止不动,就播放 idle 动画,如果正在运动,就播放 walk 动画。 在引擎底层,每帧只通过坐标这个属性来计算角色该播放哪个动画以及怎样播放,信息是不够的。通常还需要结合过去时间线上的状态变化来推算出当前状态;或是通过几个独立的逻辑属性的组合,得到动画需要的信息。 例如,可以通过空间坐标的变化过程计算出速度;根据是否处于战斗状态决定是警戒行动还是自由行动……...

Tue Jul 2, 2024 11:48
一些星舰或太空站建设类游戏

因为玩了一些星舰或太空站建造类的游戏,找找灵感。每个游戏都能给我一些启发,因为玩的都不多,所以就不评价了,只做个列表记录。有些还没有出,先加了个愿望单。 Adaptory Astro Colony Cosmoteer Deep Space Outpost Facteroids Factorio mod : Space Exploration Factorio mod : Warp Drive Machine Far Sector Generation Nova Generation Ship IXION Ostranauts Oxygen Not Included DLC: Spaced Out Rimworld mod : Save Our Ship 2...

Sat Jun 22, 2024 12:49
监视 Lua 对象的修改

我正在制作的游戏 demo 中,所有对象逻辑上都存在于二维空间,但在 Ant Engine 中通过 3d 渲染方式绘制出来。 我希望有一组简便的 API 方便我控制这些对象的渲染,只是控制它们的位置以及在 Y 轴上的旋转量。Ant Engine 是用场景组件来控制 entity 渲染时的空间状态,但场景节点使用的是 3d 空间的 SRT 即缩放、旋转、位移。而我只需要控制其中的两个坐标轴上的空间位置以及一个旋转轴上的旋转量,直接修改 SRT 太不方便了。而且,使用引擎时,还需要每帧标记被修改过的场景组件对应的 entity ,这也很麻烦。 在 ECS 结构下,最简单的方式是为这些 entity 创建一个额外的组件,里面有 x y r 三个值。通过一个 system 把它们转换到场景节点在...

Tue Jun 11, 2024 06:40

Build your own newsfeed

Ready to give it a go?
Start a 14-day trial, no credit card required.

Create account