diff --git a/README.md b/README.md index a7d65cd..3e4a5ea 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@ # Light Reflective Mirror ## What -Light Reflective Mirror is a transport for Mirror Networking which relays network traffic through your own servers. This allows you to have clients host game servers and not worry about NAT/Port Forwarding, etc. There are still features I plan on adding but it still is completely usable in its current state. +Light Reflective Mirror is a transport for Mirror Networking which relays network traffic through your own servers. This allows you to have clients host game servers and not worry about NAT/Port Forwarding, etc. There are still features I plan on adding but it still is completely stable in its current state. ## Features * WebGL Support, WebGL can host servers! * Built in server list! * Relay password to stop other games from stealing your precious relay! * Relay supports connecting users without them needing to port forward! +* NAT Punchtrough +* Direct Connecting ## Plans For the future I plan on adding features such as: -* STUN/ICE (Will try to do NAT Punch if ports are blocked) * Multi Relay server setup for load balancing (It will split players up between multiple relay servers to make sure one single relay server isnt doing all the heavy lifting) -* Optimizations to improve performance ## How does it work? @@ -24,6 +24,16 @@ I took a bit of a unique approach to this version and instead of using one fixed Disconnects from the relay will not auto reconnect **yet**. So a dedicated host is extremely recommended! Or implement your own logic to auto reconnect. +## Tutorials + +(I recommend these over the text format) + +### How to setup LRM on an ubuntu server +https://www.youtube.com/watch?v=0SpKIs0Beuo + +### How to setup LRM in unity, along with basic usage +https://www.youtube.com/watch?v=Wi0rp2b8KmM + ## Usage Now for the juicy part, using it. Like I mentioned in the 'What' section, this is a prototype so if theres problems, please report them to me. Also PRs are also always welcomed! :) @@ -31,6 +41,7 @@ Now for the juicy part, using it. Like I mentioned in the 'What' section, this i First things first, you will need: * Mirror, Install that from Asset Store. * Download the latest release of Light Reflective Mirror Unity Package and put that in your project also. Download from: [Releases](https://github.com/Derek-R-S/Light-Reflective-Mirror/releases). +* Download JSON.Net from the asset store. (It's free) #### Client Setup Running a client is fairly straight forward, attach the LightReflectiveMirrorTransport script to your NetworkManager and set it as the transport. Put in the IP/Port of your relay server, assign LightReflectiveMirror as the Transport on the NetworkManager. Then attach the SimpleWebTransport script and assign that in the 'ClientToServerTransport' in the Light Reflective Mirror inspector. When you start a server, you can simply get the URI from the transport and use that to connect. If you wish to connect without the URI, the LightReflectiveMirror component has a public "Server ID" field which is what clients would set as the address to connect to. @@ -45,7 +56,7 @@ To request the server list you need a reference to the LightReflectiveMirrorTran #### Server Setup Download the latest Server release from: [Releases](https://github.com/Derek-R-S/Light-Reflective-Mirror/releases) -Make sure you have .NET Core 3.1 +Make sure you have .NET Core 5.0 And all you need to do is run LRM.exe on windows, or "dotnet LRM.dll" on linux! #### Server Config @@ -75,6 +86,8 @@ Maqsoom's Server List Example - https://github.com/maqsoom/LightReflectiveMirror ## Credits +Cooper - Assisted with development and made some wonderful features! He's also active in the discord to help answer questions and help with issues. + Maqsoom & JesusLuvsYooh - Both really active testers and have been testing it since I pitched the idea. They tested almost all versions of DRM and I am sure they will test the crap out of LRM! All Mirror Transport Creators! - They made all the transports that this thing relies on! Especially the Simple Web Transport by default!