I downloaded your project and tried a local build and it works fine. So I tried an HTML build, strange behaviour occurred.
I think the key input’s repeat delay, repeat interval, and the fixed_update used in player.script are not compatible with the browser.
(And handle_obstacle_contact seems odd too.)
What do you mean by “HTML performance is not good”? I ran your demo, it works great. Only sometimes I see camera and hero out of sync due to fixed update (probably related to this issue, I’m not sure).
Here is a video example (slowed down 10 times), i.e. the hero is 1 frame ahead of the camera in the middle of the video.
Then you also need to disable use fixed timestep for physics in game.project.
I would like to note that if you want to work with physics in this mode, you should take care of pausing the game world. Otherwise the main character will fall through the floor into the void as soon as you switch the tab in the browser.
Now that I understand 100% what update and what fixed_update does exactly…
I had time again today and tried to get the game to run under Html with fixed_update & update (interpolation with larp and so on) without flickering. But no change.