Search Unity

[NO CCU LIMIT] Forge Networking now OPEN SOURCE

Discussion in 'Assets and Asset Store' started by Brent_Farris, Dec 22, 2014.

  1. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Awesome! Thank you :) We will check it out
     
  2. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Just wondering: how does Forge plan to have developer interaction with their Arbiter servers? Does one have to upload a Unity headless linux build, write the code in a project manager tab, or maybe upload a c# script? Also, will Arbiter be able to create and manage games hosted by itself and players? Once I have the real time networking polished, I'd like to start playing with the whole back-end part to see what I need to build my game around.
     
  3. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    We are still planing the hosting but my initial thoughts are to be able to allow you guys to upload your headless/batchmode builds to run.

    I didn't even think about letting your players run hosted server instances. Maybe we can devise a system for this, that way your players who want to host servers can help fund the cost of the servers you run (and possibly make some extra profit for you?). :)

    Sounds great! We want to work with you when you get to this stage so that we can really design something powerful and flexible to use. :)
     
    jpthek9 likes this.
  4. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    Has something changed on the dev portal as I can't seem to login anymore, tied my email address and the access key as the password but it's not working, keen to try the new version.
     
  5. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hey Hmm, when you went into your profile did you setup a username and password when it prompted? (I will be able to check the db in a few minutes). If so then that should be your new login. Let me know if you need a reset and I can do that for you. :)
     
  6. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    Managed to get in, tried the new version but still can't get a client to join, not getting the socket.connected event or socket.Connected being true. Just doing a simple host on the stand alone and doing a simple join, just not working for me, the code being used is from your example basically, I sent it over. And still getting the odd exception in the console.
    Code (csharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. BeardedManStudios.Network.NetworkedMonoBehavior.Update ()
     
  7. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Well I know our samples are working. Do you think you can try out just a default sample from start to finish with no changes to verify that there is nothing else that is wrong.

    As for the exception, this usually comes from the NetworkingManager if it is not setup properly or is initialized before a connection has been established (which should have been fixed in the last update, however it uses the connected event which you are having trouble with). Does your NetworkingManager prefab has the NetworkingManager script on it?
     
  8. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    As I mentioned before, I get a connection between the two if I dont have a host also running on the editor version, so it seems to be an issue with Forge when a host and client are running at the same time. Without the host running there is a connection made and moving a cube in the editor results in it snapping back as if the host is sending back positions but it is not the position of the cube in the host. And setting the Is Player option on the cube in the editor and hitting play is still spewing out exceptions every frame.
     
  9. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    This is very odd, I will take the code previously provided and work with it. This should work fine because I have hosted and connected with 13 clients on same machine with moving updates without any issues a few versions back. We also developed our Angry Bots demo on the same machine without any issues. There must be something we are missing here. I really need to audit these issues more in depth. Should I be using the code that was provided in this post?
     
  10. Sezerza

    Sezerza

    Joined:
    Aug 9, 2013
    Posts:
    27
    I too am interested in the back end portion of the arbiter so I know how to go one with designing my game.

    How can I save characters to accounts, then send those characters to clients for them to display without instantiating anything on the server, but still able to send data and RPCs between them?

    To clarify, if I have a character (just the script with hp and skills etc) on the server, and then the client does something so that i suddenly want to display his character for him while having access to his hp and skills and what not, could i instantiate a basic prefab locally for the client, then somehow link the client side character script on the prefab to the server side character script so it can be updated and communicate?

    I'm looking at a completely authoritative server here, so the transfer of information to the client is just for them to see information about their character really, not to modify it directly themselves.. if that matters.
     
  11. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Out of curiosity, how does NetWorker.Write() work? I noticed that it can be sent reliable as well but I'm unsure what the parameter UpdateIdentifier does. Also, is the data sent through this method received exclusively received by the event dataRead?
     
  12. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    I did email through the basic project the other day. I think a little investigation is needed to report the exceptions that are being thrown, a new user of the system when its available is not going to take too kindly to exceptions appearing in the console with no information at all as to why or what is causing it, think the code needs a lot more test to avoid new users making what may well be silly mistakes. For example turning on 'Is Player' no matter how badly I have setup the code should report nicely why it is throwing an exception.

    One question is what does Networking.SetPrimarySocket do and when and why should it be called? Does it need setting for hosting? Does it need setting for a client? I assume it only needs setting for one as cant set Primary socket to the host worker and to the client worker, but all your docs say is 'Sets the primary networking PrimarySocket(NetWorker) to be used'

    My very simple code for creating a Host and a Client is below.
    Code (csharp):
    1.  
    2.   bool StartHosting()
    3.    {
    4.      hosting = true;
    5.  
    6.      socket = Networking.Host((ushort)port, protocolType, playerCount, isWinRT);
    7.  
    8.      Networking.SetPrimarySocket(socket);
    9.      Networking.PrimarySocket.error += PrimarySocket_error;
    10.  
    11.      if ( proximityBasedUpdates )
    12.        socket.MakeProximityBased(proximityDistance);
    13.  
    14.      socket.serverDisconnected += delegate(string reason)
    15.      {
    16.        NetworkingManager.CallOnMainThread(delegate(object[] args)
    17.        {
    18.          Debug.Log("The server kicked you for reason: " + reason);
    19.        }, null);
    20.      };
    21.  
    22.      if ( socket.Connected )
    23.        ready = true;
    24.      else
    25.        socket.connected += delegate() { ready = true; };
    26.  
    27.      return true;
    28.    }
    29.  
    30.    void StartClient()
    31.    {
    32.      hosting = false;
    33.  
    34.      socket = Networking.Connect(ip, (ushort)port, protocolType, isWinRT);
    35.  
    36.      socket.error += Client_error;
    37.  
    38.      if ( proximityBasedUpdates )
    39.        socket.MakeProximityBased(proximityDistance);
    40.  
    41.      socket.serverDisconnected += delegate(string reason)
    42.      {
    43.        NetworkingManager.CallOnMainThread(delegate(object[] args)
    44.        {
    45.          Debug.Log("The server kicked you for reason: " + reason);
    46.        }, null);
    47.      };
    48.  
    49.      if ( socket.Connected )
    50.        ready = true;
    51.      else
    52.        socket.connected += delegate() { ready = true; Networking.SetPrimarySocket(socket); };
    53.  
    54.      //Networking.SetPrimarySocket(socket);
    55.    }
    56.  
     
    Last edited: Feb 26, 2015
    Meltdown likes this.
  13. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello everyone, I wanted to keep you all in the loop of our teams work. So we are working closely with one of our partners to publish their fighting game with Forge on mobile. You will all reap the benefits of the updates and bug fixes we find in development (as we are actually working directly with them on getting it in their game). This is why our updates are coming out a little bit slower, please forgive us for that. So far the integration has gone very smoothly getting the game integrated with Forge and we are very excited when we see it working :). Please do not slow down on your feedback and bug reports though! Your feedback is essentail to our entire process. Thank you all for your feedback!
     
  14. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Accounts are built into the arbiter system so that you can have logins and various other standard information like level, exp and currencies. We will be rolling out our database integration very soon, when we do this, each developer will get a database of their own and it will be able to tighly integrate with the main system. :)

    This may be more game design logic, you can do a couple of things. You can pull the player stats from the server (json) and use that data in order to populate your user interface with the appropriate data for the player in quesiton. Another thing you could do is actually have a request that has the player in question send their character data up to the server and relay it to the client requesting.

    If you are doing the Arbiter request method for json then there will be no manipulation of the data. Players only have access to their accounts and information on the Arbiter and can not modify other players accounts in any way :).
     
  15. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    The update identifyer is purely for grouping of packets. It is used to identify a particular bit of information. Basically, lets say that you were writing a players position, an identifyer could be anything, I would suggest something like "Player_A_Update_Position". So now lets say we are really hammering the position information across the wire and packet C gets there before packet A and then packet A comes in. Basically we should throw away packet A becase it is old information. The way that we associalte packet A with packet C and that A should be thrown away is through this update identifyer. This lets the system know that both C and A are packets that carry the same (associated) information but at different time intervals (A is an older version of packet C).

    Yes, the write methods come though dataRead. We need to update this event to pass the update identifyer so that you can map the correct data on your end.

    There is a question about this in this post in the developer forums by @Zaddo67 :)
     
  16. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hey thanks, we have someone working with this and hopefully will have an answer for you tonight! :)

    Yes, both. Some of the internal code requires to know which socket you are using as the primary socket for the host/client so that it can do main game communication on this port. Since our system allows for you to have multiple sockets going through the system we need a way to identify which socket you are using as your primary form of game communication.

    I am confused. Are you trying to host a server and a client through the same application? I am only asking this because of this statement "I assume it only needs setting for one as cant set Primary socket to the host worker and to the client worker" which is only true if you are hosting a server and client in the same game (instance) since it is a static reference.

    Side note: Our docs are in the process of being updated with full examples. Our goal is for the docs to be as useful as other great documentations such as C#'s and Unity's. :)
     
  17. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    Yes I need to have a host and client running in the same application.
     
  18. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Ah, this may be our main issue. So when you host in a unity instance you will not be able to run a client in that same application (executable instance). This is a pretty unique feature, if you would like to request it maybe we can get it added in. As of right now, the server actually acts as a client itself. It owns objects, can update them and run them. So with this, there isn't really a need to make a client run on your server instance. Of course this is not explicit, you can develop it so that the server doesn't act like a client but you will need to run at least 2 instances of the application (1 for the server/host and one for the client). This would be what could be causing a lot of the errors you are seeing. Please let me know if this helps, we will still be testing the code you provided. :)
     
  19. Sezerza

    Sezerza

    Joined:
    Aug 9, 2013
    Posts:
    27
    So with this route, is pulling the stats something built in to forge/arbiter (or planned to be), or will I have to code some sort of retrieval methods myself?
     
  20. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    Ok, my in experience with multiplayer coding showing through, what we are needing is a system that allows for you to play you game and be in your little world and while there other players/friends can visit and see what you have done to your house grounds etc and interact with you there while allowing for you to start up a multiplayer sub game with one or two visitors but while you are playing that game still allow anyone who didnt join the game to still wander around your little world until you come back from the sub game. Is that doable with Forge?
     
  21. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    That sounds like a matter of having a client host the server and having other players join their server. I think the most challenging part about creating a game like this is the matchmaking - keeping track of everybody and getting them connected to each other. But the real-time interactions are pretty straight-forward.
     
  22. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    How will that work on mobile? Just need it to work without anything special needing to be done by the player, other networking systems seem to be able to handle it. I guess I will need to use Photon or Bolt.
     
  23. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Photon might be overkill because you don't need the server hosting every real-time game but Bolt might work. Still, you'll need a database to store players' information which Forge will eventually be able to do for you. Basically, when a player wants to visit someone, you send up the request to Arbiter (Forge master server) and it uses whatever parameters you give to find the particular piece of data you need. How you store, interpret, request, etc. the data is up to you.
     
    Last edited: Feb 27, 2015
  24. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    I already have the back end working with database for players, games, maps etc, just need the game side of players moving around maps.
     
  25. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Check out the tuts farrisarts made.
     
  26. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Hi. I found a bug with the rawDataRead event. It is getting called twice for every packet received.

    This one is really killing me, I would really appreciate if you could get a fix out quickly (please, please) :)

    The stats on the connection before send. 2 packets sent/received.
    before.jpg

    The stats on the connection after send. 3 packets sent/recieved.
    after.jpg

    The console, with a Debug.Log in rawDataRead event handler. Shows two events fired with "test".
    console.jpg
     
  27. Sezerza

    Sezerza

    Joined:
    Aug 9, 2013
    Posts:
    27
    Another question for you busy bees:

    If I set up all the scripts in my game with RPCs through networkedmonobehaviors for movement and what not, but then a player decides to play offline single player mode, will there be issues since he's not connected to anything? Will I have to code separate stuff for offline mode?

    I saw the previous posts about something similar to this question but just wanted a confirmation.
     
    Last edited: Feb 28, 2015
  28. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    If you host a server, it will be singleplayer if nothing connects. I hope this answers your question, feel free to ask me if you want a more detailed description exactly what that means.
     
  29. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Thanks for the screencaps, definitely helps. Will take a look at this and fix it asap! Thanks for pointing it out. :)
     
  30. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    We will eventually have example scenes setup for people to use to have these values retrieved or show an example of doing so. This is planned and still in the process of doing. We will try and make it as simple as possible so you don't have to code much at all for it. Thanks. :)
     
  31. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes, this is almost a primary use of Forge. Basically you would start up a server as a player on your own machine, you then can have your friends join and you (as the server) can play with them. This is out of the box behavior with Forge, any of our demo scenes where cubes pop up and you see the cubes on multiple game instances moving around is exactly what you are looking for. You will write behavior so that the player who is hosting the server can start it up and shut it down at any time. If you would like for us to have a runtime start and stop server sample we would be happy to help out with this. :)
     
  32. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Photon will not work at all for the idea you have described. As for using Bolt, it might just work :). You will be writing the same exact logic on both Bolt and our system as this is supported out of the box. As far as Bolts support and samples, I can't say much about them. We have a lot of people in our beta that came from Bolt, perhaps they can let you know their thoughts :).
     
  33. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    If you would like some more specific tutorials I would be happy to help :). I do not want to be the guy to say "well technically our videos cover what you are asking for", because if you didn't find the information you were looking for in them, then they did not. I would be more than happy to help you with anything along the way if you wish. :)
     
    FuguFirecracker likes this.
  34. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Woah! This must be something new, is this happening in our demo? I will look into this now.
     
  35. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    You can actually play in offline mode on the latest build. If the player is not connected to anything they should behave without errors and act as if they are a server. Let me know if you are having any issues with this so we can get them sorted out asap :)
     
  36. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Just wondering, does reliable WriteCustom guarantee delivery? So if C1 sends a message to C2 and C2 disconnects for 10 seconds then reconnects, will the message arrive? Also, about how much more overhead and latency does reliable messaging create?
     
  37. Sezerza

    Sezerza

    Joined:
    Aug 9, 2013
    Posts:
    27
    Is it possible to change the owning player of a simple networked monobehavior?

    I'd like to implement something like a remote control car that anyone can use.
    For example:
    Server instantiates a car and a remote control. If any client (or host) 'uses' the remote control, then they can move the car around.

    I'm assuming I could also do this with RPCs but wouldn't sending RPCs in every update be worse than just changing ownership of the monobehavior and then letting the client move it around and just update it's position and what not normally? Assuming I'm not worried about any network security issues.
     
  38. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,762
    How can someone with a just a mobile device start up a server? I dont want servers to be setup I just want any player that starts the game be available to be visited by friends or other players but still allow that player to launch a sub game with some of those visiting him while not forcing others to be disconnected as the player goes of to another map to play a game, hence the need for a host and a client in the same app. Is that possible at all with Forge?
     
  39. Sezerza

    Sezerza

    Joined:
    Aug 9, 2013
    Posts:
    27
    You could have the house on one layer and the other map on another layer and have them on the same scene, then just depending on what you do, cull certain layers with the camera
     
  40. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    @SpookyCat Are you trying to make a game like Club Penguin or Clash of Clans? I bet both could work really well but a solid example would help our understanding.
     
  41. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    It happens in the demo as well. But interestingly, in the demo code you display the sender in your log message and it has one message coming from the client and the other coming from the server. So I added sender to my log message and this is also what is happening with my code.

    To be absolutely certain this wasn't some weird user input being captured on both windows, Before I ran the game server, I commented out the code that sends this message. So the client was the only version that could generate this raw message. The message still came up twice. This confirms that a message sent from client gets echoed on the server with the server as the sender. (See screen dumps below)

    Also,

    I believe there is another bug with the behaviour of sending raw data. When I call Networking.WriteRaw from the client, the recieved BmsByte object is 34 bytes long the actual start position is 1 (zero Based), BmsByte.StartIndex is 2 and the BmsByte.Size is 16. (see below)

    If I send the same payload from the server to itself, using writeraw. The received BmsByte object is 19 Bytes long, the actual start position is 2 (zero based), BmsByte.StartIndex is 2 and the BmsByte.Size is 17. (see below)

    This inconsistency in received data and the Size and Startindex properties on BmsByte, make it hard to extract the information.

    I have also copied the bugged echo call to readDataRaw event below. Maybe this will help you track down the bug. (see below)

    Also,

    When the message is sent client to server, the readDataRaw delegate is called on the worker thread.

    When the message is sent from the server to the server, the readDataRaw delegate is called on the main thread.

    This behaviour is unexpected. Is this by design? I expected both events to fire on the worker thread? Unless you are handling your own loopback?


    Sent From Client Received on server
    00-12-00-01-00-02-5F-43-08-00-07-67-65-74-54-69-6D-65-02-5F-43-08-00-09-69-6E-69-74-57-6F-72-6C-64-00
    BmsByte.Size=16
    BmsByte.StartIndex=2

    Sent From Server Received on Server
    01-00-12-00-01-00-02-5F-43-08-00-07-67-65-74-54-69-6D-65
    BmsByte.Size=17
    BmsByte.StartIndex=2

    Echo Data Magically created out of nothing :)
    01-00-12-00-01-00-02-5F-43-08-00-07-67-65-74-54-69-6D-65-69-6E-69-74-57-6F-72-6C-64-6E-00-00-00-00-00-00-00-00-08-00-00-00-72-65-63-65-69-76-65-64-3C-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 (truncated, zeros just repeat for several more pages)

    mine2raw.jpg

    demo2raw.jpg
     
    Last edited: Mar 1, 2015
  42. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Can you please allow Networking.Instantiate to return a GameObject, like Unity's Instantiate does, so we have a reference to the object, and can do operations on it immediately based on if we are on the server or the client?
     
  43. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    How can I remove a RigidBody from a client player, but keep it on the server?

    I'm trying to implement an authoritative server physics system, but it seems as soon as you remove a rigidbody from the client, it affects the server as well, in that the object no longer has physics.

    How does one get around this?
     
  44. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello everyone, I am going to get to replying now. I have been on a slight hiatus as I have been working with our partners on getting Forge into their game as well as our fancy new heavily modified phpBB forums. I still have a lot I want to do with the forums to make it a little easier to use, however I figured just the bare minimum to make it work well with our database so that users are not reliant on phpBB users tables is enough for now. I will come back to fixing the forums if there is a critical need or when we calm down on all of our development of Forge.

    http://forums.forgearcade.com/
     
  45. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes, they are guaranteed to arrive on the other end. If you find otherwise please let us know so we can fix it :). The good news is that reliable packets (in a perfect world) adds no overhead. The reality is that network latency is not a constant so there is a possibility that a packet that will be received will be sent 2x. Lets say that packet A was sent and the server waits 100ms (this is a value for example) for a response from the client before trying again, the client gets the packet and responds but it has been 115ms and so the server already re-sent the packet. The client will get the packet again and ignore it (since it already received it) and the server has been told (15ms later) that the packet was there so it stops trying to send it.

    In this scenario there is 1 extra packet that was sent and was completely useless due to the network traffic. This is the overhead to expect from reliable packets, though we have some algorithms in the system to approximate the network latency before resending the packet. :)
     
    jpthek9 likes this.
  46. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    I am so sorry about this! I know you sent out an email a while ago, I had one of our guys start on it but then some fires came up in our external contract work :(. He still has the project, we will dust it off and complete it.

    To answer your questions though:
    What you can do is have the server own the object and have the client update the positions. On the object in question you can have an id that is assigned via RPC to the id of the player who is currently using the vehicle. Then you could serialize the position manually and have the server only allow the current owning player to send new positions/rotations. We can also add something into the system to quickly allow for this kind of behavior if you would like? :D Just give us a feature request on the site and we will queue it up! :)
     
  47. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    With Forge we do not enforce scenes to be loaded on the server and client (as the same scene). This behavior is required as we use it for Bare Metal (since it has no concept of Unity).

    You will need them to host a server on their mobile device (in fact you can start up a server in the background). Then you can see this kind of behavior in games like "Fantasy Life". One player will become the server and the other player can join in then they can be anywhere on any map. This behavior is out of the box with Forge. :)
     
  48. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes! Fantastic idea, I will add it to the feature requests right now as that is kind-of an essential feature :)
     
  49. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Interesting, well what you will need to do is have the server own the object so that it is in control of the objects positioning and rotations. Then you can send inputs to the server and have the server update the object. Something else that can be done is that we can add an extra feature into the system to allow only server side position/rotation simulation so that the client can still own the object but not be able to manipulate it's position/rotation. Would this feature help out your design more? :)
     
  50. Sezerza

    Sezerza

    Joined:
    Aug 9, 2013
    Posts:
    27
    No worries! I can only imagine how busy ya'll are.

    I look forward to the example! I'll post up a request for such a feature as well.

    Thank you!~