SoftbearStudios / kiomet

Kiomet.com real-time strategy game
https://kiomet.com
GNU Affero General Public License v3.0
76 stars 12 forks source link

A fatal error that caused the game program to stop #8

Open Tinhone opened 8 months ago

Tinhone commented 8 months ago

Body

When this error happened, it will cause the game program to stop immediately. My guess is that WASM encountered a fatal error. The CSS style interaction is normal. 此错误发生后,会导致游戏程序立刻无法运行。个人猜测是 WASM 遇到致命错误导致的。CSS 样式交互还有反应。

Repro

This is a error that comes up to me when I'm playing normally, so I can't repro it. 这是我在正常游玩时突然遇到的问题,所以我无法复现它。

Possible Solutions

When the player leaves the game using methods other than the exit button on the client side, the player's game progress is not immediately deleted on the server side, and in the client of other players, the player's country still exists. 当玩家在客户端使用退出按钮以外的方式离开游戏后,不立刻在服务器端删除玩家的游戏进度,在其他玩家的客户端里表现为该玩家的国家依然存在。

When the player reconnects, ask if they want to inherit the game progress, and according to the player's choice, carry out the operation of inheriting the game progress or deleting the game progress. 当玩家重连后,询问是否继承游戏进度,依照玩家选择,进行继承游戏进度操作,或进行删除游戏进度操作。

If the player does not connect to the server again for a long time (such as 300 seconds), it will be considered as leaving the game and the player's game progress will be deleted on the server side. 如果玩家很长时间(比如 300 秒)没有再次连接服务器,则视为离开游戏,然后在服务器端删除玩家的游戏进度。

Other

Log: 控制台日志: * Some information has been hidden, marked with `[edited]`. * 隐去了部分信息,使用 `[edited]` 标记。

解析 width 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1.8rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 2.5rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 2.5rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 2.5rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 2.5rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 2.5rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 2.5rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1.5rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1.5rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1.5rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1.5rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1.5rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1.5rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 2rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 width 属性是遇到预期外的的值 1rem。 client.js:1329:24
解析 height 属性是遇到预期外的的值 1rem。 client.js:1329:24
WS made no progress in the last 4s 54 client.js:1028:17
WS made no progress in the last 5s 46 client.js:1028:17
WS made no progress in the last 1s 31 client.js:1028:17
WS made no progress in the last 2s 20 client.js:1028:17
WS made no progress in the last 1s 74 client.js:1028:17
WS made no progress in the last 2s 61 client.js:1028:17
WS made no progress in the last 3s 59 client.js:1028:17
WS made no progress in the last 4s 23 client.js:1028:17
WS made no progress in the last 1s 29 client.js:1028:17
WS made no progress in the last 2s 61 client.js:1028:17
WS made no progress in the last 3s 59 client.js:1028:17
WS made no progress in the last 4s 61 client.js:1028:17
WS made no progress in the last 5s 59 client.js:1028:17
WS made no progress in the last 6s 61 client.js:1028:17
WS made no progress in the last 7s 59 client.js:1028:17
WS made no progress in the last 8s 61 client.js:1028:17
WS made no progress in the last 9s 59 client.js:1028:17
WS made no progress in the last 10s 61 client.js:1028:17
WS made no progress in the last 11s 59 client.js:1028:17
WS made no progress in the last 12s 2 client.js:1028:17
panicked at 'missing player PlayerId(*[edited]*), is_bot: false', /home/finnb/git/finnbear/tower_offense/common/src/world.rs:210:17

Stack:

getImports/imports.wbg.__wbg_new_abda76e883ba8a5f@https://kiomet.com/client.js:773:21
@https://kiomet.com/client_bg.wasm:wasm-function[629]:0xa7263
@https://kiomet.com/client_bg.wasm:wasm-function[1282]:0xd8b72
@https://kiomet.com/client_bg.wasm:wasm-function[1134]:0xd147e
@https://kiomet.com/client_bg.wasm:wasm-function[2290]:0xf40b6
@https://kiomet.com/client_bg.wasm:wasm-function[2530]:0xf7ad1
@https://kiomet.com/client_bg.wasm:wasm-function[1410]:0xde39f
@https://kiomet.com/client_bg.wasm:wasm-function[2893]:0xfc472
@https://kiomet.com/client_bg.wasm:wasm-function[1624]:0xe56ed
@https://kiomet.com/client_bg.wasm:wasm-function[308]:0x1571a
@https://kiomet.com/client_bg.wasm:wasm-function[313]:0x27832
@https://kiomet.com/client_bg.wasm:wasm-function[889]:0xc2327
@https://kiomet.com/client_bg.wasm:wasm-function[1376]:0xdcdc8
@https://kiomet.com/client_bg.wasm:wasm-function[621]:0xa609f
@https://kiomet.com/client_bg.wasm:wasm-function[831]:0xbd5e6
@https://kiomet.com/client_bg.wasm:wasm-function[3309]:0x100011
__wbg_adapter_37@https://kiomet.com/client.js:234:10
real@https://kiomet.com/client.js:203:20

client.js:785:21
    __wbg_error_f851667af71bcfc6 https://kiomet.com/client.js:785
    <anonymous> https://kiomet.com/client_bg.wasm:684790
    <anonymous> https://kiomet.com/client_bg.wasm:887666
    <anonymous> https://kiomet.com/client_bg.wasm:857214
    <anonymous> https://kiomet.com/client_bg.wasm:999606
    <anonymous> https://kiomet.com/client_bg.wasm:1014481
    <anonymous> https://kiomet.com/client_bg.wasm:910239
    <anonymous> https://kiomet.com/client_bg.wasm:1033330
    <anonymous> https://kiomet.com/client_bg.wasm:939757
    <anonymous> https://kiomet.com/client_bg.wasm:87834
    <anonymous> https://kiomet.com/client_bg.wasm:161842
    <anonymous> https://kiomet.com/client_bg.wasm:795431
    <anonymous> https://kiomet.com/client_bg.wasm:904648
    <anonymous> https://kiomet.com/client_bg.wasm:680095
    <anonymous> https://kiomet.com/client_bg.wasm:775654
    <anonymous> https://kiomet.com/client_bg.wasm:1048593
    __wbg_adapter_37 https://kiomet.com/client.js:234
    real https://kiomet.com/client.js:203
Uncaught (in promise) RuntimeError: unreachable executed
    __wbg_adapter_37 https://kiomet.com/client.js:234
    real https://kiomet.com/client.js:203
client_bg.wasm:887701:1
finnbear commented 8 months ago

Thank you!

WS made no progress in the last Xs

This error indicates a silent loss of network connection.

missing player PlayerId(*[edited]*)

This is an (unrelated) bug

When the player leaves the game using methods other than the exit button on the client side, the player's game progress is not immediately deleted on the server side, and in the client of other players, the player's country still exists.

We do this but there is a bug that we haven't fixed yet (wrote the fix but haven't deployed it to any games). A workaround is to refresh your page once when the game is still working, which should save progress and reduce the chance of losing progress on the next automatic reconnects in the same playthrough.