Commit Graph

9886 Commits

Author SHA1 Message Date
Lasse Öörni
deb5455a0e Use own DirectSound code in Windows/Direct3D9 mode as PortAudio has tendency for stutter.
Added a slow mode for flow control which is triggered on packet loss, and lasts for a fixed time.
Removed congestion-based flow control as unreliable.
2011-08-07 18:28:31 +00:00
Lasse Öörni
48aff25c73 Tweaked the flow control frame rate. 2011-08-06 15:00:36 +00:00
Lasse Öörni
33c24f8d20 Use reliable message congestion factor to determine how to modify the sendrate. 2011-08-06 14:10:17 +00:00
Lasse Öörni
d704d0fb79 Decreased ping interval.
Factor in RTT into how fast sendrate can be increased.
2011-08-02 21:58:58 +00:00
Lasse Öörni
6381b88166 Added state for server-side package transfers, instead of sending everything at once.
Slightly increased the ideal conditions' sendrate multiplier.
2011-08-02 06:20:06 +00:00
Lasse Öörni
728946d60d Fixed mixed up seconds & milliseconds in UDPMessageConnection RTT calculation.
Take the retransmission timeout into account when calculating if send rate should be increased.
2011-08-01 23:43:26 +00:00
Lasse Öörni
e0800cc376 One more flow control tweak. 2011-08-01 16:24:09 +00:00
Lasse Öörni
8f836d7233 Further flow control tweaks. 2011-08-01 10:56:59 +00:00
Lasse Öörni
6b4e2b36c7 Tuned flow control.
Automatically wait & retry if reliable message fails to queue.
2011-08-01 08:27:37 +00:00
Lasse Öörni
d807ec230a Decreased bandwidth adjustment aggressiveness.
Added connection stats logging to TestScene server.
2011-08-01 06:47:15 +00:00
Lasse Öörni
dca6687166 In absence of packet loss, use dynamic send rate increase/decrease based on utilization.
Removed unused UDPMessageConnection code.
2011-08-01 00:03:06 +00:00
Lasse Öörni
57e8e910af Fixed missing alwaysUpdateOwner script property in NetworkPriority. 2011-07-31 17:22:27 +00:00
Lasse Öörni
b694ad047e Refactored interest management into the NetworkPriority component.
Fixed setter functions referring to the Set class in Doxygen comments.
2011-07-31 17:19:00 +00:00
Lasse Öörni
216d4f046f Fixed VS2010 debug build. 2011-07-31 00:00:59 +00:00
Lasse Öörni
6d552a8193 Use fixed size 24 bit network object IDs for more deterministic bandwidth use.
ReadID() / WriteID() renamed to ReadFileID() / WriteFileID().
2011-07-30 20:57:28 +00:00
Lasse Öörni
68beb82607 Eliminated the medium message priority to avoid synchronization problems where update messages would be sent after a node's or component's removal. 2011-07-30 14:00:02 +00:00
Lasse Öörni
b3a8cf7039 Use HashMap/HashSet for rapidly changing data structures in Connection. 2011-07-30 11:49:57 +00:00
Lasse Öörni
53669f0c20 Added simple freelook camera controls to NinjaSnowWar server when run with rendering enabled.
Disabled the status overlay from NinjaSnowWar server.
2011-07-30 11:22:00 +00:00
Lasse Öörni
20a2a48ed9 Added hashing support to Pair template class.
Use HashMap & HashSet more.
Tweaked precompiled headers.
2011-07-30 11:05:20 +00:00
Lasse Öörni
bd76a14249 Fixed Unix build. Fixed counting of enemies in multiplayer NinjaSnowWar. Disabled snowball CollisionShape replication due to divergent simulation on the client. Removed previousControls from Connection as it is potentially unreliable if multiple controls packets arrive between updates. 2011-07-29 22:57:14 +00:00
Lasse Öörni
ca31354fb5 Added client's score/hiscore update to multiplayer NinjaSnowWar.
Some renames for clarity (GetEventSender() instead of GetSender())
2011-07-29 18:56:15 +00:00
Lasse Öörni
abe05c6a53 MinGW is no longer officially supported.
Documentation update.
2011-07-29 15:46:47 +00:00
Lasse Öörni
7f88b9977e Documentation update. 2011-07-29 12:44:45 +00:00
Lasse Öörni
7b254df85d Added simple distance-based interest management for networking. 2011-07-29 12:24:22 +00:00
Lasse Öörni
6f927f6997 Split Network subsystem update into two parts to queue new messages as early as possible. 2011-07-29 00:35:16 +00:00
Lasse Öörni
38fe1554ba Initial multiplayer NinjaSnowWar.
Various networking and script API bugfixes.
Fixed kNet profiling compile errors due to STL -> Container library conversion.
Fixed loading of textures failing in headless mode (just return success without doing anything.)
The E_CLIENTCONNECTED and E_CLIENTDISCONNECTED events now also come from the Connection in question, to allow using GetSender() for convenience, instead of looking up the connection from event data.
Added simple network traffic statistics logging to Connection.
2011-07-29 00:04:52 +00:00
Lasse Öörni
f622066c4a Changed certain profile blocks (extra/transparent passes, debug geometry) to trigger only when there is actually some work to be done. 2011-07-28 18:41:15 +00:00
Lasse Öörni
444c18673e Code formatting & optimization. 2011-07-28 16:14:56 +00:00
Lasse Öörni
1c154ef17e Uncommented the package file download test from TestScene.as.
Fixed missing default arguments in the script API.
Fixed crash if a script file is unloaded while executing a script function.
Fixed Urho3D.exe not correcting the script file name to internal format (slashes instead of backslashes.)
Use black default background for the Direct3D9 window.
2011-07-28 11:41:56 +00:00
Lasse Öörni
43671aa66f Fixed up to one second delay in starting UDP datagram sends.
Refactored SendMessage API in Connection & Network, allowing the user to specify message priority.
Split Network library internal messages into 3 priority categories.
2011-07-28 09:01:33 +00:00
Lasse Öörni
1d3f797643 Removed unnecessary code from Connection. 2011-07-27 23:06:12 +00:00
Lasse Öörni
f70cc35815 Added package file download support to the network protocol.
Added commented out package download test code to TestScene.as.
Increased kNet's UDP send rate upper limit and aggressiveness in increasing the send rate.
Fixed being unable to do sparse seeks in files when writing.
Container library bugfixes.
2011-07-27 22:41:12 +00:00
Lasse Öörni
db453e642d Network code cleanup.
Enabled kNet flow control.
Fixed kNet uninitialized variables.
2011-07-27 17:07:42 +00:00
Lasse Öörni
bad8e776de Added networking documentation. 2011-07-27 08:41:16 +00:00
Lasse Öörni
07281ba969 Documentation update. 2011-07-26 16:04:26 +00:00
Lasse Öörni
4d0e922e3f Added common script code for parsing network-related command line arguments. 2011-07-26 15:29:33 +00:00
Lasse Öörni
67eec15057 Converted kNet to use Container library instead of STL.
Fixed Container library bugs.
Fixed uninitialized variable in PhysicsWorld.
2011-07-26 09:42:36 +00:00
Lasse Öörni
40d04b377b Added Compare function to String, which is optionally case-insensitive.
Added registration of allowed remote events.
2011-07-25 23:15:04 +00:00
Lasse Öörni
fbf5bd4076 Added log prints for loading & saving the scene. 2011-07-25 18:26:02 +00:00
Lasse Öörni
48aa81e8e4 Added Node functions to get the world unsmoothed (target) transform.
Added proper support for parented rigidbodies.
2011-07-25 15:30:18 +00:00
Lasse Öörni
d88b66deab Network code cleanup. Eliminated copying of initial node or component state. 2011-07-25 10:57:45 +00:00
Lasse Öörni
40ad2d09b6 Queue remote events instead of sending immediately to avoid synchronization problems with scene updates.
Changed inSerialization flag to loading flag.
2011-07-25 10:35:27 +00:00
Lasse Öörni
19874cfb31 Changed RigidBody Vector3 set/get functions to use const references. 2011-07-24 23:03:49 +00:00
Lasse Öörni
163aa247d9 Cleaned up animation network serialization code.
Do not send autofadetime if not used.
Do not reassign animation tracks if the start bone did not actually change.
2011-07-24 22:37:00 +00:00
Lasse Öörni
a6cc202b3c Added network replication of instant set weight / set time position commands for AnimationController.
Increased precision of speed and fade time in Animationcontroller network replication.
2011-07-24 21:34:50 +00:00
Lasse Öörni
23b410d9f4 Added AnimationController network replication.
Changed the animation state layer to 8-bit.
2011-07-24 11:22:29 +00:00
Lasse Öörni
21cb202f63 Disable motion smoothing from the scene when the server connection is destroyed. 2011-07-23 23:47:39 +00:00
Lasse Öörni
ffad4ba005 Fixed UI related crashes in headless mode.
Fixed loading of materials in headless mode (just return success while doing nothing.)
Fixed EventType parameter of SendRemoteEvent() / BroadcastRemoteEvent() in the script API, should be a string.
Added smoothed motion for nodes in network client scene.
Added enum CreateMode to CreateChild() & CreateComponent() which replaces the "local" bool parameter.
Added possibility for client to spawn physics boxes in networked TestScene.
2011-07-23 23:33:57 +00:00
Lasse Öörni
13d449d9cc Added Abs() to Vector2, Vector3 and Vector4.
Compressed rotation and angular velocity to half size in network replication.
2011-07-23 18:00:38 +00:00
Lasse Öörni
cc2a487361 Further optimization of the parent node network replication attribute. 2011-07-23 15:05:38 +00:00