Tag Info

Hot answers tagged

7

I think what you'll find is that the UDK networking protocol which runs on top of UDP and TCP, is tied up with their proprietary client and server code. So no, if you wish to use the actual UDK networking client, you very likely wouldn't be able to write your own socket or webserver, even if you knew what the packet structure was (and wanted to try to ...


6

I'm assuming your question is asking about just trying to get some information from a server via TCP and not creating your own networking interface for UDK. The latter which would be impossible unless you had access to the UE3 source code just because classes like Actor and such have native replication which you wouldn't be able to override. As for your ...


6

Part of this is a Technical solution, the other part is a Design solution. Peer to peer for this sort of thing has some fun drawbacks, especially as you're left with an interesting question of which client is authoritative, especially with lots of players. You can round robin between clients (this is actually useful for anti-cheating), but as everyone's ...


5

It turns out that this is due to how powersavings in mobile phones work. For my iPhone, sending a steady stream of UDP pings every 200 ms will keep the interface open, and give me a RTT of 80-100 ms. Reducing the ping frequency will drastically increase the RTT, to an average of about 400 ms. Further reducing frequency causes the RTT to occasionally go even ...


4

Basically you wouldn't write a server like that. Those tutorials are showing you the basics of 2 reading and writing and assume 2 trusted processes that are guaranteed to cooperate. Instead of waiting for a message from one client before the code continues to send a message out to another client, the server waits for messages from all clients ...


3

I'm thinking the clients will send data to a central server over a socket or http, and receive data via GCM push messaging. GCM push messaging strategy isn't appropriate for sending large amounts of data, for a few reasons: Rate limits are in place to prevent malicious or poorly coded apps from spamming an individual device with messages. Messages ...


3

Due to the fact that your game is turn-based you can get quite creative with your solution - you can still run the server on one of the phones but you don't need to rely (directly) on a direct IP connection. In your situation what I would do is implement the XMPP protocol and send game state via that protocol - XMPP is particularly well suited to this ...


2

If you want to create your own C++ servers, you would have write the entire networking part by yourself which is quite difficult as Nick Wiggill describes. I wouldn't recommend it, but it can be done. UDK can use DLL libraries and thus you could write your own networking part. It would be a huge project, but it could be done. However if you stick with ...


2

Send logical data, not presentation. Most games will never send graphics or textures to other systems during gameplay. Each system should already have all the resources it needs to render the events; you just send information about which events have taken place.


2

I've written at length about this topic here: http://www.gabrielgambetta.com/fpm1.html. It's not exactly your case (this is for an authoritative server and dumb clients, vs your peer-to-peer architecture) but I guess the entity interpolation and server (in htis case, peer) reconciliation may apply.


2

UDP does not ensure that the package will arrive properly or that will arrive ordered, but is faster than TCP. TCP ensures the aforementioned features but is slower because of acks. Usually, action based games like FPS should use UDP because of the volume of data that must be sent/received over network. On the other hand, turn-based games should use TCP ...


2

Most programming languages or network libraries have APIs for asynchronous IO operations where read- and send operations return immediately. Read-operation return only the data which was buffered since the last call and send-operations are executed in background. When you have such an API available, there is usually no reason to add another layer of ...


2

Those packets are still late. Even if you send 1M packets every second, there is still lag. Certain packet is packed at time t1 and it arrives at t1+ping/2. You send positions of other player to everyone. I assume you then do something like this: player[4].Position = new Vector2(readNextPlayerX(),ReadNextPlayerY()); You set that coordinate you sent, ...


1

In a project I once was involved (not game related) they decided to send each UDP message twice to reduce losses with an event id so if both messages were received the receiver could ignore the second, sounds basic but it did the trick. first define burst: shotgun and sniper has a burst of one bullet smg has a burst of 5 (?!) for each bullet send a UDP, ...


1

I'm no expert on this , but from what I can remember the best way to do this is to just send packets when actions are taken and not the whole time. Example: Player presses a button to move > send to server > send to other players > display stuff on clients Player releases button > server > other clients ... That way you don't have to send so much data. ...


1

Adobe Air Socket The Socket class enables code to establish Transport Control Protocol (TCP) socket connections for sending and receiving binary data. TCP Transmission control protocol, a protocol developed for the internet to get data from one network device to another. Uses a retransmission strategy to insure that data will not be lost in ...


1

The Unity socket security is a system that attempts to ensure that Unity only connects to servers that are expecting a Unity client. This is there to reduce the ways in which Unity can be used maliciously. In theory this should only apply when running a web build, but in practice I'm pretty sure it can run in other circumstances too, whether appropriate or ...


1

Non-blocking is basically the same thing as asynchronous: if you use the async features of .Net sockets you will get non-blocking code for free. I doubt you are using C# 4.5 so you will need to resort to the 'older' way of doing non-blocking IO. The following is a snippet which deals with how to stream data from a TCP connection (you will likely want to use ...


1

handleInput() should be it's own function, and Channeletc should be it's own function. Try to clarify with sysouts what the program is doing: there is usually a draw area, and an update area. Handling input is done in update, drawing is done in draw, and if youre doing multiplayer then networking is done in its own area. Do not mix these up. Keep them clear ...


1

I think this is posible, you can use dllbind, in order use another net system like raknet. And you can select what you want transport by net, but you should read the raknet license, cause if udk consumes 30% of your benefits I dont know how much, raknet or another net library could cost. to Use raknet is quite simple and it brings many examples, I built a ...


1

So your goal is to provide an interface for developers to plug their AI on your game system. Depending on how much freedom you want to provide to those developers, you have several options. For the largest freedom, do not provide anything but a comprehensive documentation of your network protocol as well as a set of IP to connect to (and maybe a test ...


1

You could probably use flash.net.LocalConnection for this. This would allow you to implement an API where other flash files can connect to and run commands locally. What this means is, that you'll have your game client (running in the browser) which exposes methods through LocalConnection. Somebody that implements an A.I. for your client could either run an ...



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