ENet / How important is IPv6 support?

Questions about the LÖVE API, installing LÖVE and other support related questions go here.
Forum rules
Before you make a thread asking for help, read this.
Post Reply
User avatar
Endaris
Prole
Posts: 12
Joined: Sun Oct 09, 2022 11:55 pm

ENet / How important is IPv6 support?

Post by Endaris »

I already asked earlier today about this on the discord but didn't get a reply so I'm going to try here again.

I'm no expert on network protocols and would like to cash in on the advantages of UDP in regards to recovery from packet loss without jumping into the networking rabbithole myself. Our multiplayer game is currently using TCP via luasocket and working fine for reasons, a switch to UDP would be a QoL upgrade. Luasocket as far as I can see only implements UDP as is which doesn't help a lot.
So I looked at lua-enet and in general it looks nice because it does all the low-level wizardry parts like establishing a connection for a protocol that doesn't normally know connections.
However I did some research and it seems that the source library in C doesn't support IPv6 nor does it seem to ever intend to. I'm unsure of what the real world implications of that are and whether that should keep us from using lua-enet or not. Does this mean that players that are on IPv6-only would no longer be able to connect to the server? Does it still make sense to even bother with lua-enet at all? Or if those worries are nonsense, what are possible consequences I have to look out for?
(You can assume that I know what IPv4/IPv6 is and that I have a basic understanding of the OSI model)
User avatar
Мэтю
Prole
Posts: 32
Joined: Mon Jan 06, 2014 1:24 pm
Location: Espírito Santo, Brazil
Contact:

Re: ENet / How important is IPv6 support?

Post by Мэтю »

Basically you're right, IPv6 only cannot connect to IPv4. I'm unsure about the impact of this as I doubt there are that many people who have IPv6 only, there are still a lot of thing which run on IPv4 only (sadly). But anyway I think it's great to support IPv6, it's a important step towards "modernity", eventually we will need to use IPv6 due the lack of available IPv4. If you don't have much time don't worry much about it and perhaps find something else that better suits your game. Also, I think what you could do to circumvent this is to create an IPv6-to-IPv4 proxy, so IPv6 clients can connect to that proxy and it would proxy the data to the server. Another alternative, although challenging, is to try implementing yourself IPv6 support on fork from eNET. Well, it's been a while since I posted anything here, anyway if you want some help, just tell :)
World needs love.
User avatar
Endaris
Prole
Posts: 12
Joined: Sun Oct 09, 2022 11:55 pm

Re: ENet / How important is IPv6 support?

Post by Endaris »

Hey, thanks for your reply and clearing up my doubts about what it actually meant! I really wasn't quite sure.

Although IPv6 isn't that big right now, I have read that US governmental institutions are supposed to run their services IPv6-only by the end of 2025. Questionable availability of major services from IPv6-only clients is what has been stalling the migration progress throughout the last decades as far as I understand but I feel like that may change and potentially quite rapidly once a tipping point is reached as there are financial interests for ISPs to get rid of IPv4.

As briefly mentioned in the OP, a UDP-based protocol would not be a big requirement but more of a small QoL thing for our game so including an IPv6 fork of ENet would certainly be overkill - at least while I have enough features to work on to last me until about 2030 ;)
The proxy idea sounds a lot more realistic and actually reveals a whole string of other things for me to consider. Thinking about it, I'm not even sure if our server has IPv6 enabled in general. As far as I know it has been running for close to 10y I think so it seems possible that it doesn't. I'm also not sure if a service realistically can/should be available under an IPv4 and an IPv6 address at the same time so a proxy may be needed either way. The documentation for luasocket seems to imply that I'll either need something like a proxy to get by with a single listener like now or use two separate listeners for IPv4/IPv6. So it seems that some amount of work for IPv6 will be unavoidable in the long run.

I think for now we'll be sticking to luasocket+TCP and I'll keep lookout for what ENet/löve will be doing in the future.
And I'll be looking into what our general server situation is regarding IPv6. (Okay, I'm lying, I'll bug the guy with server access about it :crazy: )
If a proxy turns out to be a good solution to make us future-proof for IPv6, IPv4 only ENet may be what I'm looking for after all.

Thanks again, that was really helpful to get a better grasp on what should be my next steps or simply just what the future roughly holds for me in that regard.
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Bing [Bot], Google [Bot] and 6 guests