Commit Graph

9612 Commits

Author SHA1 Message Date
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
Lasse Öörni
84d70dcbe7 Optimized away constant dynamic Variant allocation in comparing attributes when sending a server update. 2011-07-23 14:54:20 +00:00
Lasse Öörni
0421200d2b Fixed missing base class network replication attributes. 2011-07-23 13:21:45 +00:00
Lasse Öörni
50682de1c6 Store network replication attributes separately to optimize sending and receiving updates. 2011-07-23 12:36:03 +00:00
Lasse Öörni
9000621bd2 Fixed CreateNode message.
Added primitive client/server scene replication test to TestScene.
Optimized reading delta & latestdata updates by exiting if all data has already been read.
2011-07-23 10:00:02 +00:00
Lasse Öörni
67c77087bc Disabled network replication from SoundSource's position and autoremove attributes. 2011-07-22 23:17:00 +00:00
Lasse Öörni
9b1a81d84a Changed _WIN32 #ifdef to WIN32.
Early-exit Thread::Stop() if already stopped.
2011-07-22 22:58:54 +00:00
Lasse Öörni
2e4d006674 Updated to newest kNet. 2011-07-22 21:00:38 +00:00
Lasse Öörni
17dea98f14 Reading of scene update messages.
Added network deltaupdate utility functions to Serializable.
More network code refactoring.
2011-07-22 16:32:05 +00:00
Lasse Öörni
644f08c12d Network code refactoring. 2011-07-22 14:27:11 +00:00
Lasse Öörni
bddedd7fd2 Added a function for components to list the nodes they depend on. 2011-07-22 09:53:28 +00:00
Lasse Öörni
ee9b6cc0f8 Renamed the script PostLoad() to FinishUpdate().
Optimized the finalization of CollisionShape & Joint attributes: the ODE object is not needlessly recreated.
2011-07-21 23:16:28 +00:00
Lasse Öörni
7b15b34c83 Removed most OnGetAttribute() / OnSetAttribute() functions in favor of accessor attributes.
Added compare to attribute default values when sending initial node or component attributes.
Network updates for parent nodes are now sent before their child nodes.
Renamed PostLoad() to OnFinishUpdate().
Fixed kNet null pointer assert in debug mode.
Re-enabled memory leak checking in debug mode.
2011-07-21 21:23:49 +00:00
Lasse Öörni
489053b85f Added content ID computation for latestdata messages. 2011-07-17 22:18:33 +00:00
Lasse Öörni
1c6cd6a744 Fixed attribute indexing with latestdata updates. 2011-07-17 22:09:48 +00:00
Lasse Öörni
bd35b5a0e0 Added sending of scene replication messages. 2011-07-17 21:13:32 +00:00
Lasse Öörni
4c3dd57980 Added more networking functionality, including remote events and client's controls update.
Added Append functions to String.
Removed networking mode from Scene, as it seems to be unnecessary.
2011-07-15 14:52:43 +00:00
Lasse Öörni
f28728b3e2 Send identity VariantMap on connecting to server.
Fixed possible bug in WriteString/ReadString if the string contains zeroes in the middle.
2011-07-14 13:11:39 +00:00
Lasse Öörni
91a0b5b41c Fixed Network library to use kNet forward defines.
Added support for handling internal network messages.
2011-07-14 09:39:59 +00:00
Lasse Öörni
b89e9a547f Added log print when starting the connect attempt. 2011-07-13 23:43:52 +00:00
Lasse Öörni
4e2c3376b7 Switched logging & event order for consistency. 2011-07-13 23:38:37 +00:00
Lasse Öörni
2910f128f3 Added Connection class missing from previous commit. 2011-07-13 23:36:00 +00:00
Lasse Öörni
71603ae52e Initial kNet-based networking implementation.
Renamed SharedPtr::Ptr() to RawPtr() to avoid conflicts with kNet's Ptr macro.
Added chat test program.
2011-07-13 23:32:57 +00:00
Lasse Öörni
07fda9f32e Preparation to using kNet: renamed SharedPtr.h to Ptr.h to avoid conflicts. 2011-07-13 13:09:39 +00:00
Lasse Öörni
af2b4311dc Function name unification and cleanup. ChildElement -> Child. RootElement -> Root. ScriptedChildren -> ChildrenWithScript. 2011-07-12 09:08:17 +00:00