Comments (19)
Wow, Awesome. How did you manage to run in on window. Can you show it so others can run when facing the same issue.
It's kinda easy. The hardest part is to find proper C libs and link it right to avoid segfaults. I'll PR a quick guide in the readme.
Regarding to latency, If you are close to the servers, the latency should < 1s. I think if you run on local, you can feel it seamless with 0ms right :/
And for the discrepancy between PSX and SNES latency, PSX has heavier computation, so it may makes things slower.
Not really seamless. For that, I just did a quick comparison with go-nanoarch (opengl) and there is no latency whatsoever for NES, SNES, PSX cores. Regarding cloud-game, there is no latency only when I run NES core and 2-3 sec overhead othervice. Maybe there is an additional slowdown in the rendering / encoding compared to nanoarch. Anyway, maybe I'll re-check it later on a desktop pc and open a different issue. (:
from cloud-game.
Can you provide some more details about the system you are trying to run. Like
OS
Arch
how are you running the programs etc.
from cloud-game.
OS: Windows 10 with Ubuntu
Arch: amd64
Run by make run
as in Readme.md
from cloud-game.
@namkazt You mean ubuntu inside a VM with Windows Host? Can you provide a screenshot what do you see in the browser? From the log, it looks like worker have been connected to overlord server.
from cloud-game.
web display ok but display game not ready when select or try to start game.
019/09/10 10:31:04 Error: Cannot create new webrtc session mDNS: failed to join multicast group
is the only error i see
from cloud-game.
from cloud-game.
Hi namkazt,
Nice to meet you.
Seems like another OS issue. Did you manage to run that?
from cloud-game.
Still not playable :( I will take some time to dig deeper on this problem.
p/s: có vài chỗ em cũng muốn optimize lại như phần websocket nên dùng https://github.com/gobwas/ws nhanh hơn và zero allocation. xem ý bác thế nào
from cloud-game.
Hi @namkazt , thanks for your interest in the repo.
This is the first time I see that problem. Can you update your chrome browser to latest version? By the way, we can talk over skype so I can understand your problem better and fix the repo. ( I try to find your account nam.kazt on skype but not found)
As for ws improvement, actually ws is not the critical part of this project. Streaming relies on WebRTC, so optimize ws may not help much :D.
from cloud-game.
Hi guys! A couple days ago I stumbled upon this interesting project of yours but I have no luck with making it run locally on Windows 10. Having the same problem as namkazt on WSL/Ubuntu. There is something to do with VM-to-Windows address expose (ws candidates?), I suppose. Here is a part of the logfile from the browser on WSL:
libopus.js?1:1 pre-main prep time: 0 ms
utils.js?1:5 WebSocket is opened. Send ping
utils.js?1:5 Send ping pong frequently
utils.js?1:5 Send latency list [object Object]
ws.js?6:120 {127.0.0.1: 22}
utils.js?1:5 received stunturn from worker [{"urls":"stun:stun.l.google.com:19302"},{"urls":"stun:127.0.0.1:3478"},{"urls":"turn:127.0.0.1:3478","username":"root","credential":"root"}]
utils.js?1:5 Received game list
utils.js?1:5 Load game menu
utils.js?1:5 v=0
...
utils.js?1:5 > [Pick] game 1/2 - Contra
ws.js?6:216 {"candidate":"candidate:1910078557 1 udp 2113937151 91f81f5a-1738-418d-b26c-3dd9d31be42b.local 57961 typ host generation 0 ufrag ULEr network-cost 999","sdpMid":"0","sdpMLineIndex":0}
ws.js?6:216 {"candidate":"candidate:1910078557 1 udp 2113937151 91f81f5a-1738-418d-b26c-3dd9d31be42b.local 57963 typ host generation 0 ufrag ULEr network-cost 999","sdpMid":"1","sdpMLineIndex":1}
ws.js?6:216 {"candidate":"candidate:1910078557 1 udp 2113937151 91f81f5a-1738-418d-b26c-3dd9d31be42b.local 57965 typ host generation 0 ufrag ULEr network-cost 999","sdpMid":"2","sdpMLineIndex":2}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 57965 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag ULEr network-cost 999","sdpMid":"2","sdpMLineIndex":2}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 57963 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag ULEr network-cost 999","sdpMid":"1","sdpMLineIndex":1}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 57961 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag ULEr network-cost 999","sdpMid":"0","sdpMLineIndex":0}
utils.js?1:5 Ice gathering timeout, send anyway
utils.js?1:5 > [Pick] game 2/2 - Super Mario Bros
Inside a normal VirtualBox Ubuntu image the service is working and the log looks like this:
...
utils.js?1:5 Loading menu screen
utils.js?1:5 > [Pick] game 1/2 - Contra
ws.js?6:216 {"candidate":"candidate:547260449 1 udp 2113937151 10.0.2.15 35458 typ host generation 0 ufrag snrn network-cost 999","sdpMid":"0","sdpMLineIndex":0}
ws.js?6:216 {"candidate":"candidate:547260449 1 udp 2113937151 10.0.2.15 42765 typ host generation 0 ufrag snrn network-cost 999","sdpMid":"1","sdpMLineIndex":1}
ws.js?6:216 {"candidate":"candidate:547260449 1 udp 2113937151 10.0.2.15 32934 typ host generation 0 ufrag snrn network-cost 999","sdpMid":"2","sdpMLineIndex":2}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 57468 typ srflx raddr 10.0.2.15 rport 35458 generation 0 ufrag snrn network-cost 999","sdpMid":"0","sdpMLineIndex":0}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 57470 typ srflx raddr 10.0.2.15 rport 32934 generation 0 ufrag snrn network-cost 999","sdpMid":"2","sdpMLineIndex":2}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 57469 typ srflx raddr 10.0.2.15 rport 42765 generation 0 ufrag snrn network-cost 999","sdpMid":"1","sdpMLineIndex":1}
utils.js?1:5 Ice gathering timeout, send anyway
utils.js?1:5 Got remote sdp
utils.js?1:5 iceConnectionState: checking
utils.js?1:5 iceConnectionState: connected
utils.js?1:5 inputChannel has opened
And the Docker image doesn't work as well in the same way as WSL. :(
from cloud-game.
Hi @sergystepanov
So sorry for the experience.
Are you able to run the project now? I saw you said you can run in other ticker.
So as I understand you cannot make it worked on Window and Ubuntu on Window (WSL)
and it worked on Virtualbox Ubuntu?
So seems like there is problem with window environment. I will try to find a walkaround.
Thank you so much for reporting that,
from cloud-game.
Are you able to run the project now? I saw you said you can run in other ticker.
So as I understand you cannot make it worked on Window and Ubuntu on Window (WSL)
and it worked on Virtualbox Ubuntu?
Yes. It runs perfectly fine either inside a virtual machine or normal Linux but on the current WSL (haven't tried WSL2 yet) it doesn't work. It hangs somewhere at the ICE candidate picking stage from SDP (addresses not available on the host or provided ones are garbage?). No idea how to test WebRTC stuff.
Also, as I mentioned earlier, when I run the app in Docker, it has the same outcome.
Settings are similar to the Make script in the repo:
docker run --privileged -v $PWD/games:/cloud-game/games \
-d --name cloud-game-local -p 8000:8000 -p 9000:9000 \
cloud-game-local bash -c "overlord --v=5 & \
overworker --overlordhost ws://localhost:8000/wso"
How do you run it with Docker and does it work for you?
from cloud-game.
@sergystepanov You mean you failed to run docker script on Window env right? :-< I currently don't have window environment, so it's hard for me to debug it. I will try with virtual machine.
Is it ok if you run Docker within Virtual Machine + Normal Linux?
from cloud-game.
You mean you failed to run docker script on Window env right?
@giongto35, not quite, the app is running fine in Docker but when you click play on the page -- games won't run. I think it's a similar problem to this issue.
Is it ok if you run Docker within Virtual Machine + Normal Linux?
I'll try and tell.
from cloud-game.
That's interesting, actually it works on Ubuntu through Docker. So, it seems there is a problem with Windows, then. (also, tried with audio, quite impressive (: )
Rechecked in Windows, it is still not working.
Browser console:
libopus.js?1:1 pre-main prep time: 0 ms
utils.js?1:5 WebSocket is opened. Send ping
utils.js?1:5 Send ping pong frequently
utils.js?1:5 Send latency list [object Object]
ws.js?6:120 {127.0.0.1: 19}
utils.js?1:5 received stunturn from worker [{"urls":"stun:stun.l.google.com:19302"},{"urls":"stun:127.0.0.1:3478"},{"urls":"turn:127.0.0.1:3478","username":"root","credential":"root"}]
utils.js?1:5 Received game list
utils.js?1:5 Load game menu
utils.js?1:5 v=0
o=- 198208900130621647 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:c2K+
a=ice-pwd:z+5unxEsA7XpkWSKaitdO700
a=ice-options:trickle
a=fingerprint:sha-256 04:2B:48:5C:23:1D:51:B8:41:9C:3D:F2:52:BC:77:F6:AC:31:77:01:0B:D2:40:9B:80:69:FB:42:54:BF:7A:8A
a=setup:actpass
a=mid:0
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 H264/90000
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 transport-cc
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:c2K+
a=ice-pwd:z+5unxEsA7XpkWSKaitdO700
a=ice-options:trickle
a=fingerprint:sha-256 04:2B:48:5C:23:1D:51:B8:41:9C:3D:F2:52:BC:77:F6:AC:31:77:01:0B:D2:40:9B:80:69:FB:42:54:BF:7A:8A
a=setup:actpass
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:c2K+
a=ice-pwd:z+5unxEsA7XpkWSKaitdO700
a=ice-options:trickle
a=fingerprint:sha-256 04:2B:48:5C:23:1D:51:B8:41:9C:3D:F2:52:BC:77:F6:AC:31:77:01:0B:D2:40:9B:80:69:FB:42:54:BF:7A:8A
a=setup:actpass
a=mid:2
a=sctp-port:5000
a=max-message-size:262144
utils.js?1:5 Loading menu screen
utils.js?1:5 > [Pick] game 1/1 - Super Mario Bros
ws.js?6:216 {"candidate":"candidate:1910078557 1 udp 2113937151 a3720c83-0abc-499a-9790-28bc12fbfdb0.local 59996 typ host generation 0 ufrag c2K+ network-cost 999","sdpMid":"0","sdpMLineIndex":0}
ws.js?6:216 {"candidate":"candidate:1910078557 1 udp 2113937151 a3720c83-0abc-499a-9790-28bc12fbfdb0.local 59998 typ host generation 0 ufrag c2K+ network-cost 999","sdpMid":"1","sdpMLineIndex":1}
ws.js?6:216 {"candidate":"candidate:1910078557 1 udp 2113937151 a3720c83-0abc-499a-9790-28bc12fbfdb0.local 60000 typ host generation 0 ufrag c2K+ network-cost 999","sdpMid":"2","sdpMLineIndex":2}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 59996 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag c2K+ network-cost 999","sdpMid":"0","sdpMLineIndex":0}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 60000 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag c2K+ network-cost 999","sdpMid":"2","sdpMLineIndex":2}
ws.js?6:216 {"candidate":"candidate:842163049 1 udp 1677729535 95.30.110.149 59998 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag c2K+ network-cost 999","sdpMid":"1","sdpMLineIndex":1}
utils.js?1:5 Ice gathering timeout, send anyway
utils.js?1:5 Got remote sdp
utils.js?1:5 iceConnectionState: checking
utils.js?1:5 iceConnectionState: disconnected
utils.js?1:5 > [Pick] game 1/1 - Super Mario Bros
Docker log:
I1001 15:36:19.671533 7 main.go:27] Initializing worker server I1001 15:36:19.672913 7 overworker.go:38] Starting monitoring server for overwork I1001 15:36:19.672952 7 monitoring.go:53] Starting monitoring server at :6601 I1001 15:36:19.672965 7 monitoring.go:67] Prometheus metric is enabled at :6601/worker/metrics I1001 15:36:19.675989 7 storage.go:25] Warn: Failed to create client: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. I1001 15:36:19.676085 7 overworker.go:64] Listening at port: localhost: 9000
I1001 15:36:19.676855 7 handlers.go:59] Cannot connect to overlord. Retrying...
I1001 15:36:19.728481 6 main.go:27] Initializing overlord server
I1001 15:36:19.728562 6 main.go:28] Overlord configs {8800 {6601 /overlord false false}} I1001 15:36:19.728799 6 overlord.go:35] Starting monitoring server for overlord
I1001 15:36:19.730012 6 monitoring.go:73] Monitoring server is disabled via config
I1001 15:36:19.730338 6 overlord.go:62] Listening at port: localhost:8000
I1001 15:36:20.679883 6 handlers.go:79] Overlord: A new server connected to Overlord ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:36:20.679909 6 netutil.go:14] Address : 127.0.0.1:51598
I1001 15:36:20.679918 6 handlers.go:83] Address: -> 127.0.0.1
I1001 15:36:20.680223 7 handlers.go:65] Connected to overlord successfully.
I1001 15:36:20.680364 7 overlord.go:42] Received serverID ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:36:37.315062 6 handlers.go:116] Browser connected to overlord
I1001 15:36:37.315292 6 handlers.go:288] Send sync [127.0.0.1] 127.0.0.1
I1001 15:36:37.349509 6 handlers.go:254] Latency map map[0xc0000fe500:18]
I1001 15:36:37.349572 6 handlers.go:151] New client will conect to server ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:36:39.433039 6 browser.go:36] Overlord: Received sdp request from a browser I1001 15:36:39.433105 6 browser.go:37] Overlord: Relay sdp request from a browser to workerI1001 15:36:39.433118 6 browser.go:41] Overlord: serverID: ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:36:39.433762 7 overlord.go:52] Received relay SDP of a browser from overlord I1001 15:36:39.434045 7 webrtc.go:111] === StartClient ===
I1001 15:36:39.478375 7 webrtc.go:169] ICE Connection State has changed: checking
I1001 15:36:39.478616 7 webrtc.go:185] host 172.17.0.2:37122
I1001 15:36:39.478677 7 webrtc.go:185] srflx 95.30.110.149:51153 related 0.0.0.0:46267 I1001 15:36:39.478828 7 webrtc.go:185] <nil>
I1001 15:36:39.478904 7 overlord.go:72] Start peerconnection a2535be3-2ee5-41c9-bd49-8fe79417ce24
I1001 15:36:39.479320 6 browser.go:51] Overlord: Received sdp request from a worker I1001 15:36:39.479343 6 browser.go:52] Overlord: Sending back sdp to browser
I1001 15:36:47.069937 6 cws.go:156] [!] read: websocket: close 1001 (going away)
I1001 15:36:47.070289 7 overlord.go:191] Received a terminate session a2535be3-2ee5-41c9-bd49-8fe79417ce24
I1001 15:36:47.070373 7 overlord.go:193] Find &{ 0xc00013f110 } true
I1001 15:36:47.070388 7 handlers.go:96] Detach peerconnection
I1001 15:36:47.138752 6 handlers.go:116] Browser connected to overlord
I1001 15:36:47.138935 6 handlers.go:288] Send sync [127.0.0.1] 127.0.0.1
I1001 15:36:47.200430 6 handlers.go:254] Latency map map[0xc0000fe500:24]
I1001 15:36:47.200542 6 handlers.go:151] New client will conect to server ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:36:49.238089 6 browser.go:36] Overlord: Received sdp request from a browser I1001 15:36:49.238156 6 browser.go:37] Overlord: Relay sdp request from a browser to workerI1001 15:36:49.238168 6 browser.go:41] Overlord: serverID: ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:36:49.238842 7 overlord.go:52] Received relay SDP of a browser from overlord I1001 15:36:49.239390 7 webrtc.go:111] === StartClient ===
I1001 15:36:49.272793 7 webrtc.go:169] ICE Connection State has changed: checking
I1001 15:36:49.273391 7 overlord.go:72] Start peerconnection 07be7ff2-2b16-4250-8bef-accb2e5dc539
I1001 15:36:49.273889 6 browser.go:51] Overlord: Received sdp request from a worker I1001 15:36:49.273905 6 browser.go:52] Overlord: Sending back sdp to browser
I1001 15:36:49.275254 7 webrtc.go:185] host 172.17.0.2:57342
I1001 15:36:49.275343 7 webrtc.go:185] srflx 95.30.110.149:50929 related 0.0.0.0:43364 I1001 15:36:49.275368 7 webrtc.go:185] <nil>
I1001 15:37:11.426037 6 cws.go:156] [!] read: websocket: close 1001 (going away)
I1001 15:37:11.426636 7 overlord.go:191] Received a terminate session 07be7ff2-2b16-4250-8bef-accb2e5dc539
I1001 15:37:11.426836 7 overlord.go:193] Find &{ 0xc0002eb8f0 } true
I1001 15:37:11.426895 7 handlers.go:96] Detach peerconnection
I1001 15:37:11.605478 6 handlers.go:116] Browser connected to overlord
I1001 15:37:11.605747 6 handlers.go:288] Send sync [127.0.0.1] 127.0.0.1
I1001 15:37:11.671571 6 handlers.go:254] Latency map map[0xc0000fe500:19]
I1001 15:37:11.671670 6 handlers.go:151] New client will conect to server ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:37:13.731546 6 browser.go:36] Overlord: Received sdp request from a browser I1001 15:37:13.731616 6 browser.go:37] Overlord: Relay sdp request from a browser to workerI1001 15:37:13.731628 6 browser.go:41] Overlord: serverID: ed627d7b-6279-49f1-9baa-e2ac14d914e2
I1001 15:37:13.732226 7 overlord.go:52] Received relay SDP of a browser from overlord I1001 15:37:13.732714 7 webrtc.go:111] === StartClient ===
I1001 15:37:13.772711 7 webrtc.go:169] ICE Connection State has changed: checking
I1001 15:37:13.773292 7 overlord.go:72] Start peerconnection b3abeb39-4087-49b1-bedd-9ead9962fd49
I1001 15:37:13.773491 7 webrtc.go:185] <nil>
I1001 15:37:13.773803 7 webrtc.go:185] host 172.17.0.2:53699
I1001 15:37:13.773854 7 webrtc.go:185] srflx 95.30.110.149:60005 related 0.0.0.0:33669 I1001 15:37:13.774122 6 browser.go:51] Overlord: Received sdp request from a worker I1001 15:37:13.774178 6 browser.go:52] Overlord: Sending back sdp to browser
from cloud-game.
@sergystepanov :D Thank you very much for testing all environments. I really appreciate it.
It surprised me when the project cannot start on Window even with Docker. The log seems fine. I think I need to install Window on my desktop to debug it more.
tried with audio, quite impressive (:
:( The audio used to work well though. Audio turns out harder than Video processing because it's a continuous wave.
from cloud-game.
@giongto35, thanks for your concern, I was able to compile and run everything in Windows without Docker, so this issue doesn't matter now (at least for me (:)
(Now I wonder why snes has 2sec and psx has a 4sec input latency)
from cloud-game.
@sergystepano
Wow, Awesome. How did you manage to run in on window. Can you show it so others can run when facing the same issue.
Regarding to latency, If you are close to the servers, the latency should < 1s. I think if you run on local, you can feel it seamless with 0ms right :/
And for the discrepancy between PSX and SNES latency, PSX has heavier computation, so it may makes things slower.
from cloud-game.
Thanks @sergystepanov very much, It will be a great help if you can submit a PR solving window issue.
Regarding to the performance, I think it's CPU problem. cloud-game has encoding video + audio pipeline, which is even heavier than the game itself (Or I haven't optimized enough). Maybe you are running VirtualBox and it also consumes some resource.
You can try with fully free and see the result.
from cloud-game.
Related Issues (20)
- Support function parameters when bypassing LibCo cores HOT 1
- make dev-run error~ HOT 1
- unable to use turn servers with credentials or multiple stun servers. HOT 4
- Only player one slot works HOT 1
- Investigate fatal: morestack on g0 after the migration to Go 1.21.0 HOT 1
- USB gamepad HOT 4
- Controllers do not work in the fullscreen mode HOT 6
- [Question] supported game system? HOT 10
- Port Libretro frontend to C
- Fix concurrent app start/close in the same room
- Reimplement aspect ratio
- can it support android app? HOT 6
- No games List HOT 1
- Add forced fullscreen option HOT 1
- New Go's 1.2(1)2 heap allocator crashes the app HOT 4
- Where are all the games stored? HOT 1
- dev run in windows failed HOT 1
- How to play win95 and win98 games HOT 8
- Does the project support PSP games? HOT 3
- Does your project support rtmp or other push modes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cloud-game.