RakNet networking middleware now open source

140 views
Skip to first unread message

Floh

unread,
Jul 7, 2014, 11:40:01 AM7/7/14
to emscripte...@googlegroups.com
RakNet has been aquired by OculusVR and is now on github under an open source license:


The low-level feature set is similar to ENET (guaranteed messaging over UDP), but it also has a number of higher level features (voice chat, object replication, RPC, etc...). We're using RakNet for 5 years now and it is a solid and low-overhead messaging library, it's also used in many other game projects, and as far as I know it is also the networking layer in the Unity engine.

The most exciting thing to me is that open-sourcing the lib could enable an emscripten port (there is already a Native Client port which probably could be used as a starting point).

It's probably also a good idea to create a "RakNet lite" which doesn't have all the high-level bells'n'whistles (connection management and messaging are the really important features imho).

Cheers,
-Floh.

Alon Zakai

unread,
Jul 7, 2014, 1:48:30 PM7/7/14
to emscripte...@googlegroups.com
Interesting!

This should just work if it uses async unix sockets, hopefully that's the case. I wonder why they needed to port to NaCl? I guess because they have their own APIs for everything?

- Alon



--
You received this message because you are subscribed to the Google Groups "emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-disc...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Floh

unread,
Jul 7, 2014, 2:10:15 PM7/7/14
to emscripte...@googlegroups.com
Yes, NaCl has separate socket wrapper classes (PP::UDPSocket etc...) and doesn't try to emulate the common socket API (unless that's changed recently).

It looks like RakNet has a socket wrapper class which handles platform specifics (see RakNetSocket2_XXX: https://github.com/OculusVR/RakNet/tree/master/Source), and I know that there's at least one thread which does the send/recv for open connections (search for UpdateNetworkLoop and RakThread: https://github.com/OculusVR/RakNet/blob/master/Source/RakPeer.cpp) but the important threaded stuff seems to be isolated in a RakPeer::RunUpdateCycle() call (the thread just calls this repeatedly), and I seem to remember that in my last support mail thread with Kevin Jenkins he mentioned a way to run the update loop without threading but I need to dig this out from my mail archives.

-Floh.

To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-discuss+unsub...@googlegroups.com.

Lindsey Tropf

unread,
Sep 15, 2020, 6:18:16 PM9/15/20
to emscripten-discuss
Amazingly late 6-years-later inquiry: Do you have any updates on this? "I seem to remember that in my last support mail thread with Kevin Jenkins he mentioned a way to run the update loop without threading"

My developers are having some struggles with RakNet > Emscripten due to the multithreading.

Floh

unread,
Sep 16, 2020, 5:28:28 AM9/16/20
to emscripten-discuss
It looks like RakNet is long dead unfortunately (https://github.com/facebookarchive/RakNet).

Lindsey Tropf

unread,
Sep 16, 2020, 12:10:28 PM9/16/20
to emscripten-discuss
Of course we started building with it in 2015.  Time to rebuild everything, I guess!  😬
Reply all
Reply to author
Forward
0 new messages