Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Release] SlimNet Public Alpha (Free)

Discussion in 'Multiplayer' started by fholm, Nov 9, 2011.

  1. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    It's finally here, almost a month late...

    SlimNet Public Alpha

    I've finally managed to put together something which is release-able, the main server code is pretty stable (but still needs a lot of work before a 1.0 release). The demo game bundled with the server is a bit simple, but it was taking to long to create a game that would show of all the features before release. So I decided to cut it short and put the code out there for you guys to have a go at, and then finish the demo game and work on the server side-by-side with people (hopefully) testing the code out and (even more hopefully) giving feedback.

    SlimNet is a stand alone server in the same way that Photon, uLink and SmartFox are. It allows you to write networked games that run a unity client.

    Features

    List of the main features, or selling points, besides the standard stuff which you will find in all network server implementations like sending state, etc.

    • Source Code Available (This means that server ships with full source code, you have access to everything)
    • Authoritative Server (The server has full control over positions, collision detection, etc.)¨
    • RPC (Remote Procedure Calls are available or for both server to client and client to server communication)
    • Incredibly extendable (Even without modifying the source code of the server itself you can extend and/or change almost any behavior of the server)
    • No CCU limit (There is no limit on concurrent users other then what amount of hardware you can throw at it)
    • Support for 65000 simultaneous actors/rooms/players per instance (You will probably run into hardware and network problems before you get to this limit, which is purely theoretical)

    Download Link

    http://dl.dropbox.com/u/19877504/SlimNet-0.1.2-PublicAlpha.rar

    Introduction Video

    YouTube:
     
    Last edited: Jan 27, 2012
  2. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    Very nice, i'll give it a test run.
     
  3. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    I assume only the alpha is free? Because you would be ludicrous to have it free for ever.
     
  4. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    You are correct :)
     
  5. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    Good, I will have to try it before the alpha disappears.
     
  6. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    There will be more then one alpha version as I do continuous updates to it, it's not done by a long shot yet. I also have to write the dreaded manual and do more intro videos that explain the basics, etc. Setting up a game from scratch, stuff like that. More stuff will come, and it will be available to everyone also til the product is finished.
     
  7. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    I am sure you will do well. I will see if I can help in any way.
     
  8. liverolA

    liverolA

    Joined:
    Feb 10, 2009
    Posts:
    347
    nice try,keep up the great work!
     
  9. liverolA

    liverolA

    Joined:
    Feb 10, 2009
    Posts:
    347
    just check out the package and find that this framework is a complete one,even scene/room,collsion,actor logic were in,some advanced using like server grid was also introduced.
    waitting for the examples....really interesting.
    Please keep up,also you can make this commercial,so you can take time to improve this!
     
    Last edited: Nov 10, 2011
  10. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    Hi,

    I just found some time and tried to build the server but i'm getting an error on both the server and shared build :

    server build error:
    Error 1 The command "echo f | xcopy "C:\SlimNet\Build\Temp\SlimNet.Core.dll" "C:\SlimNet\Demo\DemoGame.Client\Assets\SlimNet\Assemblies\SlimNet.Core.dll" /Y" exited with code 2. SlimNet.Core

    shared build error:
    Error 1 The command "echo f | xcopy "C:\SlimNet\Demo\DemoGame.Shared\bin\Release\custom.dll" "C:\SlimNet\Build\instances\Demo\custom.dll" /Y
    echo f | xcopy "C:\SlimNet\Demo\DemoGame.Shared\bin\Release\custom.dll" "C:\SlimNet\Build\instances\Demo\custom-new.dll" /Y
    echo f | xcopy "C:\SlimNet\Demo\DemoGame.Shared\bin\Release\custom.dll" "C:\SlimNet\Demo\DemoGame.Client\Assets\Assemblies\custom.dll" /Y" exited with code 2. DemoGame.Shared

    I'm on Vista.
    Any idea what the problem is ?
     
  11. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    You probably dont have write access to C:\SlimNet without being admin.
    Also make sure the .rar file is unpacked in C:\SlimNet :)
    Also try starting visual studio with administrative rights (rightclick > run as administrator)
     
    Last edited: Nov 11, 2011
  12. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    Nope, i get the same error with the admin account, i also tried to build it from the desktop and i get the same error.
    If i have time tomorrow i'll try and build it on a win7 box.
     
  13. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    I just saw your IRC msg, if you pop online right now I can try helping you "live".
     
  14. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    Yep it works now.
    In case someone gets the same problem, you can remove the build events and copy the dll's manualy to the folders.
    Thanks for the help fholm :)
     
  15. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    This thread will end up being my development diary also I think. Just wanted to mention that I have been working on replacing the networking subsystem in SlimNet, it's still using Lidgren for the low level plumbing but there is an additional layer between now that allows for things such as:

    * Adjusting update rates on a client specific level, so players with slower connections get less updates.
    * Automatically adjusting actor level update rates if there are a lot of them in one area, this can be useful for scenarios like when you might have an area that is very densely packed with enemies the server will automatically (if you want, of course) throttle the update rates of the actors so they will not flood the client(s) that are connected.
     
  16. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Last edited: Jan 27, 2012
  17. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Last edited: Jan 27, 2012
  18. Timofeyeff

    Timofeyeff

    Joined:
    Nov 16, 2011
    Posts:
    2
    Thank you! Today i local tested v0.1 it's worked nice with small bugs. Tomorrow i download v0.1.2 and place it on online server. If you need i writed about bugs SlimNet.

    Regards, Maksim.
     
  19. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    If you find any bugs, report them in this thread :)
     
  20. Timofeyeff

    Timofeyeff

    Joined:
    Nov 16, 2011
    Posts:
    2
    Hello!
    Today morning v0.1.2 not worked at me. DemoGame Client write error about DemoGame.Client.PlayerExtension. Now i rebuild project.
    It's worked, but only if i stop instances in monitor o_O. If i start it - console is crashed. May be because of that i use visual studio express and it not support extensions i.e. SlimNet.Core.Tests and Solution Items.
     
  21. shinriyo_twitter

    shinriyo_twitter

    Joined:
    Aug 12, 2011
    Posts:
    328
    Hi There

    I'll try it. because, I wanna develop networking game.

    but I have some questions.
    Because, I can't read English well..

    1. SlimNet is a server name? I googled but couldn't find or, is it included the rar file?

    2. does it work on Mac OS machine? I watched the YouTube movie, but it work in Windows OS.

    Thanks in advance
     
  22. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    SlimNet is the name of the networking library this person has so kindly developed.

    2. I don't know if the server will run on mac, but you can definitely use the networking library on mac.
     
  23. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Demonstration of the interest management in SlimNet:

     
  24. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    I didn't have time to follow the releases but is this included in the last build or is it comming ?
     
  25. liverolA

    liverolA

    Joined:
    Feb 10, 2009
    Posts:
    347
    i think this is a feature video so the example in the video is not included in the release package..
     
  26. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    The current release has support for this, but the pre-built plugin that is just a drag-and-drop is not in the current but only in my development build. But you can expect 0.1.3 tomorrow or monday, which has this in.
     
  27. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    I just downloaded the lastest version.
    Joining one of the existing rooms works but when i create a new one, my server instance crashes.
    In the client log i get the message : RPC-Out: (2) RoomCreate
    but then the instance crashes.

    The problem i had before with the post build events are resolved when i remove the echo commands.
     
    Last edited: Nov 20, 2011
  28. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    I think I have missed to update RoomCreate when I did a change to the signature to it a while back, thanks for reporting it.
     
  29. liverolA

    liverolA

    Joined:
    Feb 10, 2009
    Posts:
    347
    Be honest i really want to use slimnet to build some demos and give more feedback, but the fact is ,i have no concept of this,don't know how does slimnet works(the video seems more like to show how to run server instances than a real tutorial)why not post some basic informationto give us global concept. I know this is an alpha version,you want to ask for some feedback,but if we don't even know
    how to use it we can't give some valuable feedback,try to make some little demos like basic chat,basic avatar chat,basic movement examples,the easier the better,to help us understand slimNet .

    just my oponion :D
     
    Last edited: Nov 20, 2011
  30. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    I'm doing my best, but I am only one person :) Working as fast and as much as I can (and my wife allows me too ;p)
     
  31. appels

    appels

    Joined:
    Jun 25, 2010
    Posts:
    2,687
    Patience Liverol, don't push the man into divorce lol
     
  32. liverolA

    liverolA

    Joined:
    Feb 10, 2009
    Posts:
    347
    Sorry if i rushed you,I have to say the kit is really potential,just take your time :D
     
  33. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    No worries :) It's just fun that people are interested in it!

    The current road-map is 0.1.3 today or tomorrow, then 0.2 which will be marked as beta in a week or two which will include a full manual!
     
  34. cez1230

    cez1230

    Joined:
    Feb 10, 2011
    Posts:
    31
    can we have the forum about this? or code project
     
  35. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Not following what you mean? There is a link to version 0.1.2 earlier in this thread, not sure what you mean about forum?
     
  36. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Small update, been working on SlimIOCP (My TCP library for games) and finally managed to get it to a state where I can integrated it into SlimNet:

     
  37. Tomo-Games

    Tomo-Games

    Joined:
    Sep 20, 2010
    Posts:
    223
    Hi fholm. Great work. I would like to test out your work. Should I wait for 0.1.3 which will include a manual ?

    My system: newer Mac Air 13" 4GB i5 120GB using Unity 3.4.2f2 Pro iOS/Android with MonoDevelop for Mac OS Lion. No MS Visual Studio atm but I could use VirtualBox to somehow integrate it with WinXP to create the Assemblies. I guess there could be a way to do this on MonoDevelop but I'm fairly new to that process.
     
  38. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    0.1.3 is around the corner, maybe I was not clear, it's 0.2 that will contain a manual (version coming after 0.1.3), 0.2 will also be marked as beta.

    Currently the main development platform is windows and it will not actually compile on any other platform currently, I'm working on fixing this - it's not a "major" thing in terms of time, it's just that my to-do list is about 150 items long :)
     
  39. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Small update on the networking support for tcp / udp

     
  40. Tomo-Games

    Tomo-Games

    Joined:
    Sep 20, 2010
    Posts:
    223
    So should I wait then ? I'm confused what's coming next 0.1.3, 0.2 or slim UDP?

    I would like to see a part 4 YouTube video.
     
  41. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    The next coming version is 0.1.3, which will include TCP+UDP support, a lot of minor improvements and hopefully multithreading in the simulation server.

    0.2 will be marked as beta, which in general just same features but more stable, but will hopefully include Linux+OSX support also, for both development and server.

    I actually have both part4 and part5 on disk, maybe I should upload them :)
     
  42. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Quick update on how I changed the state send rates for client and server, and how they work now

     
  43. Tomo-Games

    Tomo-Games

    Joined:
    Sep 20, 2010
    Posts:
    223
    Hi fholm

    I took a look at SlimNet 0.1.2 :)
    Can you please post the lidgren Source changes?

    BitInStream.cs example:
    Code (csharp):
    1. requires Lidgren.Network.NetIncomingMessage.SlimNet_GetData()
    There were updates made to the lidgren trunk recently that fixed some Mac related issues... Which you'll probably need to rebuild for Mac users.

    Note: I'm using System.Diagnostics.Stopwatch to get around importing kernel32.dll in SlimNet.Time. Aside from making a few lite ServerPath changes \ -> / in SlimNetTab.cs SlimNetConfig.xml (Unity's 'Export Scene to Instances' window), and switching C: to F: on Build Events, everything looks pretty good to go Mac wise.

    I'm running the Unity side GameDemo on Mac with the SlimNet server running locally on WinXP via VirtualBox w/MS Visual Studio.
     
    Last edited: Nov 30, 2011
  44. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    I'm happy you did!

    I will make sure to do so, for now you could just dis-assemble the DLL in reflector and check out the changes yourself.

    I try to pull the lidgren sources once or twice a week and make sure my local (modified) copy stays in sync.

    I'm glad to hear, for the client the major thing is the SlimNet.Time class correct, I have not tested it but it should (tm) work on Mac and WebPlayer with that fixed.

    I'm glad! Currently the server depends on a few things from winmm.dll and kernel32.dll, things that sadly are not incredibly easy to replace. I have solutions for both linux and osx, but have not had time to implement (they're on my todo-list, but it's about ~150 items long atm).
     
  45. Tomo-Games

    Tomo-Games

    Joined:
    Sep 20, 2010
    Posts:
    223
    Reflector - That was my 1st thought. I searched around and saw it costs money. Then a second thought occurred me 'just ask him for the source stupid'. ;)

    Can you advise which classes to decompile ? NetOutgoingMessage, NetIncomingMessage...

    If the Lidgren changes are big would it be easier for you to post a patched Lidgren.Network.dll then? The fix is one file NetPeer.Internal.cs which just ignores the non supported exception, I don't think it impacts much otherwise.

    Ok I didn't know how bad that impacted non windows platforms... Let me help test some of those issues out as a separate case. :cool:
     
    Last edited: Nov 30, 2011
  46. Dabeh

    Dabeh

    Joined:
    Oct 26, 2011
    Posts:
    1,614
    I'm taking a look at this, do you think it's in useable condition over photon?
     
  47. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    If you have a real game that needs networking now would still honestly go with Photon today as SlimNet is still being developed at a very fast pace and changes a lot.

    If you however maybe have future plans for a game, or just want to see how a networking server is built from the inside (Photon, uLink, etc. are all black boxes - SlimNet ships with source code), then I urge you to check SlimNet out :)
     
  48. Dabeh

    Dabeh

    Joined:
    Oct 26, 2011
    Posts:
    1,614
    Thanks, since it's rapidly being developed I won't bother with learning it now since it probably won't be the same later. So I'll consider this one for a future project :). Looks good though! Hope I get to use it someday in its finished form :). Any plans on charging?
     
  49. Tomo-Games

    Tomo-Games

    Joined:
    Sep 20, 2010
    Posts:
    223
    To confirm - I also get the Server Crash issue for RoomCreate that Appels mentioned earlier.

    On the Unity mac side...
    I get a non number error for SlimNetActorProxy.LateUpdate when Spawning a player from the GUI for both Actor's Postion and Rotation Transforms... Or when right clicking a new position on the scene.

    Example:
    Sometimes it's an alternate pattern of values having numbers and then not. I have a feeling it's my vanilla lidgren build not having the proper SlimNets bit stream changes. I had copied a couple of SlimNet-lidgren class files from Reflector for NetXXXMessage* that didn't compile well as is. Some ulong to long conversions were trying to use a minus operator. So patching this may have corrupted the build somewhat.
     
    Last edited: Dec 3, 2011
  50. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052


    Small update on multi-threading.