Search Unity

DarkRift Networking 2

Discussion in 'Assets and Asset Store' started by Jamster, Feb 7, 2018.

  1. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    Hi!

    I believe you already found some answers on the Discord but I’ll chip in as well!

    To run on Mac you either need to use the Mono Project (if you’re using the .NET Framework build of DarkRift), or you’ll need DarkRift Pro and its .NET Core build of DarkRift (which is natively cross platform). I haven’t run it with Mono in a while and this issue got reported the other day so I can’t guarantee the first option will definitely work at the moment!

    Jamie
     
  2. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    Hey all, I'm afraid I don't have much development to report since I last did an update (wow... that was a while ago...) because my life has been incredibly hectic recently, so much so that I haven't even been able to be particularly active helping people out either sadly! :(

    However that's not to say I haven't done anything since the last update when I've had some spare time...!

    Firstly I've done various small process improvements: I've moved the release script I have to a shell script rather than Python to make it operate a little more reliably (if anything prompted for user input it died!), and I've been able to refactor some of the system tests so they're a bit easier to add new tests into, particularly when those tests are for raised issues.

    I've been able to add a second locking mechanism to the data directory which doesn't require the Mutex class meaning you should now be able run Unity based servers on IL2CPP. This still retains backwards compatibility with the old lock so you won't hit any issues mixing old and new servers together with the same Data directory if you do have to do that for some reason!

    I've also been able to fix some log lines not being output when connections timeout on the server and have sunk a huge amount of my spare time into finding the remaining message corruption bugs. I've tracked down and fixed a corruption bug on the server when using the dispatcher but I'm sad to say that there's still more to find - credit to Allmaron for building a script that manages to trigger them so well!

    Lastly I've also added some missing cache settings to the documentation which will be uploaded with the next release.

    It greatly saddens me that I've not had the time to work with you all on DarkRift recently but I'm hoping that will resolve soon and I can get back! I'll try and do a release of everything listed above today or tomorrow!

    Jamie
     
    LostPanda and Willbkool_FPCS like this.
  3. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    DarkRift 2.4.4 is now available on the asset store!

    This update addresses a number of user submitted features and bugs! You can convert DarkRiftWriters/Readers from an to byte arrays more easily if you want to use your own serialization and can run DarkRift servers on Unity's IL2CPP in your using a Unity based server. The other notable thing is a further bug fix on message corruption. While this is still an outstanding issue, this fix improves the stability of DarkRift 2.4.x quite significantly when using the dispatcher so development should a little less rocky.

    DarkRift 2.4.4
    - Fix cache suppression accidentally left in
    - Fix connection timeout messages not being output
    - Fix issue #64 so DR will run on Unity's IL2CPP
    - Fix threading issue on finalization warnings
    - Add methods to send/receive data from raw byte arrays (issue #59)
    - Fix cache settings missing from docs
    - Add additional fix for message corruption when using the dispatcher
     
    Last edited: Jul 4, 2019
    LostPanda likes this.
  4. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    DarkRift has been reverted :(

    As I'm sure everyone is aware by now, DarkRift 2.4.x has been pretty unstable and frankly unusable for the past few months. I've tried with 4 bug patches to fix the issues that are present but there is always more to fix and those remaining are even harder to debug than those before them. It's with great disappointment that I've chosen to revert the version of DarkRift on the asset store back to 2.3.1 so that new users do not have to continue facing these issues.

    I will continue working on the 2.4.x branch until the issues are fixed and releases for 2.4.x will be available from the website (with updates posted on Discord and the forum) but the asset store will hold 2.3.1 until these are finally fixed. I encourage any users who have experienced the bugs to periodically checkout the 2.4.x releases and provide any feedback you have on them!

    I honestly feel pretty demoralised by all of this and the fact that each release has just pushed the problems elsewhere, and I can only apologise for the inconvenience and trouble that this saga has caused everyone. Thank you for the continued loyalty to DarkRift, and for the continued support and patience with these fixes!

    Jamie
     
  5. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    839
    Thanks for being
    Thanks for being so transparent about this, I really appreciate that.
    Such things could happen during development, so it's nothing to be angry about. I understand it's pretty demoralising, but keep up, I'm positive you're going to succeed in fixing it.
    Keep up with the great work! :)
     
    Jamster likes this.
  6. Shablo5

    Shablo5

    Joined:
    Mar 2, 2015
    Posts:
    23
  7. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    Frankly I'd say DarkRift is an excellent tool for a game like that! DarkRift will allow you to do significantly more bandwidth optimisation that most of the other network systems because it operates on a lower level that the others and doesn't make any assumptions about your data requirements. In my honest opinion, RTSs and other games that require synchronisation of a large number of simple objects are DarkRift's forté.

    Right now version 2.3.1 (which is the version on the asset store) is production ready. The latest release (2.4.4) is not because to some rather serious bugs, however I've committed to fixing those before releasing a 2.5.x.
     
    Willbkool_FPCS likes this.
  8. Shablo5

    Shablo5

    Joined:
    Mar 2, 2015
    Posts:
    23
    Do you have a roadmap? Can you tell me a bit more about Hazel and the niche it fits into? I can't find much information about it, or the 'use cases' so to speak.

    On a side note, your pro version says multithreaded, but what does that mean for users using the nonpro license?
     
    Last edited: Jul 28, 2019
  9. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    There's not really a written roadmap at the moment but current rough one in my head is to release inter-server communication/server clustering in the autumn, then probably a DarkRift 3 in the spring, then the area of interest stuff.

    The DarkRift 3 upgrade isn't laid out yet but won't be a tricky upgrade; it'll be based off the same codebase and will just contain some breaking changes in order to do improvements that can't just be done in a minor release, significantly simpler to follow than the DR 1 -> DR2 upgrade was! DR 2 will remain supported for a decent time after this as well anyway.

    Hazel was the network interface layer for DarkRift during the beta but DarkRift now uses a modular network interface layer so you can swap in others like ENET/Websockets/Steamworks as you want. Hazel's no longer developed by me but has been handed over to another developer who actually has the time and application to work on it.

    Both pro and free are multithreaded internally (and are externally thread safe) for performance, if it says that just pro is that's a mistake sorry!
     
  10. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    DarkRift 2.4.5 is now available on the website!

    This patch fixes some community reported bugs, adds and extends some simple commands and continues to fix the message corruption bugs.

    If you can, please do take some time to try this version in your projects and report back on any bugs you find/that remain.

    The update is already available on the website here:
    https://www.darkriftnetworking.com/DarkRift2/Releases/Free/2.4.5.unitypackage
    https://www.darkriftnetworking.com/DarkRift2/Releases/Pro/2.4.5.unitypackage?invoice=<your invoice number>

     
  11. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    It appears DarkRift 2.4.5 didn't upload correctly, this issue has been fixed! Apologies! :)
     
  12. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
  13. ercion

    ercion

    Joined:
    Aug 15, 2016
    Posts:
    71
    @Jamster I was taking a look at networking solutions and I came across DR2. It looks promising. Though i'm a bit confused about some things, I hope you can clear them up?
    I'm trying to achieve P2P multiplayer in iOS, Android and WebGL builds.
    1. Does DR2 support P2P on iOS, Android and WebGL app built with Unity?
    2. Which license will I have to buy to use these features?
     
  14. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,007
    Hi ericon,

    Glad it looks promising!

    Unfortunatley I'm not sure DarkRift meets your needs. DarkRift isn't designed for peer-to-peer games and, while I think one or two members of the community have managed it, it's not how it's supposed to be used.

    If you can adjust your architechture to use a relay server or an authoritive server then DarkRift would be a great fit but DarkRift isn't really a good choice for peer-to-peer.

    The DarkRift client can run on iOS, Android and now, thanks to the work of the community, also WebGL; so if you did choose to user a relay or server or authoritative server you should be able to target all three platforms.

    Jamie
     
  15. ercion

    ercion

    Joined:
    Aug 15, 2016
    Posts:
    71
    @Jamster Thanks, I'll check it out.