Commit Graph

863 Commits

Author SHA1 Message Date
Collin Smith
cc1c43b7e6 Committing basic reliable UDP package 2020-06-23 18:40:59 -07:00
Collin Smith
3a79adcaae Removing previous iteration 2020-06-23 18:40:17 -07:00
Collin Smith
b19d61b8f2 Committing local changes from deprecated netty udp protocol 2020-06-23 18:39:14 -07:00
Collin Smith
fbc4019b23 Removed AckPacket and added writeAck function to SinglePacket 2020-06-22 12:27:11 -07:00
Collin Smith
990910393b Implemented headerSize and fragmentSize fields 2020-06-22 12:03:40 -07:00
Collin Smith
4ec51a427d Added link to discord 2020-06-22 11:51:47 -07:00
Collin Smith
8f0f2b36c6 Fixed unsigned arithmetic 2020-06-22 02:13:14 -07:00
Collin Smith
e831ca09cd Added check to see if fragment packet header was invalid 2020-06-21 20:36:33 -07:00
Collin Smith
7e31a3a5dd Changed error handling style to be log-and-return based 2020-06-21 20:34:21 -07:00
Collin Smith
194fb0817f Adjusted API slightly to help with more common impl 2020-06-21 20:21:53 -07:00
Collin Smith
092a6c23fe Created com.riiablo.net.reliable and partial Java implementation of reliable.io UDP scheme #78 2020-06-21 19:41:08 -07:00
Collin Smith
d13fb953d5 Added comments explaining the need for some buffer position manipulations 2020-06-20 14:29:48 -07:00
Collin Smith
3f51d1d503 Removed individual handlers for inbound and outbound traffic -- replaced with ReliableChannelHandler 2020-06-20 14:21:25 -07:00
Collin Smith
01888faac6 Implemented ReliableUtil and composite ByteBuf into ReliableChannelHandler
Implemented ReliableUtil and composite ByteBuf into ReliableChannelHandler
ReliableChannelHandler automatically replaces outbound message with composite
Removed size prefixing contract from Packet factory
Added ReliableUtil#createHeader to write data and set writer index passed header
2020-06-20 14:03:27 -07:00
Collin Smith
d672768495 Added finishNettyBuffer 2020-06-20 12:49:17 -07:00
Collin Smith
5c4c06d47e Created setContentSize method to support composite buffers
Created setContentSize method to support composite buffers
Removed UDP header fields from Netty fbs table
2020-06-20 12:47:31 -07:00
Collin Smith
26aebd5183 Created ReliableUtil class with utility methods to set and get header data encoded within a reliable UDP packet outside of fbs 2020-06-20 02:01:05 -07:00
Collin Smith
a8fe6bc732 Removed Header table from fbs and inlined fields within the Netty table 2020-06-20 00:21:04 -07:00
Collin Smith
101cc92be4 Added protocol field to netty packet header 2020-06-19 15:01:01 -07:00
Collin Smith
510342e232 Implemented some basic reliable udp logic
Seq should increment and wrap around at 0xFFFF
Added special case for ack < 0 (init first packet)
Added netty packet creation functions to ReliableChannelHandler
Header creation is difficult because I can't mutate existing packets easily -- experimenting
2020-06-18 20:46:57 -07:00
Collin Smith
2b6d06f330 Rolled Client debugging outbound packet data logging into ReliableChannelHandler 2020-06-17 22:57:40 -07:00
Collin Smith
fb7377980b Created ReliableChannelHandler to try and accomplish ReliableInboundHandler and ReliableOutboundHandler with one ChannelHandler
Replaced implementations with ReliableChannelHandler
Removed ReliableInboundHandler and ReliableOutboundHandler
Removed propagation for caught exceptions within ReliableChannelHandler impls
2020-06-17 22:29:14 -07:00
Collin Smith
f1df48b468 Changed ServerHandler to be a subclass of PacketHandler -- replaced anon PacketHandler with ServerHandler impl 2020-06-17 22:02:33 -07:00
Collin Smith
573f4d1b4b Added reliable ChannelHandlers to server ChannelPipeline 2020-06-17 21:56:00 -07:00
Collin Smith
fc66d120d7 Filled in some of anonymous PacketHandler within Main to process some packet types 2020-06-17 21:54:08 -07:00
Collin Smith
02a6cd4b56 Created PacketHandler class to help with decoding fbs packet objects from netty channels 2020-06-17 21:33:34 -07:00
Collin Smith
ef94883dd7 Refactored name scheme 2020-06-17 21:16:04 -07:00
Collin Smith
a2000a6162 Fixed some initialization issues and created reliable ChannelHandler implementations to help deal with UDP reliability 2020-06-17 21:09:56 -07:00
Collin Smith
cad29c7b82 Created Header table in Netty fbs and sample packet 2020-06-16 02:40:39 -07:00
Collin Smith
f5454be03d Created test fbs packets 2020-06-14 20:59:27 -07:00
Collin Smith
cbd55ee164 Replaced StringEscapeUtils from apache commons-lang3 with commons-text
StringEscapeUtils from commons-lang3 was deprecated and should be using version from commons-text
Optimized imports
2020-06-14 12:35:15 -07:00
Collin Smith
dd54d11d9f Transitioned to UDP client/server 2020-06-13 21:13:11 -07:00
Collin Smith
eda10f1da9 Small optimization 2020-06-13 17:45:36 -07:00
Collin Smith
4dcfe2ff00 Created netty module to try implementing UDP servers and move away from the LibGDX networking 2020-06-13 17:42:05 -07:00
Collin Smith
07d98015fd Fixed code formatting and removed fully qualified com.riiablo.codec.COF references 2020-06-13 01:25:19 -07:00
Collin Smith
6be70a3667 Changed parameters for hits ObjectSet -- libgdx changed the parameter check an doesn't allow 1.0f load factor 2020-06-12 22:28:34 -07:00
Collin Smith
eb2d672ac1 Improved accuracy of networking ping calculation #77 2020-06-12 20:08:58 -07:00
Collin Smith
cbfae0f702 Cleaned formatting and alignment 2020-06-12 19:22:50 -07:00
Collin Smith
97b1a3d2d3 Removed static methods and management structs from SystemProfiler
Created ProfilerManager passive system to act as a manager and factory for SystemProfiler instances
Changed SystemProfiler static functions to be a ProfilerManager instance via injection
Fixed some UI bugs within SystemProfiler GUI including incorrect width
Added reference to ProfilerSystem within CursorMovementSystem to block input events when profiler GUI is open
Removed ProfilerSystem#dispose() -- ProfilerManager has it's own dispose method
Reduced visibility of SystemProfiler constructors -- instances should only be created by ProfilerManager
SystemProfiler#initialize() will no longer add the instances to a struct -- automatically added when created by ProfilerManager factory
2020-06-12 17:47:05 -07:00
Collin Smith
8f04cb5c94 Removed dependency on net.mostlyoriginal.artemis-odb:contrib-plugin-profiler
Replaced with com.riiablo.profiler
Copied contrib-plugin-profiler GUI skin to internal assets
2020-06-12 16:04:05 -07:00
Collin Smith
42ff871f38 Removed unneed code 2020-06-12 15:52:43 -07:00
Collin Smith
1c920b461c Created profilers for ping and rtt metrics #77
Implemented averaging of network latency samples via NetworkProfiler
NetworkProfiler handles the interfacing between Profiler plugin and Pinger system
Created IntervalBaseSystem which is a copy of IntervalSystem without dependency on any Aspect
Added support for a PacketListener for Pinger system (receives callbacks for received ping packets)
2020-06-12 15:51:56 -07:00
Collin Smith
2e9e3f2b1f Created a SystemProfiler for CPU and CPU parts of a frame
Created actual SystemProfiler instances for sampling CPU and GPU frame times
CPU and GPU frame times are now graphed with each system (adding them should give total frame time)
Added sample field to SystemProfiler to store value of last call to SystemProfiler#sample(long)
Removed CPU and GPU profiling from ProfilerSystem
2020-06-11 18:39:43 -07:00
Collin Smith
fcd4fa607f Created metrics for tracking CPU and GPU time
Rewrote artemis-odb-contrib/contrib-plugin-profiler
Profiler was too restrictive and privated many useful fields and had static methods, yuk
Profiler plugin will always run and the key will only hide the UI (and set it as GPU system)
Profiler plugin will maybe be modified in the future to be more extensible
Extended profiler plugin to support tagging systems as GPU systems
I'd like to know which systems are slow and track CPU/GPU bottlenecks on mobile
2020-06-11 01:19:49 -07:00
Collin Smith
b1a3411073 Created Metrics class and moved metric fields to it
Metrics will have more metric fields added as we go
2020-06-10 00:32:14 -07:00
Collin Smith
3c08bfbf04 Added RTT field to Pinger 2020-06-09 22:36:48 -07:00
Collin Smith
3390b544a6 Improved accuracy of ping calculation #77 2020-06-07 15:55:28 -07:00
Collin Smith
cdc73e12d6 Added support for Ping packet
Added Ping to Networking fbs
Created Riiablo.ping long to store current ping in ms
Changed Client draw fps to draw Riiablo.ping below fps
Created Pinger system which manages Riiablo.ping and sending and receiving Ping packets
Riiablo.ping is really more like RTT+frame_time and should be ironed out better
Created issue #77 related to the work done in this commit and deficiencies to be addressed
2020-06-07 00:23:00 -07:00
Collin Smith
da152ff5c6 Created constants for Client.Display.DrawFPS values 2020-06-06 22:53:28 -07:00
Collin Smith
da53dabad6 Aggregated Connection and Disconnect fbs into Networking fbs
Removed old individual fbs for Connection and Disconnect
Reordered D2GSData to group Networking packets
2020-06-06 18:17:21 -07:00