
Sockey – A P2P multiplayer soccer game based on WebRTC - MagicNumber
http://sockey.eu/
======
danschumann
I'm surprised it's taken this long for me to see a WebRTC game on hacker news.
I think that's a very promising technology for realtime games in the browser.
When more websites can hide source code with web assembly, I wonder if that's
what it'll take for more to come out.

~~~
vvanders
That's because WebRTC really isn't a great fit. It doesn't guarantee a UDP
pipe so it can fallback to TCP with disastrous results and the dependency
chain on the server side makes it really painful to integrate.

~~~
pthatcherg
You can cause effectively force UDP by doing two things:

1\. Don't signal TCP ICE candidates. 2\. Don't provide TCP TURN servers.

If you do those two things, it's impossible to get a TCP connection. In fact,
just doing #2 will nearly guarantee it (since a TCP connection outside of TURN
is so rare).

But ICE will almost always prefer UDP over TCP, so if it's using TCP it's
because otherwise you simply wouldn't be connected at all. And if you'd prefer
not to be connected, you could simply close the connection when you observe
it's over TCP.

~~~
vvanders
Okay so you can force a UDP connection, still doesn't solve the second point
which is that it's a _royal pain_ to use the Google library.

Last time I tried to get the chromium builds going on win32 was 3 hours of
complete failure and obscure error messages because of various "non-googler"
flags. The WebRTC page basically says you can't do Android development if you
don't have a Linux machine [1].

There's been a bunch of game studios that started down the path of WebRTC and
basically gave up since it's so hard to integrate. Compare that with 2-3 C
files and a couple headers + libsodium for something like Netcode.io.

Also game servers don't really care about congestion control. They rarely
break ~15kbps of continuous data per client versus something that scales up
with bandwidth like a file transfer. Any case where congestion control is an
issue should be something that needs to negotiated over a TCP stream
anyway(otherwise you're just reinventing TCP over UDP).

[1] [https://webrtc.org/native-code/development/prerequisite-
sw/](https://webrtc.org/native-code/development/prerequisite-sw/)

~~~
TD-Linux
Congestion control is required to be enforced at the browser level as an anti-
DoS measure. You could just have the browser API limited to 15kbps, but that
seems like a silly limitation when the way around it has already been
implemented...

~~~
vvanders
Take a look at Netcode.io, all clients are auth'd with a token and any client
that doesn't have the token gets ignored. The token also mandates what
IP/hostnames are a valid destination. That way someone trying to DoS just gets
their account blacklisted.

Congestion control isn't going to help when a bad actor spoofs your protocol
and dump GBs of data on you.

------
esolyt
Looks like a remake of Haxball (haxball.com) that doesn't require Flash.

------
Raphael
I spawned in the upper left corner outside of the field and couldn't get
inside the wall of the field.

~~~
warent
That means you're the coach

------
DigiLabSoftware
Hello I'm the dev of this game ask me anything you want, we are working on an
updated version of the game stay tuned on our official page
[https://www.facebook.com/SockeyGame/](https://www.facebook.com/SockeyGame/).

------
DennisNygren
Love it! The tempo and physics feel really good and you can do a lot of cool
fun goals! I didn't have any noticeable lag.

~~~
DigiLabSoftware
Thanks for your feedback, stay tuned on @SockeyGame for our 2.0 version of the
game.

------
Tepix
Had problems with Firefox 55.0.2 on Linux. Typing WASD would just open the
search dialogue, not move the player.

------
rasz
Failed to register service worker: DOMException: Only secure origins are
allowed

------
betoharres
congrats, but it I got too much lag while playing

~~~
MagicNumber
It definitely lacks some feature indicating where the room is hosted. This
would make it easier to find rooms with a lower latency.

Disclaimer: I am not related to the game creator.

------
vmarquet
Unfortunately, as many game creators, they seem to believe that everybody in
the world has qwerty keyboards, which is not the case. Using the A, W, S and D
letters does not make sense on azerty keyboards (up and down reversed). Why
can't we use keyboard arrows to move?

Too bad, the game would have been really fun to play if controls were usable
for me.

~~~
MagicNumber
There is a button to select the input keys when logging in.

~~~
vmarquet
Oh you're right! I searched for something after the login screen but I missed
this before. Thank you.

