ICE adapter status report 2

I also had no previous experience in Kotlin and managed, so I'd say we can definitely use your help. You can take a look here, even though at the moment there isn't too much explanation of what needs to be done: https://github.com/FAForever/kotlin-ice-adapter/issues

Just a quick thought: Wouldn't it be easier to create a FAF VPN and pretend all players are in a LAN network? That architecture would solve a lot of problems at its core and simplify the connection chaos.

  • Putting a bunch of untrusted computers into a VPN is dangerous as it's no longer restricted to the FAF related ports.
  • we'd need to create one vpn per game. That's a lot of server coordination required and sounds more complex than ice
  • I see little reason why VPN should work if ice doesn't work

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

10

Fortunately had some hours yesterday that I could spend. I fixed tons of issues in the client<->ice adapter communication and the connectivity check.

On joining a game with the new ice adapter hosted by a classic ice adapter, the classic ice adapter debug window shows a persistent connection that is kept being alive.
Unfortunately my game still does not join a lobby (stuck in joining lobby screen), so I guess there are some issues in the ice-adapter<->game connectivity that I need to figure out.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

I'm optimistic that the new version will continue to work for those of us that use IPv6. The current version does as it all uses IPv4 by default. I guess my comment is merely to make you mindful that we exist. It's actually the default in my country (Australia) on Telstra for example.

I'm happy to be a tester when it becomes available.

Former Board Member - March 2021 - March 2022

I don't want to crush your hopes but I haven't seen any code disabling ip v6 before and I didn't see anything to enable it either. So don't expect any improvements there.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

Does this option in the client just point to an empty hole then šŸ¤–
8f90580f-5a72-4311-aea7-fb729dc27400-image.png

Good question. Let me check this and I will post results here.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

I have not seen it in the ICE adapter because the client sets a JVM property that bypasses the ice adapter and directly affects the underlying ice4j library. By default ipv6 gets explicitly deactivated and only enabled if the set is activated in the client.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

@brutus5000 @clyf Well the last few games I played I didn't disable IPv6 on my PC and it worked fine. It was only a handful of games with one friend where I did that. It looks like everything is working the way it is meant to. Great news.

Former Board Member - March 2021 - March 2022

It works fine with IPv6 enabled (and always has in my experience), I think the question is does it work with IPv6 only? I know that's not a particularly common scenario at the moment but it could be in the future. Also with carrier-grade NAT could some people potentially see a better experience if it were to prefer IPv6?

If you have ipv6 only and the other side has -for some reason- ipv4 only, then it only works via relay. But in general it should work.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

10

1 hour ago we played a game with

ice-kotlin.png

Still lacking features like reconnect and telemetry though.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

Awesome!