Tag Info

Hot answers tagged

7

This is exactly what NVIDIA is doing with GRID. The idea is that the game runs completely on a server. The client sends their keyboard- and mouse input to the server and receives a video stream (compressed with a video codec, not uncompressed pixel arrays) from what the server is rendering. How are they going to solve the latency problem? I don't know, but ...


6

It sounds like your intuition is correct and the components should be separate. However, I would look for better abstractions. For example, you say: "a base component class that figures out how to call each method" Putting Unity aside, this is something of a design anti-pattern (in OOP). You'll wind up with messy classes that don't have a clear purpose ...


6

It is working already. Many games were running through telnet connection. Even now you can play NetHack and many other ASCII compatible games with 80x25 console. It means for pretty fast gameplay you should pass 2000 characters with 2-5 rate per second. That would be 10 kilobytes per second which is fine. If you will increase window which you are looking ...


5

Yes it's feasible and no it's not cost effective or performant. Think about how Netflix works, it is able to service millions of customers with 1080p and even 4k streaming. Why it will not be worthwhile to attempt what you suggest with current technology: Latency, the client will need to send the user's input to the server and wait for the visual feedback ...


4

Instead of sending a packet whenever the key is held down, send a packet whenever the key state changes from pressed to released and vice versa. To account for network delays you can implement some kind of extrapolation on the server side and client side utilizing the time the packet was sent and received. For this of course you have to send the time the ...


2

Best solution Run an OVR Mirror and display another output window on your projector/monitor. You can attach it to one of the OVR 'eyes' if you are feeling lazy, or create a new camera and run it from there for better performance. Using networking You would run the client in 2 ways: Directly answering your question: To Remotely see everything exactly ...


2

Other than to specify that "only one" is called, Unity does not guarantee any behavior in this case. The most likely scenario, which you can determine through experimentation, is that either the first RPC that becomes registered/known to the system is called, or the last one is. However, this is an implementation detail. Unity explicitly does not want you ...


2

You can calculate snapshot delta (changes to its previous synced state) by keeping two snapshots instances: current one and last synced one. When client input arrives you modify current snapshot. Then when it's time to send delta to clients, you calculate last synced snapshot with current one field-by-field (recursively) and calculate and serialise delta. ...


1

As http://gamedev.stackexchange.com/users/30331/ben points out in his comment, this may not be the best way, especially if your state info is big. Otherwise: Is there a pattern to store multiple independent copies of the game state from different times, so that they can be easily compared? Have a look at the Memento pattern. You could have Mementos ...


1

As you already guessed, you can't trust any server or client you do not have under your control. So you can't send processed results. You have to send requests to the server, indicating the actions that lead up to these results, and verify these requests against the master server's knowledge of the rules of your particular game. Even then, someone could ...


1

I regularly use RPC like the following: { //Send all the ship components to other clients NetworkViewID viewID = ship.GetComponent<NetworkView>().viewID; foreach(ModuleDefinition module in ship.GetAllModuleDefinitions()) { networkView.RPC ("AddShipModule", RPCMode.Others, viewID, netOwner, ...


1

First, I haven't found any indication that another game does this. Having said that, I'd love to try it, or find examples of it, and was looking for examples when I came across this question (hence the (somewhat) necro - but an answer hasn't been accepted, so I might as well give one). I believe such a method would be useful, though its value would vary by ...



Only top voted, non community-wiki answers of a minimum length are eligible