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!

deletexxxy

Initiate Mage
Joined
Jun 22, 2016
Messages
76
Reaction score
8
Comment removed.
 
Last edited:
Joined
Oct 14, 2008
Messages
960
Reaction score
197
LeaderMs Rev 2 or This source?

This source is a very good basis, but as I said, the MS-Features need further work which will take some time.

Mine is v0.62 GMS (Global MapleStory), LeaderMS is BrazilMS (BMS), though.

This source before any source.

Love it! Thank you for this, waited for so long for this to happen.

Thank you for your support, I appreciate it.


Just commited some changes:

The packets for Monster Carnival PQ are now complete. Also added some constants for MCPQ.
I am planning to implement Full CPQ at some later time, but already doing some preparation for it.

hzZc00A - deletexxxy - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
430
Note to Kimberly (MapleLegends owner afaik) and PrinceReborn (MapleRoyals owner afaik): I know you will read this and realize that finally a good v0.62 source becomes available, but please wait until the MS-features are complete before trying to use it to host your servers. :')

Don't know why there's a note here directly for me, but just want to tell we already have GMS-like Fred as well as a lot of other things, and we are on Java. This is a great contribution for v62 users, but not really for us. This is not meant to say 'this is useless' but your message in general is a bit claiming we are just here to nip into your code and take it.

I am not sure if this was meant to offend us in saying we are not running on a nice server and are a bunch of leechers.
 
Joined
Oct 14, 2008
Messages
960
Reaction score
197
Don't know why there's a note here directly for me, but just want to tell we already have GMS-like Fred as well as a lot of other things, and we are on Java. This is a great contribution for v62 users, but not really for us. This is not meant to say 'this is useless' but your message in general is a bit claiming we are just here to nip into your code and take it.

I am not sure if this was meant to offend us in saying we are not running on a nice server and are a bunch of leechers.

Hi,

actually it's not supposed to offend you, it's a mix of seriousness and fun,
because I expected that you and the other person will see this release.

I actually wouldn't have any issues with someone using it for a server, including you or whoever.

And no, in no way it was meant to say you are leechers or something.

And it would be ok if you would take something from it, also.

This release is really meant to seriously contribute to the community and also to servers.

So you are welcome to check out my source and this thread again at anytime.

Greetings

Buya
 
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
430
Hi,

actually it's not supposed to offend you, it's a mix of seriousness and fun,
because I expected that you and the other person will see this release.

I actually wouldn't have any issues with someone using it for a server, including you or whoever.

And no, in no way it was meant to say you are leechers or something.

And it would be ok if you would take something from it, also.

This release is really meant to seriously contribute to the community and also to servers.

Greetings

Buya

Ah, okay. There's not many times anymore people tease in the Maple scene, so I took it serious, haha.

Good job once again on all this, pretty sure many will appreciate it :)
 
Joined
Oct 14, 2008
Messages
960
Reaction score
197
Ah, okay. There's not many times anymore people tease in the Maple scene, so I took it serious, haha.

Good job once again on all this, pretty sure many will appreciate it :)

Thank you for your support and the appreciation of my work.

And ofcourse, good luck with your server.

Greetings

Buya
 
Junior Spellweaver
Joined
Apr 18, 2008
Messages
108
Reaction score
46
Finally a reason to work with C++. I'll have to check this out when I get the time, and hopefully push a few pull requests your way. Nice release.
 
Joined
Oct 14, 2008
Messages
960
Reaction score
197
Damn, makes me want to learn C++ now. Awesome.

Thanks for your appreciation of my work.
I must say that C++ is a complex/complicated language and hard to learn, but it's also a nice and important language.
I would suggest taking a look at the source code to get a first impression of C++, I try to follow good coding practices as much as possible.

Finally a reason to work with C++. I'll have to check this out when I get the time, and hopefully push a few pull requests your way. Nice release.

Thank you.
Sounds interesting.
I am looking forward to see proposed changes from you.

Now as it's a good opportunity, I want to add, that changes from anyone are welcome.
I will review them seriously.

Greetings

Buya
 
Junior Spellweaver
Joined
Jul 6, 2008
Messages
170
Reaction score
17
Note to Kimberly (MapleLegends owner afaik) and PrinceReborn (MapleRoyals owner afaik): I know you will read this and realize that finally a good v0.62 source becomes available, but please wait until the MS-features are complete before trying to use it to host your servers. :')

This is a great contribution to the community, sadly not much use to us since we have almost finished our own new v0.83 source code, so thanks but no thanks!
 
Initiate Mage
Joined
Jun 17, 2011
Messages
99
Reaction score
19
This is superior in all ways compared to Java. Especially compared to the v0.62 java sources.

Good job Buya, still rocking.
 
Experienced Elementalist
Joined
Mar 29, 2007
Messages
248
Reaction score
2
Can someone help me how to set up those files?
I Became complicated with poco installation and the rest things..
maybe a tutorial?
 
Joined
Oct 14, 2008
Messages
960
Reaction score
197
Can someone help me how to set up those files?
I Became complicated with poco installation and the rest things..
maybe a tutorial?

Hi, I tried to explain it in the howto file, but I understand that for beginners/people who are new to this it's not easy.

I will write and post a thread in the tutorial section to explain it in detail soon.

Greetings

Buya
 
Experienced Elementalist
Joined
Mar 29, 2007
Messages
248
Reaction score
2
Hi, I tried to explain it in the howto file, but I understand that for beginners/people who are new to this it's not easy.

I will write and post a thread in the tutorial section to explain it in detail soon.

Greetings

Buya
Thanks man :)
 
Initiate Mage
Joined
Aug 6, 2014
Messages
56
Reaction score
42
Since no one is actually talking about the code, I have some questions. Forgive me if some of them are naive; I haven't worked in C++ much.

1. Why is there no scripting engine? The point of a scripting engine is to decouple the actual scripts (language, framework, API) from the core code, and avoid a recompilation. What benefits did you see in removing it? As a follow up, you only have around 30 npc scripts; were there more when a scripting engine existed for Titan? If so how would you add the vast number of scripts that were present then or are present in Odin sources? Do you have any plans to write a language converter or transpiler?

2. I took a brief look into the code and didn't see many smart pointers - is there any reason why it's not consistent? You mentioned that you focused on performance and memory efficiency. Have you done any load testing and/or used tools like valgrind to expose memory leaks through high coverage scenarios? How can you support your claims? A consistent theme across MapleStory development is a lack of load testing tools to objectively analyze performance. Most people equate performance to memory consumption on startup, which is a highly flawed metric, and it seems like you've done the same without offering more detail.

3. I noticed the architecture/structure is actually very similar to post-RMI-removal Odin, but there are some peculiarities in where data is held. Why do you load all guilds and player names? Why are fame timestamps kept in the World server? How come online players are kept in the world, instead of in each channel? How do you efficiently send a message to only players in a certain channel?

4. I have not seen any synchronization in key parts of the code, like in packet sending and throughout Map. Am I mistaken here? If not, have you actually tested the implications of async writes per-client? I haven't worked with asio in a while, but do you have a write queue with a strand to handle this? What is the highest number of players you've had in the same map? If that number is 1-2, I expect to see a multitude of concurrency problems and unexpected behavior as that number scales.

5. I noticed in your drop expiry code you have a single task that runs every 8 (or 180) seconds that clears drops and respawns monsters. Unless I'm misunderstanding something, this does not have expected behavior, where each individual drop lasts for 180 seconds. Consider the case where the expiry task ran, and 5 seconds later, an item was dropped. In the next run, it would be there for 175 seconds and would not be removed, which means it actually stays on the map for 355 seconds instead of 180. Since the same Mob objects are used throughout the life of a Map, this will have race conditions because the code does not seem to be threadsafe, and still wouldn't simulate variable numbers of spawns from spawn points like in GMS.

6. I haven't dug into your wz loading code, but what benefits are there to load directly from the .wz files rather than another format (sql, xml)? Does the wz format have faster than O(N) lookups? What about the nx format, does that have faster than O(N) lookups? Have you explored it as a potential solution?

7. It is very unclear to me why all the packet handling code is in Player, even for login packets, even though the Player class seems to represent a logged-in Character object (with stats, guilds, etc). Is there any reason why you removed the "Client" abstraction and have this kind of implementation?

8. The PacketCreator usage seems a little disappointing; surely there is a better way to send packets than doing "PacketCreator packet26; ... PacketCreator packet37; ..." ?

Edit:
9. It also seems that there is no spawn delay for items dropped from monsters. Is this correct? The delay for dropped items need to match the duration of the monster's death animation. Is this anywhere in the source?

Thanks for your time!
 
Last edited:
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
430
It also seems that there is no spawn delay for items dropped from monsters. Is this correct? The delay for dropped items need to match the duration of the monster's death animation. Is this anywhere in the source?

This is actually incorrect and many, if not all sources do this (Even Extalia did when I visited them back in day). In GMS the drops happened as soon the mob died, not after the dead animation. Feel free to confirm in old GMS videos ;)

You can especially see this when Bigfoot gets killed. In pretty much all servers the drops are delayed due to long butt animation, but in GMS they instant dropped.
 
Last edited:
Back
Top