Originally shared by Benjamin “BeRo” Rosseaux
Originally shared by Benjamin “BeRo” Rosseaux
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.
https://github.com/BeRo1985/rnl
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.
https://github.com/BeRo1985/rnl
Reliable and UDP in the same sentence!
ReplyDeleteFirst error compilation demo Delphi berlin
ReplyDeleteGetTickCount64 line 5638 on RNL.PAS cannot find
since TGetTickCount64=function:TRNLUInt64; stdcall; on line 9805
How i love those PAS files that do not compile and never seem to work.!!!!
Hm at Delphi Tokyo 10.2 and FreePascal >= 3.0.x, GetTickCount64 is already in the Windows Unit, but I'll fix that, thanks for the bug report
ReplyDeleteshlomo abuisak Fixed at github.com - - Fixed an issue with older Delphi versions than Delphi Tokyo 10.2 (w… · BeRo1985/rnl@1a61731
ReplyDeleteBenjamin Rosseaux Ok and good luck
ReplyDeleteSounds cool. But please consider using multiple units instead of one monolithic one ;)
ReplyDelete(and if you're interested, take a look at Delphinus, a Packagemanager for the Delphi-IDE to distribute your project ;) https://github.com/Memnarch/Delphinus/wiki)
Alexander Benikowski RNL is a single-file project in flavour of the various single-header C/C++ libraries for to be fast-includeable into projects, without to have a chaos of many single files. And it would be difficult anyway to split RNL in many files, because inside RNL are very many recursive class dependency references. It would indeed be possible (for example with cross-unit-scope pointer<->class typecasting tricks), but however still difficult and ugly for the code beauty look. See my BESEN project ( github.com - BeRo1985/besen ), where you can see this recursive-class dependency-reference-beyond-the-unit-scope-borders-approach in action.
ReplyDeleteDoes this use broadcast on IPv6? It doesn't seem to join any multicast group. Does it work on iOS/macOS?
ReplyDeleteDavid Nottage No, it doesn't use the IPv6 multicast feature, since it should be portable and also working with IPv4 (without the multicast feature, which IPv4 did became it later additionally), but RNL has anyway a broadcast feature, but in a portable way, and but only for to the connected clients.
ReplyDeleteBut it should work already with iOS&MacOS, if even I've not tested it yet on iOS&MacOS, because Darwin (iOS&MacOS) is also a POSIX-based operating system kernel (which iOS&MacOS are using it), it should work already, unless I have a really stupid Darwin-related bug somewhere in the code. ;-)
Benjamin Rosseaux So it doesn't use IPv6 at all, or did you mean something else?
ReplyDeleteDavid Nottage No, it has IPv6 support but just only with the same feature-set as just as with vanilla IPv4, because the RNL network code should be OSI-Layer-3-API-neutral so that the TRNLVirualNetwork and TRNLNetworkInterferenceSimulator classes were also only made possible by this neutral OSI-Layer-3-API-abstraction approach, and besides also, RNL should be neutral for all connected clients, for example, to avoid unfair OSI-layer-3-feature advantages for some connected player clients compared to other connected player clients, so that all players in a network game match have the exactly same chances.
ReplyDeleteDavid Nottage But to make it clear again, it has IPv4 "and" IPv6 support.
ReplyDeleteI know it is off topic, but Ipv6 multicast is pretty cool. ipv6friday.org - IPv6: Goodbye to broadcast, say hello to Multicast » IPv6 Friday
ReplyDeleteLars Fosdal Have you had any success with it, using Delphi?
ReplyDelete