Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: RNL - Realtime Network Library - The opensource reliable UDP network lib for games

  1. #1

    RNL - Realtime Network Library - The opensource reliable UDP network lib for games

    I did it again

    https://github.com/BeRo1985/rnl

    RNL - Realtime Network Library - The opensource reliable UDP network library for real-time games

    RNL is an UDP-based network library for real-time applications and games, inspired by ENet, yojimbo, libgren, and so on.

  2. #2
    Absolutely great job. You rock

  3. #3
    Great. I should keep an eye on this.
    No signature provided yet.

  4. #4
    So many letters, nice job!

  5. #5
    Trying to use it in my project just now, RNL could use some more (any) documentation

  6. #6
    You rock as usual @BeRo

    cheers,
    Paul

  7. #7
    Hey, I've been using your library to communicate between two programs. One is made in Delphi, other in Lazarus.
    Code is pretty much taken out of provided example and modified to use 'real' network instead of virtual.

    It works reliably but I'm having a slight problem, each time I send something to other program it takes about a second or two to arrive (on same machine).
    Any idea what can cause such delay?

    Sending looks like this:

    Code:
    procedure ServerPing;
    var
      buf:TBytes;
      i: Integer;
    begin
      setlength(buf,1);
      buf[0]:=byte(mtPing);
      log('ping');
      chrServer.Server.BroadcastMessageBytes(reliableChannel,buf);
    end;
    and receiving looks like this:
    Code:
    RNL_HOST_EVENT_TYPE_PEER_RECEIVE:begin
            //ConsoleOutput('Server: A message received');
    buf:=event.message.AsBytes;
            case eMessageTypes(buf[0]) of
              mtPing: log('pong');
    Besides that, handshake error when one program is compiled as x86 and other as x64 is expected?
    Last edited by SilverWarior; 13-09-2018 at 02:53 PM. Reason: Added code tags

  8. #8
    Hm, sounds like compiler-related problems, because I myself have no problems interconnecting 32-bit x86 and 64-bit x64 builds, see:



    Even i did noticed no problems at interconnecting 32-bit ARM builds (Delphi Client-Side on Android), 32-bit x86 (Delphi Client-Side on Windows) and 64-bit x64 builds (FPC Server-Side on Linux and Delphi Client-Side on Windows) in a commerical project, which's using RNL.

    So which exactly for compiler version you are using, and exact which compiler parameters? At FPC you should disable the higher code optimizations, because FPC have often code optimizer bugs, so please test with "-O- -O1" as compiler parameters for to force the lowest code optimization level. And could you give me a example project with sources and binaries, so that I can investigate the problem in a better way?

  9. #9
    My project uses bunch of external libs but I'll try to make slimmed down example

  10. #10
    Here it is:
    https://www.dropbox.com/s/742wy18m2u...debug.zip?dl=0

    No connection error anymore, this time I didn't copy any defines from your example, probably that's the reason.

    Still 1 second lag remains, hope you can help me out. Use button to send 'ping' from delphi to laz.

Page 1 of 2 12 LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •