Quote:
Originally Posted by lesderid
No flaming please.
And we all know it's damn easy to make a SRO emulator, everyone is just way too lazy.
|
The real complicated thing is the Entity Spawn system. Keep track of them on each client, spawn & despawn them.
Don't know if it might help but on my last tries I did manage sectors as if they were Chat Rooms (join/leave messages and it helped me to send packets to who was in there and not having client crashes).
I'd like to point out some other things like, don't waste your time working on Sky click movement. Keep it simply, Floor click based movement it's Ok and not expensive (in algorithm terms) than messing around with Navigation Meshes.
About packets, try to reuse them. For example, for fixed size packets there is no need in building a new instance of your packet builder class.
Talking about packets try to keep the communications to the minimum. There are thousand of packets on today's emus that might not be necessary.
And there is no need of having a Login and Game servers as you can take a look at this post in one of the largest private server scene development thread (really worth to read from start to end):
I haven't worked before with SQL-engines but on my first approach with Python and on my second with C++ I did something that everybody does: having static data on the database. Recently I thought that it might not be necessary to have it there. You may ask why... the truth is that I thought that SQLite for example for each SQL sentence was running a Lexer and it might be expensive too (Ok it might have some hash-thing running for them too) but as my last try was in C++ too (1st Python, 2nd C++, 3rd C++) I thought that casting bytes (read them from a binary file) to an structure with a really small cache system might be a lot better. It was going to be like a really primitive 'garbage collector'.
One more note: try to have the packet constants inside an interface and all of them declared as final, that might help you if you have to change them.
If I could remember more things I'll let you know but I wanted to share these things as I think they're good tips.
Edit: I just forgot to tell you that don't mess around with security things. Don't add anti-bot systems that might compromise the whole server performance a lot. Keep it simple and playable.