What constant data IC2 needs to transmit

  • On our server we have some serious disconnection issues where we are getting randomly disconnected due to packet overflow. So I did some analysis and found out that most mod packets are being produced by IC2 and BC (both sent over hundred packets in around 30 seconds of playtime). This is just walking around machine heavy area, without opening anything.

    I understand Buildcraft, it needs to constantly transmit location of items inside pipes etc. But I don't really get what is the need for so many packets in IC2. Only client-side changes I can see are sounds (which are not working anyway), particles coming off machines and state updates for electrical tools/armor.I don't think these alone can be responsible for that many packets.

    Example packet log: http://pastebin.com/raw.php?i=B2h2W0r4

    I'm using v108, but I don't think its directly related to the pre-release that is why I'm posting here.

    So can any developer please explain to me, what data IC2 needs to transmit that often?

  • Why would the server be sending those eNet calculations to client? The only thing the client should need to know is what to display on the GUI when a block is right clicked.

    EDIT: Dammit Ninja'd

  • Were all of the machines running? I have noticed on a largely unmodified sever that lag screws up furnaces, implying that some of the furnace code is being run on the client. Even it that is not the case, the sever is most certainly updating the client side progress of the machines.

    A Rock Raider trained as an Engineer, among other things.

  • While a machine's GUI is closed, the server shouldn't be sending anything to the client about the state of processing going on inside, unless external texture changes are needed, say to show a progress bar. If that's the case, the server should only be sending a small update packet when there's been a change, or when a new player comes into range that doesn't have the correct data. There's specific functions built-in to handle this already and they work wonderfully when used right.

    Things like sounds playing and such do require a packet to be sent to start or stop them, but if they are going to play on a loop, that should be coded into the client so the server doesn't have to keep sending a "Start/stop" packet.

    EnergyNet calculations should not be running at all on the client. There is nothing visible that happens with the EnergyNet.

    I really do hope IC2 goes open source at some point in the future because I'm sure the community will be able to help optimize and streamline it with great success while still letting the IC2 creators control the direction of the mod.

  • Yes, machines are all running. But this should not generate much traffic, except for some small packets to enable sounds and particles going off machines.