Online/Networking?

This forum is currently in read-only mode.
  • I have also been investigating the UDP issue. I mentioned earlier that UDP is fast but less reliable than TCP (and Raknet is a UDP library).

    However, I have investigated further and it appears they have solved this issue. Here is a quote from the Raknet documentation:

    [quote:1ctdgbnt]Unreliable

    Unreliable packets are sent by straight UDP. They may arrive out of order, or not at all. This is best for data that is unimportant, or data that you send very frequently so even if some packets are missed newer packets will compensate.

    Advantages - These packets don't need to be acknowledged by the network, saving the size of a UDP header in acknowlegement (about 50 bytes or so). The savings can really add up.

    Disadvantages - No packet ordering, packets may never arrive, these packets are the first to get dropped if the send buffer is full.

    Reliable

    Reliable packets are UDP packets monitored by a reliablilty layer to ensure they arrive at the destination.

    Advantages - You know the packet will get there. Eventually...

    Disadvantages - Retransmissions and acknowlegements can add significant bandwidth requirements. Packets may arrive very late if the network is busy. No packet ordering.

    There are also options for packet sequencing, so packets arrive in the right order.

    All in all, I think this is a good fast solution, especially in terms of development time required.

    My only issue is the licensing, but hey, things cost money <img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" />

  • Solved what issue? UDP just sends a message and waves it goodbye. TCP sends a message and waits for the receiver to confirm they got it so you guarantee arrival, which is slower since you have to wait for the confirmation, etc. That's a bit of a simplification, but that's essentially it. If you recreate that guarantee with UDP, what have you gained? Haven't you just reinvented the wheel (TCP)?

    I don't know much about networking though, so maybe there is some kind of advantage.

  • Well if you are going to Use Raknet, which is a UDP library, you are going to need some way to send guaranteed packets (for somethings and non-guaranteed for others). My concern was that because Raknet is a UDP library that it would not have a way to send guaranteed packets ... however it does.

    This is a good thing, if you are going to use Raknet.

    I am all for using TCP for guaranteed packets though if you are going to include that in the plugin.

  • Oh okay, good, Raknet seems to have it all covered then <img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" />

  • Raknet looks very good. Has anyone got any plans or the skills to make this extension? What would it involve? How hard would it be to plug in the Rakkarsoft API into a construct extension?

    This extension would truely make construct.

  • I would also like to see a raw socket extension, so we can talk with already-existing protocols (like SSH, telnet, FTP, etc. just to name a few). I am a power-user of MMF2, and it has always missed such a extension. I'm really looking forward to new versions of Construct, and I might switch my newer projects, if it get's stable enough (and has more features!).

  • I can try to code an online plugin for Construct if it is of real interest to someone (as i think it is).

    This project deserve it all <img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" />

  • I think a lot of people would be interested in an online plugin!

  • just wondering, because i'm not entirely clear on what's going to be done with this plugin, will there be a client to client feature?

  • Well for client to client communication there must be a server somewhere. If you are asking if it will be possible to make a 2 player network game (Host/Join style) it will definitely be, as well as a single server/multiple client game.

    I'm using Hawk Network Library that according to my experience is very reliable, stable and GPL so there should be no licensing problem (But hey a RakNet plugin is always possible in the future <img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" />). I've already coded a kind of working socket wrapper, i'll post something as soon as it will be usable.

    Mk

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • That would be great.

  • Wow that was quick! Sounds awesome, can't wait.

    Edit- Also, if this was made, we'd definately need some kind of string parsing object. Unless this can be done through contruct already? :O

  • Functions like Mid, Left, Right, Len, Str appear to be already implemented.

  • I have just spent some time looking over the Hawk network library

    http://www.hawksoft.com/hawknl/

    From what I can see it looks very good <img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /> especially considering there are no licensing issues.

    I will certainly be very interested in your progress MK, and if you need any input, I am most willing.

    I am starting to get excited about all of this <img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" />

  • Having examined the Hawk documentation further, here is my first question MK:

    Are you planning to implement a higher level layer that manipulates the library through construct, or are you looking to simply allow construct to use the library as is?

    I ask the question, because Hawk has fairly low level socket manipulation.

    Of course, I am only looking at the Hawk documentation for the first time and a bit of feed back from a more experienced Hawk user would be good <img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" />

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)