Welcome!

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!

Join Today!

NeoMS v90 source

Joined
Aug 10, 2008
Messages
858
Reaction score
516
The actual database itself needs work, too. Then we have timer threads that should definitely be improved throughout the source and how they're used. Not to mention, MapleMap and MapleMonster should be almost entirely rewritten and made threadsafe.

To be honest, these were the only things that are actually relatively critical in terms of absolutely necessary fixes. With everything people add on now-a-days to the database, it is no wonder that the tables are most likely no longer normalized if they had ever been in the past (haven't looked at clean OdinMS tables recently tbh).

Security is probably one the bigger aspects that most sources are lacking that you didn't really mention (or at my quick glance). There are very little to no steps to actually validate packet information from the client. This was all well and fine back in the day; but, it is not necessarily a good thing now-a-days when so much information about how emulators handle data exists. Also, handling all information is not necessarily as important since you may not gain anything additional to be able to successfully emulate the server. Sometimes the client itself doesn't even know what's a good idea despite the information being completely legitimate.

There are also a few scripts (specifically NPC scripts) here and there that are problematic because of security assumptions made by certain people; so, it would be in the best interest for someone to clean those up.

I anticipate that most performance issues with Odin are resolvable after inspecting concurrency issues in highly contentious places and avoiding bloating the backing thread pool executor in TimerManager. Always log and handle your exceptions; they will tell you where to find the strictly broken code that breaks a lot of the game features over time (generally).
 
Back
Top