silksong-coop-mod 0.4.111 → 0.4.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/INSTALL.txt CHANGED
@@ -3520,7 +3520,52 @@ npm 的包会自动备份;N 网的包请按上面 A 的第 1 步自己备份
3520
3520
  · 晚到的伤害要是卡在很长的网络断档里,等它到的时候小怪已经又被召唤出来了,还是会扣上去。
3521
3521
  · 两个人都装 0.4.111 才有这个改动。
3522
3522
 
3523
- ※ 以上二百二十五条【没有实机验证过】。
3523
+ * 【一起进 boss 房间,你黑屏出来还在门口,她已经在两三步外;怪多的地方掉帧】(0.4.112)
3524
+ - 现象:10 月 18 日你说,你们一起进 boss 房间,你黑屏结束时还在门口,她已经走出两三步;怪多的地方明显
3525
+ 掉帧。
3526
+ - 查到的(你今天 14:00 到 16:09 的日志和她 14:59 那份):
3527
+ · 平时换房间你和她差不多:同样的 25 次换房间,你黑屏约 0.9 秒,她约 1.0 秒,多数是你先进新房间。
3528
+ · 14:44 第二次进那个 boss 房间时,你 2.2 秒,她 1.3 秒,她早出来大约 0.9 秒,就是那两三步。同一个门
3529
+ 两分钟前你只要 1.1 秒;这次游戏自己读房间和模组那部分都慢了一倍多,是那时整台电脑变慢了,14:49 和
3530
+ 16:08 也是这样。电脑为什么变慢,日志里看不出来(不记温度和频率)。
3531
+ · 那场 boss 你这边平均 39 帧,每 10 到 30 秒还会卡住 0.26 到 0.45 秒(游戏在清理内存);她那边一次卡
3532
+ 顿都没被记下来。模组每帧自己的代码大约 1.2 毫秒。
3533
+ · 模组给每只怪各挂 3 到 4 个钩子(播动画、回收物件、开关物件、死亡),每次换房间都要一个个新做出来,离
3534
+ 开时再一个个拆掉;同一处挂得越多,再挂一个越慢。打斗时游戏每切一次动画,都要穿过每只怪的那一层。
3535
+ - 现在:这 4 个钩子改成所有怪共用一个,用到时查是哪只怪,每只怪原来怎么处理都不变。换房间时模组那部分
3536
+ 会少一块,打斗时每次切动画只过一层。网络消息没改。
3537
+ - 注意:
3538
+ · 这条【没有实机测过】。省下多少要看下次的日志(换房间那几行里“entities made in”后面的毫秒数)。
3539
+ · 万一改坏了会很明显:两边怪的动作对不上、复制品凭空消失、进房间时怪突然闪出来、怪死了另一边不死。
3540
+ · 这是各自电脑上的改动,谁装了谁受益。
3541
+ · 电脑整个变慢的那几次,模组能省下的只是一部分。想看是不是发热降速:打 boss 时开着任务管理器,在
3542
+ “性能”里点 CPU,看“速度”打完以后是不是掉得很多。
3543
+
3544
+ * 【联机打 boss 时每隔十几二十秒顿一下,单人不会】(0.4.112)
3545
+ - 现象:10 月 18 日你说单人不卡,联机打 boss、怪一多就掉帧。你那场 boss 打了 4 分半,日志里游戏清理了
3546
+ 8 次内存,每次停 0.26 到 0.45 秒;在安静的房间里要好几分钟才清理一次。
3547
+ - 查到的:
3548
+ · 清理内存是新产生的“垃圾”攒够了才触发的。游戏用的运行库记不了“谁产生了多少垃圾”(它的源码里那两个
3549
+ 计数直接返回 0),所以是读代码一处处找的,下面的数都是从代码估的。
3550
+ · 模组在你这边打斗时每秒大约产生 1.4 到 2.4 MB 垃圾,安静房间约 0.7 MB。大头是:每个网络包都把所有消
3551
+ 息种类的列表重新生成一遍;每收到一条数据就新建几个小对象;每帧都跑的存档检查和 boss 房间检查里有排
3552
+ 序、查询和拼字符串;挂在游戏里的几个钩子每被调用一次就新建一个对象,哪怕根本用不上;地图图标每帧把
3553
+ 所在区域的房间名一个个读一遍。
3554
+ · 有两次卡顿是模组自己的代码:进房间几秒后,比对两边房间状态的检查一口气把整个游戏的状态机和存档物
3555
+ 件翻了一遍,卡了 146 毫秒;你被拉起来以后,boss 房间那部分卡了 86 毫秒,这次没找到原因。
3556
+ - 现在:
3557
+ · 上面这些都改成复用同一份东西,或者只在真要用时才做。怪的表现、网络消息、日志都不变。估计你这边打斗
3558
+ 时模组产生的垃圾能少一半左右,清理内存的间隔会相应变长。
3559
+ · 比对房间状态的检查改成每帧只翻一点,不再一次翻完。
3560
+ · 她开服务器的那边,转发每条怪物更新时新建的对象也少了很多。
3561
+ - 注意:
3562
+ · 这条【没有实机测过】。下次打同一个 boss,看日志里 [Frames] 开头、带“memory cleanup”的那几行,隔多
3563
+ 久出现一次,和这次的每 10 到 30 秒比。
3564
+ · 游戏自己打斗时也会产生垃圾,清理内存不会完全消失,只是隔得更久;每次停多久主要看电脑快慢。
3565
+ · 那次 86 毫秒的原因没找到,再出现的话日志会记下是哪一部分。
3566
+ · 万一改坏了会很明显:联机时对方或怪不动、不更新位置,两人存档配对出错,地图上对方的图标位置不对。
3567
+
3568
+ ※ 以上二百二十七条【没有实机验证过】。
3524
3569
 
3525
3570
 
3526
3571
  六、出问题的话
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # silksong-coop-mod 0.4.111
1
+ # silksong-coop-mod 0.4.112
2
2
 
3
3
  The files a player needs to install a two-player co-op build of **SSMP**, packaged so they can be fetched from
4
4
  a mirror that is reachable inside mainland China. This is not a Node library: nothing here is imported or run
@@ -15,4 +15,4 @@ The BepInEx loader is included, so the install needs no network access at all.
15
15
 
16
16
  The multiplayer mod is the work of [Extremelyd1](https://github.com/Extremelyd1/SSMP). This is a modified copy
17
17
  that adds a shared two-player save; please do not take questions about it to the original author. Distributed
18
- under the GNU LGPL 2.1 - see `LICENSE`. Built from https://github.com/Candy-649/SSMP at `5311f37`.
18
+ under the GNU LGPL 2.1 - see `LICENSE`. Built from https://github.com/Candy-649/SSMP at `f6f80a4`.
package/SSMP/SSMP.dll CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "silksong-coop-mod",
3
- "version": "0.4.111",
3
+ "version": "0.4.112",
4
4
  "description": "Offline installer payload for a two-player co-op build of the SSMP Silksong multiplayer mod. Not a Node library.",
5
5
  "license": "LGPL-2.1-or-later",
6
6
  "author": "Candy-649 (https://github.com/Candy-649)",