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

[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
    Are you using the Networking.ChangeClientScene method? How are you changing the scene or are you loading in another scene async?
     
  2. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    few question on forge(come from photon):
    -does it have authoritative method to load same scene for everyone ? or doing thing like OnPlayerJoined(player id){ send rpc to player ID with current scene to load}?

    - i have seen the video about Area Of Interest, so if i understand we define our prefab to be player they will decide when object are in player range, but in your example you just toggle on/off a renderer. does it toggle on off the data sent/received under the hood for user? how would you use it ? if a client is not in range of Object A, but on server Object A is moving in range of the player but the client did not synchronized its position how do you replicate the simulation correctly?

    -Any user working on mobile game with many objects to synchronize? how is Forge helping them to sync object with low band witch?
     
  3. Yulia_Bab

    Yulia_Bab

    Joined:
    Dec 1, 2015
    Posts:
    4
    It''s great package!
     
  4. JohanRosn

    JohanRosn

    Joined:
    Dec 3, 2013
    Posts:
    2
    Correct me if I'm wrong but it seems like RPC are only guaranteed to arrive in order for each networkId. I have a problem where the server will always call 2 RPC calls in two different classes and in the correct order, but the order is sometimes mixed up on the client which results in an error as they are dependant on the correct order.
     
  5. blueagardq13

    blueagardq13

    Joined:
    Nov 6, 2012
    Posts:
    9
    I just use the GO();, but I have not used the Changeclient method. I think I been using Mainthread.Run
     
  6. Arsinx

    Arsinx

    Joined:
    Apr 14, 2014
    Posts:
    55
    Does Forge support webgl? If not then when will webGL support be available.
     
  7. pnghodasara

    pnghodasara

    Joined:
    Dec 2, 2015
    Posts:
    1
    From what I understand Bare Metal will be standalone Server that Forge Clients can connect to. My game will be heavily dependent on MySQL database. Will Bare Metal support connection to MySQL out of the box? Will it have some sort of Server-Server connection API to create a multi server farm?
     
  8. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
    Will Forge support WebGL in the nearest future ?
     
    Nateply likes this.
  9. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    It's been a long time since I last used Forge, so I'm sure there's been an enormous number of updates since.

    I had a generic question to ask before i move forward with a revamp of my game and how I manage a big world / scenes.

    Before, I just had one huge seamless world. No problems there as long as the world is kept small (Unity floating point issue). I researched how to make big worlds despite floating point issues for awhile. I had a limitation to keep my world small.

    After some design changes, I decided to scrap that and go with smaller "Levels". Normally this would be done with separate Unity Scenes. However in multiplayer, I'm wanting the players to be able to be in different levels simultaneously. I remember in UNET if the host changed scenes, it would change scenes for EVERYONE.

    I began planning to engineer a way to load/unload scenes or simply teleport the player (One Scene, "loading a new level" is just teleporting to an entirely different coordinate, having all levels active/inactive as GameObjects in a hierarchy.) Didn't get that far before...

    Today I read about Unity 5.3, with their big update on Multi-Scene editing and streaming and all that goodness. I haven't checked into it in depth yet, but I just wanted to ask a quick question:

    Is there anything specific I need to look out for / worry about when using Forge and Multi-Scene Editing?

    I'm still trying to wrap my head around engineering a server (Standalone, Unity) or "Host" (Player acts as both Server & Client) that loads an entire world but chops it into different "levels/areas" while other players can connect and load in other levels even if the host is in a level/scene already.

    That way Player1 can be in Level1, while Player2 is in Level2. I figured for performance I'd want to pause inactive levels (unload the Scene/Level# on the server, and load Scenes/Level# based on requests from the Client.) I also will need to load procedurally generated (temporary) scenes/levels. So 5.3's updates seem great to solve my problem. I just have no idea how that will effect Forge.

    Just wanted to ask here, not for engineering help (although all advice/tips are welcome), but just for a general idea if this is a good idea and things I will need to consider when using Forge.
     
    Last edited: Dec 8, 2015
  10. Burtch

    Burtch

    Joined:
    Jan 17, 2014
    Posts:
    7
    Has anyone used Forge Networking with Strange IoC? I'm trying to figure out how to get those two playing nicely with instantiating Views (player movement and input controls are considered views). I instantiate them on the network like normal, but my view doesn't want to get connected to my context in the scene correctly.

    In Strange IOC, views need to be children of the context game object. How would you suggest I parent the instantiated game object to the context? When I try and use a callback, I'm running into some tricky behavior. I am trying to implement it in the Networking.Instantiate methods to take in a Transform for a parent. This way you can child a gameobject to a parent.

    Thanks guys
     
    Last edited: Dec 9, 2015
  11. Burtch

    Burtch

    Joined:
    Jan 17, 2014
    Posts:
    7
    So I went through altering source code to find that Transforms are not yet supported. This is okay, but how should I go about getting an object to be parented to the context upon instantiate so that I can do dependency injection? Thank you!

    EDIT: I think I have a solution that works. In the callback I parent the gameobject. I then call an OnInstantiated Method that in turn, fires the methods that Strange IOC needs for setting up it's context. In this way the game object can have it's parent setup first, then the context - view relationship is setup. Looks to be working for now.
     
  12. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    I haven't used Forge since 10.9, so I had some catching up to do reading about all the updates. Great progress!
     
    Last edited: Dec 10, 2015
  13. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Am I missing the link to the "Offline Mode" documentation?

    Everything seems to be working fine in multiplayer, but in "singleplayer" (offline) I had a few issues.

    Mainly ownership problems, but that was resolved by simply changing

    Code (csharp):
    1.  
    2.   if (!IsOwner)
    3.   return;
    4.  
    to

    Code (csharp):
    1.  
    2.   if (!IsOwner && NetworkingManager.IsOnline)
    3.   return;
    4.  
    Whenever I come write any Ownership checks. Is this the proper way, or am I missing the correct way to setup ownership without setting up a server. (I never use Forge's "QuickStartMenu--> StartGame.cs" in singleplayer. I only use that when starting the game via multiplayer.)

    I also don't see any MAIN_THREAD_MANAGER being created in my singleplayer scene, although that isn't giving me any actual problems (yet).

    I just wanted to check cause I couldn't find any docs, tuts, or even post history on "offline mode" and I don't want to run into problems in the future because I was doing it wrong. (In singleplayer I just have a Networking Manager and keep the code the same as it is in multiplayer, so still calling Network.Instantiate, etc.)
     
  14. Sphelps

    Sphelps

    Joined:
    Jun 9, 2013
    Posts:
    243
    Any news on UFPS integration
     
  15. jimdubbs

    jimdubbs

    Joined:
    Dec 3, 2012
    Posts:
    12
    Hello,

    Im currently looking at the various networking options out there and im very intrigued by Forge. I have a couple of basic questions that have me confused..but perhaps its because I dont fully understand the infrastructure.

    Lets say for arguments sake the game is a 3v3 MOBA style game. So a player must log in to the server, and then que for a match. The server would find 5 other players, and create a "game room" which would load the level etc. Im confused as to how this would function in an environment where the server is actually a game client. In the above scenario, would there need to be a client for each "game room"? This doesnt seem to make practical sense to me so im likely way off in my thinking. Could you shed some light as to how this would be approached using Forge?
     
  16. Weendie-Games

    Weendie-Games

    Joined:
    Feb 17, 2015
    Posts:
    75
    Hello,
    This network solution uses a master server? or a "unity client" as server? i'm looking for a centralized game server solution for networking.

    And how i can handle multiple rooms on masterserver?
     
  17. boowman

    boowman

    Joined:
    Jan 3, 2014
    Posts:
    57
    I have 2 questions before I buy this.
    1. Would this be good for a 64-128 player server ( The game doesn't exist but let's assume the game is well optimized ) and it will be a survival game.
    2. Does it support dedicated server if yes could you point me in the direction where I could find more information about this.

    Thank you
     
  18. QQuixotic

    QQuixotic

    Joined:
    Sep 16, 2013
    Posts:
    3
    Hey guys! Thanks for the Forge Networking system! I'm trying to build a little testing code before I purchase the full thing, and so far I'm having a blast.

    I was just wondering if you had written documentation anywhere detailing each class included and what they do. The video tutorials are nice, but if I could have access to a documentation for the code, that would help greatly as well. Right now I'm trying to build a simple 'scrolling map' system where players only load the chunks relevant to them, and the host only has all potentially relevant chunks loaded so I can have arbitrarily large maps. It's going well, but I think the documentation would help me see exactly which calls are being sent to everyone and which aren't.
     
  19. Dramamine0001

    Dramamine0001

    Joined:
    Mar 23, 2014
    Posts:
    84
    http://forgepowered.com/ForgeNetworkingAPI/html/79f7efd6-882c-8401-0fcf-0db2813777cb.htm
     
    QQuixotic, Cranick and nxrighthere like this.
  20. QQuixotic

    QQuixotic

    Joined:
    Sep 16, 2013
    Posts:
    3
    Cranick likes this.
  21. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    I just wanted to comment on one awesome aspect of Forge I just discovered.

    Since you get the open source, you are free to look at and change the code, add features, etc.

    I wanted to add in support for multiple resource directories and to fix a bug. Looking at the code, it was extremely easy to understand. Well structured. It took me a few minutes to fix a 'bug' and add in that feature I wanted.

    With that said, it becomes even better when you can easily read the source code and add features or fix bugs yourself.

    After working with Forge for awhile now, I have had no problems with Forge. UNET was frustrating and a waste of time. Forge has been a pleasure.

    I highly recommend Forge.
     
    Cranick, Dramamine0001 and elias_t like this.
  22. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    You are able to tell the client which scene to load when they connect. You would have to program the interpretation of where they are at and send them to the correct spot if that is what you want. I recommend having a static game manager that would handle the networking throughout all the scene transitions to make sure that all new clients would have this information.

    The data being sent on Area of Interest is cut off from all clients as well, so no clients can see any other persons object unless they are within range. The only exception to this is the server, the server will see everything and process all the information from each client, regardless of the area of interest they have.
    I.E. Client A moves out of range of Client B, Client A doesn't see Client B and vise versa, Server sees both Client A and B.

    Our developers have been using Forge to make their mobile games synchronize the data across the network but ideally you want make sure that you are sending as little as possible and not as frequent as mobile is not the best for real-time networked gameplay but can be amazing if done correctly. I don't have a reference to best practices for networking on mobile devices, but I would say that the more you can offload locally and have the server handle all the game logic the better.
     
  23. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Thank you!

    Really glad to know that our customers enjoy it. :)
     
  24. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    This sounds like a bug. I recommend downloading the latest version on the website that we have. We also will have a new version that will be released soon as well. Sorry for the inconvenience.
     
  25. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    MainThreadManager.Run() is just a way for us to call functions from the network on the main thread.

    Let me know if the ChangeClientScene method helps. :)
     
  26. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    We will support WebGL moving forward, right now we are in the designing process to see how we can fully support it properly. I'll let @farrisarts answer this one.
     
  27. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    @farrisarts would have a better answer for these questions. :)
     
  28. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    We plan on supporting WebGL, look forward to it in the future.
     
  29. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Hello Carter!

    What a huge response and glad to have you back in the thread. :)

    To answer your question, there is not something to worry about specifically when using Multi-Scene editing, we ourselves are still in the learning process of 5.3 as well since it is a really nice upgrade. I would make sure that there is a networking manager in each scene if you are destroying the networking manager, otherwise only 1 static networking manager can work.

    From what you are describing the way I would go about it is a little different. I would either make the world/levels be something that is rendered on a different layer for each zone and having scene transitions only for moving server to server. Otherwise I would have a dedicated server for each zone that the player can transition to. That way it would prevent cheating and otherwise other players manipulating their data when in this 'player hosted' zone.

    All in all, I really can't wait to see what you do with your game and feel free to discuss it with us on Slack. :)
     
  30. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Glad to know you solved this, was going to suggest the same or to make an ID special to that particular object you are trying to parent to and have it do a lookup for it.
     
  31. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    A lot has changed since then. We have been extremely busy these past few months with supporting so many developers.
     
  32. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    We actually should post our Offline Tutorial. I'll make sure to have it up after Christmas Break and early next year!

    Thank you for pointing this out and you are using the correct usage of NetworkingManager.IsOnline as that would indeed determine if it is offline. (Which you can use to determine your offline play).
     
  33. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    We found some bugs in our system while integrating with UFPS, thanks to that we are still working on this. Should be available end of January.
     
  34. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    You should have a central server that would handle the matchmaking process. Our Master Server is able to do this for you and you are able to expand upon this code to do any additional logic that you may need.

    I personally would make it so that each client going into a room would just be on a different server handling those clients.
    i.e.
    1 Master Server
    * any amount of actual room servers which can hold up to 18 players at once.

    Then have the servers handle information of each 3v3 clients that are joining in and be loaded into their own 'room' where the server would only share the information of those clients in that room and nothing outside of it in the other rooms. Or have a dedicated server for the 3v3 for each room that is created.

    Only reason I recommend this is for security, if you are not too worried about cheaters/hackers then you can indeed have the clients host their own rooms and just have the Master Server dedicate a particular player to be the host.

    Hope this helps.
     
  35. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    The Master Server is more of a matchmaker, if you are talking about have a dedicated host for the rooms then you can have one hosted that the clients would always connect to. You would just simply make a host and designate all clients to join that ip address/host and they would.
     
    Weendie-Games likes this.
  36. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    1) If Mobile, I wouldn't recommend it but it can be done. Otherwise if there is good optimizations all around then it should be perfectly fine (This also depends on the server hardware and capabilities).
    2) Yes, just make it so the clients join that specific ip that the host is from. i.e. I make a build that is a server only build put on the cloud. The ip address it is hosted at is where all the clients would point their connections to and try to join.
     
  37. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Hope this helps.
    http://forgepowered.com/ForgeNetworkingAPI/html/5b0c8290-2ffe-3c1f-0bf7-46817004f1b5.htm

    Edit:
    Looks like somebody already helped you. :)
     
  38. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Thanks so much, if you have any questions feel free to reach out to us on our support email or slack. :)
     
  39. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Hello everyone, we are taking a Christmas break. Support emails will be answered at the beginning of next month in January . If you have anything urgent please contact us on slack and send us a direct message there.

    Thank you and Merry Christmas!
     
  40. summerian

    summerian

    Joined:
    Jul 6, 2014
    Posts:
    140
    Update: Never mind. Forge didn't like the ::ffff: prefix that socket.io provided. Solution for now was using a VirtualBox running linux and hosting the node app from there so that would get a different network than localhost. Then when the clients connect I strip the ::ffff: from their IP and it works.

    Hello!

    So far I've gotten my game to work using the QuickStartMenu provided with the plugin. I wanted to try a different approach using a lobby server I wrote using node and socket.io and BestHTTP (another asset store plugin) and using only Forge Networking for the actual gameplay. Essentially I have will two open sockets, one to the lobby server (socket.io) and one to the game server (forge networking).

    Once everyone is in the lobby room, the room owner presses "start game" and all players connected will load the map (scene) the owner has chosen.

    Here comes the problem though. Once the map has been loaded I immediately get the message
    "No connection has been established for this network scene, preparing offline play..."

    I imagine because the MAIN_THREAD_MANAGER was not instantiated in the previous scene? I would like to be able to just use Forge Networking on the actual map.

    Basically what happens is:

    1. "Start game" is pressed in the lobby.
    2. All players load selected map
    3. Lobby server waits for players to finish loading map.
    4. Once all players have reported that loading is done...
    5. Lobby server sends message to room owner to start a Forge Networking server.
    6. Owner sets up server using
    Networking.Host(portNumber, Networking.TransportationProtocolType.UDP, playerCountExpected);
    6. Owner reports back to Lobby that server was created.
    7. Lobby sends message to the rest of the players that they can now connect.
    8. Players try to connect to owners Forge Networking server using
    Networking.Connect(LobbySocket.connectToServerData["address"], portNumber, Networking.TransportationProtocolType.UDP, true);
    9. Nothing happens and no error is thrown.

    I'm pretty new to networking in general. Is there something I'm missing? Does a scene HAVE to be loaded using Forge Networking in order for it to work?

    Thanks in advance!

    Update: Not sure if this has anything to do with it, but socket.io reports the owners ip address to be ::ffff:127.0.0.1 and the connecting player to be ::1
    I'm running both instances off my development machine.
     
    Last edited: Dec 22, 2015
  41. Dramamine0001

    Dramamine0001

    Joined:
    Mar 23, 2014
    Posts:
    84
    Any chance of a Christmas sale?
     
  42. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    I second that. But who wouldn't. :)
     
    Cranick likes this.
  43. bigSadFace

    bigSadFace

    Joined:
    Aug 18, 2014
    Posts:
    116
    Hi there,

    I'm very interested in Forge; however have a couple of questions.

    1) Does forge perform any ability to only update clients that are local? Something like Unreal's relevancy system or a cull distance/proximity setting.

    2) Are there any tutorials or examples that pull a few features together? I'm most interested in seeing something that supports spawning players with their own input controllers and independent cameras with some synchronisation of variables/objects across the network
     
  44. rastinrastini

    rastinrastini

    Joined:
    Jul 8, 2010
    Posts:
    158
    Hi
    - wanna build an racing game that user count maybe around 200k with an master server.
    - these users race with each other in 1vs 1 mode.
    - think from start to end of race each player send only around 10 syncing message(what operated like gear changing) and race end in below of 30 second.
    - when user logged in must not cross side forgery work.
    - cheating and hacking must not work.
    - what solution you offer?(rpc, udp, r-udp, rest, ...)
    - are you mock your library with this high rate?
    - are session work automatically with your library or must handle it myself?
    - what hardware need for this amount of user you think?
    Thankful.
     
  45. luochuanyuewu

    luochuanyuewu

    Joined:
    Jul 19, 2013
    Posts:
    8
    Hi,there's a little problem i can't solve,I have a scene include networking manager(with instantiate prefab list),When i reload this scene,the original networking manager gone, a new networking manager (clone) show up(without instantiate prefab list),then i can't instantiate my networked player. any idea?
     
  46. auroxi

    auroxi

    Joined:
    Dec 31, 2012
    Posts:
    85
    Help please

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. BeardedManStudios.Network.NetworkingStream.PrepareFinal (BeardedManStudios.Network.NetWorker socket, IdentifierType identifierType, UInt64 behaviorNetworkId, BeardedManStudios.Network.BMSByte extra, NetworkReceivers receivers, Boolean bufferedRPC, UInt32 customidentifier, UInt64 senderId) (at Assets/Bearded Man Studios Inc/Forge Networking/MainScripts/Core/NetworkingStream.cs:205)
    3. BeardedManStudios.Network.NetworkingStream.Prepare (BeardedManStudios.Network.NetWorker socket, IdentifierType identifierType, BeardedManStudios.Network.SimpleNetworkedMonoBehavior networkedBehavior, BeardedManStudios.Network.BMSByte extra, NetworkReceivers receivers, Boolean bufferedRPC, UInt32 customidentifier, UInt64 senderId) (at Assets/Bearded Man Studios Inc/Forge Networking/MainScripts/Core/NetworkingStream.cs:186)
    4. BeardedManStudios.Network.SimpleNetworkedMonoBehavior.GetStreamRPC (System.String methodName, NetworkReceivers receivers, System.Object[] arguments) (at Assets/Bearded Man Studios Inc/Forge Networking/MainScripts/Unity/SimpleNetworkedMonoBehavior.cs:644)
    5. BeardedManStudios.Network.SimpleNetworkedMonoBehavior.RPC (System.String methodName, BeardedManStudios.Network.NetWorker socket, NetworkReceivers receivers, System.Object[] arguments) (at Assets/Bearded Man Studios Inc/Forge Networking/MainScripts/Unity/SimpleNetworkedMonoBehavior.cs:699)
    6. BeardedManStudios.Network.SimpleNetworkedMonoBehavior.RPC (System.String methodName, NetworkReceivers rpcMode, System.Object[] arguments) (at Assets/Bearded Man Studios Inc/Forge Networking/MainScripts/Unity/SimpleNetworkedMonoBehavior.cs:809)
    My code

    Code (CSharp):
    1.  
    2.  
    3.  
    4.     [BRPC]
    5.     private void SpawnParticles() {
    6.         Debug.Log("IT WORKED");
    7.     }
    8.  
    9.  
    10.     public void TakeDamage (float dmgToHit) {
    11.         itemHealth -= dmgToHit;
    12.  
    13.         RPC ("SpawnParticles", NetworkReceivers.All);
    14.  
    15.     }

    It happens when I call TakeDamage() and fails on the RPC("SpawnParticles").

    I have also created a new project, downloaded the latest package, ran the "Pure RPC" scene and nothing happens when I press Space, A or B (it should log to console). RPC seems completely broken somehow?

    Also, is the NetworkDestroy(this.NetworkId) the best way to destroy an object over the network?

    Thanks
     
    Last edited: Dec 29, 2015
  47. dkulitsky

    dkulitsky

    Joined:
    Aug 19, 2013
    Posts:
    5
    It's very interesting. Could you provide a link to a doc/tutorial about how make the rooms within one master server (one process)? It will be perfect any-cheat solution if the master server could handle many rooms at the same time. If one process is just one game (4-8 players) then I think it will be too expensive have 1000 processes (games) by 32 MB memory each and CPU will bleeding. Thankful!
     
  48. raygagne

    raygagne

    Joined:
    Jan 4, 2016
    Posts:
    1
    Dead Reckoning

    Hi!
    I finally have had some time to sink my teeth into Forge networking and I have to say, it has impressed me. I have a question about dead reckoning. Is it possible, and should I do it.

    I am, of course, aware of the way that most multiplayer games work, particularly FPSs. As I understand it, forge is designed to work with interpolated positions of replicated objects.

    https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

    In short, the server always has the “true” position, and the player is really seeing all objects in the “past” (after adding ping time + interpolation frame time).

    I am looking at potentially making a multiplayer asteroids style game, and, similar to racing games, I am wondering if a dead-reckoning approach might be better for player positions (or if not that, at least projectiles).

    Dead-reckoning can be described as follows:

    “You receive a position (P) + velocity (V) for T0
    The position at T1 is (P+V*(T0-T1))
    And then correct the position as need be when you get updates”

    As described here (http://forum.unity3d.com/threads/dead-reckoning-for-racing-games-what-are-some-good-ideas.119907/)

    You can also smooth positions out after the expected position is calculated

    "P = position
    E = estimated position
    V = velocity


    Receive P0 and V0 for T0
    Calculate E1 from (P0+V0*(T0-T1))
    Store E1 somewhere (array, local variable, etc.)
    Smooth from P0 to E1 over (T0-T1)
    When you receive P1 and V1 for T1 you smooth from E1 to P1 to correct your prediction
    Calculate E2 from (smooth(E1, P1) + V1 * (T1-T2))
    Start over from step 2"


    As described here (http://forum.unity3d.com/threads/dead-reckoning-for-racing-games-what-are-some-good-ideas.119907/)

    The expected position can be calculated pretty accurately given a ship can’t stop or turn on a dime (similar to a car in a racing game). Projectile dead-reckoning seems even easier given the path after firing is mostly deterministic. 2d Games like Soldat and Subspace appear to be using dead-reckoning, at least for projectiles.

    If I don’t do this, I am afraid I would be limited to hitscan weapons, which is not really in the spirit of what I am hoping to do. So my questions are as follows:

    · Is it possible to implement dead-reckoning using Forge? At a high level, how would I do that?

    · Does anyone else have any success with 2d action games? The challenges seem to be tougher than 3d games, for which the problems have been tackled and documented at length.
     
  49. Alvin-o0O

    Alvin-o0O

    Joined:
    Dec 12, 2014
    Posts:
    16
    Some questions about ForgeNetworking

    1. How can I create a MasterServer contain 100 or more BattleFields( Rooms) use ForgeNetworking , If I create a MOBA game like Dota2 or LOL.
    2 . How can I implement each BattleFields like in a parallel world , theirs colliders no interaction in ONE MasterServer 's Scene ?
    3. Whether the ForgeNetworking can do above requirement ?

    I am very anxiours to know the answer
     
  50. olonge

    olonge

    Joined:
    Sep 22, 2014
    Posts:
    16
    What are the minimum folders required to be included in a build size for mobile deployment ? Hopefully excluding all textures logos editor extensions etc?
    ...and hopefully all in a separate folder section/sections