《Warman》版本更新 - 2.0 - 多人游戏架构重构
《Warman》2.0版本重磅更新!多人游戏架构重构,新增模组支持与macOS平台,移除跳跃功能,带来更流畅的确定性战斗体验。立即查看完整更新内容!
本次更新包含重大改动和重构。我希望《Warman》的核心本质基本保持不变,不会让你感觉像是买了一款不同的游戏。
某些元素已经改变,但我相信这是为了更好,并为未来打造更出色的游戏奠定了基础。
由于改动众多,我预计仍会有一些被我遗漏的Bug。我确实有一个内部待修复问题清单,但它们并非关键问题,我不想再推迟发布。
如果有任何你非常怀念的功能,请务必给我反馈,我会审视移除它们的决定是否正确。除了跳跃,跳跃功能已永久移除。在我这里几乎用不到,而且与翻滚闪避的效用相同。它可能会以电影化动作的形式回归,用于攀爬或跳下悬崖,但不会作为战斗中的主动动作。
我修复和改进了许多小问题,但没有为更新日志进行妥善追踪。未来我会采用更好的系统,以便更清晰地展示更新内容。
以下是本次更新的主要改动概述:
存档文件的位置已更改。游戏会尝试将旧存档迁移到新位置。
如果迁移过程中出现任何问题,你可以手动将存档文件移动到正确的文件夹,然后重启游戏以识别更改。
旧位置:
[Steam安装目录]/SteamApps/common/Warman
新位置:
Windows: %USERPROFILE%/AppData/LocalLow/nine9/Warman
Linux: $XDG_CONFIG_HOME/unity3d/nine9/Warman
macOS: ~/Library/Application Support/nine9/Warman
对多人游戏架构进行了全面重写。新架构基于Lockstep(锁步同步),现在所有输入都是确定性的。
新架构更易于构建拥有大量单位的复杂游戏,因为现在游戏只需同步玩家输入。
对于多人游戏而言,游戏模拟的复杂程度不再重要。
流程也略有改变,你必须在加入大厅前选择英雄,而不是加入大厅后。
加入大厅后你不能再更换英雄,如需更换,必须离开并重新以不同英雄加入。
你无法加入正在进行中的游戏,因此如果想选择不同的英雄,需要创建新大厅。
在ping值达到100毫秒之前,输入延迟尚可。之后会变得有些迟缓,因为我仍然缺少对需要快速响应的操作的客户端预测。
我还有一些想法可以大幅改善输入延迟,但这需要更多时间进行技术层面的工作,而我也想专注于游戏内容和新功能。
长远来看,这是为多人游戏奠定良好基础的最佳方法。
此外,还缺少跨平台支持。我仍然需要用定点数学对游戏模拟进行完全重写。
数学计算在启动时进行了某种程度的验证,并添加到游戏版本哈希值中,因此当哈希值匹配时,应该不会出现任何不同步。
模组(在《Warman》中称为“场景”)现已支持。
地图和房间现在可以完全编辑。这得益于我内部迁移到了新的文件格式,使我能够更轻松地构建游戏并更加灵活。
通过这一变化,我为《Warman》构建了一个编辑器,可以编辑所有相关的游戏文件。
目前仍然有很多硬编码的文件无法通过编辑器访问,但我计划也将它们开放。
地图包含一些应用于一组房间的设置。
房间包含地形和所有对象。
对象可以自由放置和连接,从而可以创建复杂的场景,包括迷你游戏和新游戏模式。
本次更新包含一个场景浏览器。目前还没有创意工坊支持,但我计划添加该功能。
场景浏览器将模组目录中的每个文件夹显示为一个场景,点击即可使用新场景重新加载游戏。
《Warman》本身也只是一个以相同方式加载的场景。
内置场景无法编辑。要开始创建自己的场景,你需要复制现有场景,然后使用场景编辑器进行编辑。
只要每个人都拥有相同的文件,场景就可以在多人游戏中完全运行。本质上,附加到游戏版本上的哈希值必须匹配。
有一个没有编辑器的engine_config.xml文件,你可以在其中配置游戏模拟的核心设置。
目前更改tick率无效,它固定为每秒20 ticks。
更改任何设置都会导致不同的哈希值,并且将不允许你进行多人游戏,除非其他人具有相同的设置。
场景编辑器还有很大的改进空间,我有很多待解决的问题和可用性改进,但这些工具与我用来构建《Warman》场景的工具相同。
随着时间的推移,我会扩展编辑器,并且欢迎功能请求。
由于这是模组支持的首次引入,并非所有内容都已固定,未来可能会有破坏性更改。
我希望能避免这种情况,或者至少提供一条良好的迁移路径,以应对我可能需要的某些新格式。
地形是房间的一部分且必须存在,但可以在新的场景编辑器中完全编辑。
房间的外观发生了巨大变化,我希望是变得更好。随着新地形引擎的引入,单位使用的寻路系统也进行了全面重构。
新的寻路和物理引擎是多人游戏重构所必需的,因此一切都是确定性的。
移动和战斗现在感觉好多了,因为每个动作都是确定性的。
你不能再跳跃了。我决定移除跳跃功能,因为它不符合我想要追求的关卡设计类型。
地形可以有不同的纹理、悬崖、斜坡、高度变化、水层、可行走和不可行走的纹理。地形可以相当大,通常我建造的房间只使用了最大可能尺寸的约20%。
功能将根据需要添加和扩展。以上所有属性都可以在场景编辑器中编辑,除了纹理。
完全可修改的地形纹理将在未来的更新中提供。
游玩时你会注意到某些纹理没有变化,例如泥土路径看起来非常单调。地形引擎已经支持每个纹理单元有16种变化,只是我的 tileset 不够好,而且我没有添加任何变化。
除了新的房间地形系统外,UI中地图和房间的渲染也进行了全面革新。
小地图现在显示地形的像素化视图以及相关的实时对象,如敌人和可交互对象。
世界地图现在显示更详细的房间视图。这使用与你在房间中看到的相同的小地图,但不包括实时对象。
每张地图在世界地图中无缝连接。
为了模组目的,世界地图在运行时渲染,并允许完全自定义的地图和房间场景,拥有适当的世界地图和小地图。
地图中的房间现在只在你首次进入时加载。
这使得加载屏幕几乎瞬间完成(在我的电脑上)。
通过这一改变,在自定义场景中构建大地图也成为可能,而无需忍受漫长的加载时间。
本次更新包含适用于macOS Apple Silicon的版本。
该版本应该没有重大问题。我注意到在滚动时有一些奇怪的行为,以及游戏尝试保存时文件夹的奇怪权限问题。
macOS应用程序未经公证。
终于迈出了添加完整控制器支持的第一步。
战斗效果相当好,无论使用远程还是近战武器,你都应该没有问题。
导航UI的效果很差,需要更多工作。装备和丢弃物品仍然可以管理。分配技能点可能令人沮丧,但是可行的。出售和购买物品有效。
使用工作台是不可能的,需要鼠标或使用Steam Deck上的触摸屏。
所有控制器通常都应该工作,但我只测试并为以下设备提供了明确的按钮图标:Ps5、Ps4、Xbox和Steam Deck。
一些先前放置在房间中的对象,如可破坏物,没有被放置。它们存在并工作(如果你在场景编辑器中放置它们),但我只是没来得及处理。
我必须重做/迁移所有现有房间到新的地形系统,这花费了大量时间。房间中的某些部分比其他部分更好,这与我不断提高的关卡设计水平有关,但也因为我没有足够的时间完成每个房间。
我计划在未来的更新中完成所有房间的关卡设计。
程序生成地图不可用。每张地图都是一个可修改的对象,而生成程序化房间的过程目前尚未对编辑器开放。
我不得不从法典UI中移除一些部分。法典显示所有可用的地图、房间以及它们是否已被发现。随着地图和房间现在可修改的变化,不再可能在法典中显示该信息。
这个功能和相关的UI设计得不是很好,我想在下次更新中解决这个问题。
我计划在运行时使用加载的场景来构建法典,这允许法典动态显示所有相关的场景信息,而不依赖于硬编码元素。
法典中的路径点部分将只显示内置路径点,而不是场景中的所有路径点。同样,这应该在运行时构建,以支持场景中的所有路径点。
世界地图中缺少房间的发现状态。这也与模组支持的变更有关。与法典一样,房间的发现状态应该直接与场景和房间绑定,允许每个场景有独立的状态。




