summaryrefslogtreecommitdiff
path: root/modules/enet/networked_multiplayer_enet.cpp
AgeCommit message (Collapse)Author
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-05-12Expose channels in NetworkedMultiplayerENetFabio Alessandrelli
2018-05-08Document websocket module, further document enetFabio Alessandrelli
2018-05-07Enet: Add wait time param to close_connection()mhilbrunner
Enet: Allow to set client interface/address and port Enet: More error checks Fix comment
2018-04-13Add DNS resolution in NetworkedMultiplayerEnet::create_client()mhilbrunner
2018-04-12Implement get_peer_[address|port] in ENet/WSServerFabio Alessandrelli
Also implement get_connected_host and get_connected_port in WebSocketPeer (not supported in HTML5 due to browser limitation). Add shorthand disconnect_peer(id) for get_peer(id)->close() like in ENet to WebSocketServer.
2018-04-10NetworkedMultiplayerEnet: Add disconnecting/kicking peersmhilbrunner
2018-01-12Bind many more properties to scriptsBojidar Marinov
Notable potentially breaking changes: - PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL - Some properties were renamed, and sometimes even shadowed by new ones - New getter methods (some virtual) were added
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-12-15Remove "const" from PacketPeer get_packet/get_varFabio Alessandrelli
They are NOT constant methods, as state by the comment message, they fetch the last packet and then forget about it, actively changing the state of the object.
2017-11-25Made Vector::ptrw explicit for writing, compiler was sometimes using the ↵Juan Linietsky
wrong function, leading to unnecesary copy on writes and reduced performance.
2017-11-17Rename OS::get_data_dir to OS::get_user_data_dirRémi Verschelde
Will be needed to avoid confusion with system data path (XDG_DATA_HOME) and editor data dir in upcoming refactoring.
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-08-20ClassDB: Provide the enum name of integer constantsIgnacio Etcheverry
2017-08-07Makes all Godot API's methods Lower CaseIndah Sylvia
2017-06-08Add zstd compression support.Ferenc Arn
zstd has much better compression speed and ratio, and better decompression speed than currently available methods. Also set zstd as the default compression method for Compression as well as FileAccessCompressed functions.
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
2017-03-24ENet code cleanup and changes from review.Fabio Alessandrelli
2017-03-24Update ENet module to support custom ENet libFabio Alessandrelli
Keep compatibility with upstream enet libraries
2017-03-05A Whole New World (clang-format edition)Rémi Verschelde
I can show you the code Pretty, with proper whitespace Tell me, coder, now when did You last write readable code? I can open your eyes Make you see your bad indent Force you to respect the style The core devs agreed upon A whole new world A new fantastic code format A de facto standard With some sugar Enforced with clang-format A whole new world A dazzling style we all dreamed of And when we read it through It's crystal clear That now we're in a whole new world of code
2017-02-13Rename the _MD macro to D_METHODHein-Pieter van Braam
This new name also makes its purpose a little clearer This is a step towards fixing #56
2017-01-14Style: Fix whole-line commented codeRémi Verschelde
They do not play well with clang-format which aligns the `//` part with the rest of the code block, thus producing badly indented commented code.
2017-01-02ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky
Variant. All usages of "type" to refer to classes were renamed to "class" ClassDB has been exposed to GDScript. OBJ_TYPE() macro is now GDCLASS()
2017-01-02Merge pull request #7271 from Faless/ipv6_cleanupRémi Verschelde
Fixes and improvementes for IPv6 implementation.
2017-01-01Welcome in 2017, dear changelog reader!Rémi Verschelde
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer with state-of-the-art rendering techniques tuned to work as low as middle end handheld devices - without compromising with the possibilities given for higher end desktop games of course. Great times ahead for the Godot community and the gamers that will play our games!
2016-12-09IP_Address now handle IPv4 and IPv6 transparentlyFabio Alessandrelli
IP_Address changes: - Converts to and from String transparently while handling IPv4 as IPv6 mapped (::ffff:[IP]) address internally. - Completely remove AddrType enum. - Setting/Getting of ip array is now only possible through dedicated functions (ie. set_ipv4, get_ipv4, set_ipv6, get_ipv6) - Add function to know if the address is a valid IPv4 (for IP implementation and enet)
2016-10-18adding ipv6Ariel Manzur
2016-10-15enet: Split enet thirdparty files and allow unbundlingRémi Verschelde
Building against shared libraries only implemented for Linux X11 so far. TODO: Document Godot's modifications of upstream enet.
2016-10-09Merge pull request #6741 from Faless/network_no_spoofRémi Verschelde
Better checks for Multiplayer API, prevent packet source spoofing.
2016-10-09Merge pull request #6657 from Faless/multi_channel_rpcRémi Verschelde
Use 2 different ENet channels for reliable/unreliable packets
2016-10-07Better checks for Multiplayer API, prevent packet source spoofing.Fabio Alessandrelli
Fixes the following problems. A malicious client was able to contact another peer faking its identity (even looking like he was the server). A malicious client was able to force other client disconnections by sending bogus system packets to the server.
2016-09-30Fix possible buffer overflow in NetworkedMultiplayerENetFabio Alessandrelli
NetworkedMultiplayerENet::get_packet was reporting the wrong size for the packet buffer exposing a potential buffer overflow in case of malformed/malicious packets
2016-09-30Use 2 different ENet channels for reliable/unreliable packetsFabio Alessandrelli
This avoids stalling other sequenced but unreliable packets (i.e. UNRELIABLE_ORDERED) when sending RELIABLE packets.
2016-08-27add NetworkedMultiplayerENet::set_bind_ipHubert Jarosz
which allows ENet to bind on custom IP.
2016-08-22-High Level protocol optimization (should be smaller)Juan Linietsky
-Ability to set compression to ENet packets (check API) -Fixed small bug in StringDB that lead to duplicate empty strings -Added a new class, StreamPeerBuffer, useful to create your own tightly packed data
2016-08-19Changed API to use sequenced packets for UDP (drop old)Juan Linietsky
2016-08-20ENet windows compilation fixes.Juan Linietsky
For reference, when you include a Windows header (be it directly windows.h or something that includes it) put it at the end of the includes. it seems I forgot.
2016-08-19Many fixes to networking, demo should work nowJuan Linietsky
2016-08-19Brand new networked multiplayerJuan Linietsky
2016-08-14Added high level networked multiplayer to Godot.Juan Linietsky
It's complete, but absolutely and completely untested, undocumented and NSFW. Have fun :-)
2016-08-14Missing some bits, and added connection status.Juan Linietsky
2016-08-14-Added an ENet implementation for NetworkedMultiplayerPeer for "a bit higher ↵Juan Linietsky
level" networking.