Open pehala opened 3 years ago
I have one question, even if it is not really relevant for the current state of the implementation: Do you see a possibility to detect the usage of a client-side aimbot by using the new network protocol?
Good work, I can not wait to try it out. More stability and responsiveness would be great.
I have one question, even if it is not really relevant for the current state of the implementation: Do you see a possibility to detect the usage of a client-side aimbot by using the new network protocol?
I do, there is a place for that check already in the communication scheme. The harder question is how to implement it right: A) I can do one using naive approach where client just sends bool if he has it enabled, it would not solve much as it would be really easy to edit the client to bypass this. B) We could devise a much harder protection (e.g. client hashing the entire jar or some class and sending it for verification) but that is out of scope for this PR
great. Let's go for A) and maybe extend that in the future.
@pehala Are there any updates on this? I do not want to push, just don't know if you have been waiting for my feedback since September...
There is small progress, currently I am in process of rewriting lobbies endpoints but I do not work on this actively and it is a tedious process. I can however push the latest changes so you can check it out and review at least those :)
What now done:
@PhilippvK If you want you can try it out.
If anyone else would like to help with this just let me know, there is enough work yet to be done :)
@pehala I gave it a try and the points you have described work as expected. Good work!
Overview
Current networking sucks, this PR aims to completely redesign and rewrite the entire networking component of the game. This includes:
New network communication system
Implementation
PacketReceiveHandler
is the main listener for all packets received. The packet is routed to the listener based on a header and each listener can specify which packet it accepts.PacketReceiveHandler
are grouped together intoHandlerGroup
, which can be used to register/deregister multiple listeners. This enables me to create logical "phases" e.gClientInitialization
,LobbySelect
,Game
etc. each with their own group that is registered/deregistered when the Client enters the phase.How much is currently implemented
ClientIntialization
is done, meaning up to the screen with choosing Game Type (Single, Multi, Dual).maven:exec
goal as beforeRemoved features
TODO
@PhilippvK If you have any questions or suggestions, feel free to comment. Fixes #99, #70, #93, #69, #63