Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
> Entities are passed through a filter before being executed anywhere.
> Memory is being handled very carefully.
> Tickets are wiped on user login, any other defence is CMS. This project isn't for programming a CMS.
> Limited connections from a single IP. Automatic banning of IPs that exceed that limit.
> Entities are passed through a filter before being executed anywhere.
> Memory is being handled very carefully.
> Tickets are wiped on user login, any other defence is CMS. This project isn't for programming a CMS.
> Limited connections from a single IP. Automatic banning of IPs that exceed that limit.
Use the policy to restrict access and drop any connections that don't connect from the client is the best way of doing this than a connection limit.
Then you just need to have some code which monitors the rate of packets being send through the open connection and ban those IP's which exceed the rate to prevent any type of flooding.
Also will be very interesting to see how you handle the storing of Rooms and the initial loading of rooms. Don't do any of that rubbish where you store the current Room ID in the Player object, then calling a function in the Room Manager like "GetRoomFromId" then returning the loaded room, and having it called by every packet like "StartTyping, StopTyping, Shout, Whisper (every other room packet there is)".
Instead its always best to reference the room once you have loaded it and access the room directly through that reference, but remember to always null it once the player has left the room otherwise you'll end up holding reference to that room even when it has been "unloaded" (removed from the loaded rooms collection) and using up unnecessary memory. Easiest way would be to hold it as a WeakReference, and have a function like "GetCurrentRoom" to perform checks to see if the room has "gone away", which should never happen as you'd code it to remove the room when no players are in there anymore, so i'd make it throw an error just to make debugging easier.