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!

[Dev] Ecalia - C# Maplestory Client

Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
[Dev]Ecalia - C# Maplestory Client

Note: This project is not dead. I'm just extremely busy. (01/11/2018)

Development Information:
Look in the webpage generated by github please..

Screenshot:

Video:


Github:
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
Re: [Dev] Ecalia C# Maplestory Client

JourneyDEV Client vs Ecalia Client!!111

Good luck with your project, C++ is annoying having to manage memory and deconstructors and etc all yourself :(. I personally prefer the style of C# coming from a Java developer standpoint (even if C++ is the language to write this in).
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
Re: [Dev] Ecalia C# Maplestory Client

JourneyDEV Client vs Ecalia Client!!111

Good luck with your project, C++ is annoying having to manage memory and deconstructors and etc all yourself :(. I personally prefer the style of C# coming from a Java developer standpoint (even if C++ is the language to write this in).

Haha, thanks, I'm hoping to accelerate this development now that I mainly got the hang of everything. And yeah, I agree with you, C++ with all it's memory management, low-level programming, and all those deconstructors and operations really get on my nerves, C# is a way better language, even though I learnt Java first lol.
 
Junior Spellweaver
Joined
Aug 13, 2010
Messages
111
Reaction score
16
I have a problem ~


This is problem in UI.wz version 111
v
v
Capture.PNG - [Dev] Ecalia - C# Maplestory Client - RaGEZONE Forums


But v62 is ok ;)
 

Attachments

You must be registered for see attachments list
Last edited:
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
Re: [Dev] Ecalia C# Maplestory Client

JourneyDEV Client vs Ecalia Client!!111

This, I hope you make good progress on it so that I can abandon mine in peace and focus on other projects instead :wink:

Edit: Question: Should I make a server with this (as a code a new one from scratch) or should I just use a Java source? I'm kind of debating over this at the moment, so I wanted to know if anyone had any suggestions.

I recommend using real sources so that you can test your client on actual private servers. This has massive advantages, if you do everything on localhost you might not notice if you have performance problems until it's too late.
 
Last edited:
Experienced Elementalist
Joined
Nov 21, 2008
Messages
297
Reaction score
38
Re: [Dev] Ecalia C# Maplestory Client

This, I hope you make good progress on it so that I can abandon mine in peace and focus on other projects instead :wink:



I recommend using real sources so that you can test your client on actual private servers. This has massive advantages, if you do everything on localhost you might not notice if you have performance problems until it's too late.

pls not 2 abandon i dun know what a fork is and too dense to understand c pls no I need you babe!!... :bawling:

OT:
Best of luck with this kaitodomoto! It's always exciting to see a new custom client!
I really hope you can make it further (and more complete) then the rest of the currently available (discarded and no longer in development) clients. Really looking forward to any future updates! YYAay!!

One last thing: Ecalia.. Is that.. like, a play on words for Extalia (R.I.P)?
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
Re: [Dev] Ecalia C# Maplestory Client

This, I hope you make good progress on it so that I can abandon mine in peace and focus on other projects instead :wink:



I recommend using real sources so that you can test your client on actual private servers. This has massive advantages, if you do everything on localhost you might not notice if you have performance problems until it's too late.

Why are you giving up? This is a great learning experience, and personally it's pretty fun when you actually accomplish something. And yeah you are right, using a Java source would be a bit easier on development, I'll just leave the server for another time.

pls not 2 abandon i dun know what a fork is and too dense to understand c pls no I need you babe!!... :bawling:

OT:
Best of luck with this kaitodomoto! It's always exciting to see a new custom client!
I really hope you can make it further (and more complete) then the rest of the currently available (discarded and no longer in development) clients. Really looking forward to any future updates! YYAay!!

One last thing: Ecalia.. Is that.. like, a play on words for Extalia (R.I.P)?

Thanks! Though were there really other clients in development other than SYJourney's? Well I didn't know. As for the name it comes from a another name from a game by Gamevil called Kiritka. They released a new class called Eclair, and for some reason the name Ecalia came into my mind so I named the development after it.

I have a problem ~


This is problem in UI.wz version 111
v
v
View attachment 155800


But v62 is ok ;)

Yeah sorry about that I should've mentioned that. I'll provide a solution when I get out of work. It's almost done, I just need to add two more fields and it'll be done.
 
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
Re: [Dev] Ecalia C# Maplestory Client

Why are you giving up? This is a great learning experience, and personally it's pretty fun when you actually accomplish something. And yeah you are right, using a Java source would be a bit easier on development, I'll just leave the server for another time.

I was just joking because of the race comment. It might actually be beneficial to have custom clients in different languages. You're right about it being good for learning, tough from my experience that only really applies to the early development when you are still figuring things out.
Out of curiosity, how far did you get with your previous attempts at it? And do you have your architecture already planned out or will you figure things out as you go? I'm asking because it's a bit difficult to judge how serious you are with it from what you have uploaded so far, I'll be looking forward to the next iteration.
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
Re: [Dev] Ecalia C# Maplestory Client

I was just joking because of the race comment. It might actually be beneficial to have custom clients in different languages. You're right about it being good for learning, tough from my experience that only really applies to the early development when you are still figuring things out.
Out of curiosity, how far did you get with your previous attempts at it? And do you have your architecture already planned out or will you figure things out as you go? I'm asking because it's a bit difficult to judge how serious you are with it from what you have uploaded so far, I'll be looking forward to the next iteration.

Basically for the other two attempts I didnt get very far, but that was before I really started trying (since school took 99% of my time). But as for a plan I do have one, which is to first create a BareBones application until login screen. Once thats done ill add tge proper networking (which is already created but not added yet) from there I'll do everything in order. I.e. complete (character creation and all) login sector, then map loading and so on. The main reason why I uploaded it in the state I did is for one to actually provide proof and to get tge git uploading up and loaded, two for those who always wanted to do this in c# but wanted a starting base, and three because thats what I promised myself I'd do. I actually have a lot of updates ready now, but I'm at work at the moment. But do not worry, I'm taking this 100% serious, I'll be honest and tell you I might be delayed every now and then due to life getting in the way but I will try to make at least one update everyday.

If you have anymore question, don't hesistate to ask.

Question: Does anyone happen to know what version the Nexon logo changed in? Meaning the one they use now.

Update: Github is giving me problems at the moment so I am not able to add the new changes. I'm going to wait till the morning to try again since my internet is also currently giving me problems too. But I did get a chance to upload a video of tge new changes so if you are interested check it out in rev4

Update 2: Good news everyone. My internet is back to normal so now I am able to upload the files when I wake up in the morning (it's 4am atm) so when I wake up you'll have the new content. Sorry for the inconvinence.[emoji17]
 
Last edited:
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
I took a look through the source, I don't know how c# really works to be honest so I can't comment on the code itself.
Here's some things that I noticed/want to ask you about:


In your CNetwork class, you set the buffer size to 1024.
From my experience, you'll need atleast two times or four times that. The packets you receive after logging in with a character are especially big.


When loading from wz files, you seem to be using an algorithm of: Load top node, then iterate through each subnode until you have found the correct one, then iterate through the subnodes again and so on. I was wondering if it's not possible to access nodes directly through reWZ? If it's possible I recommend you do that instead for code brevity and simplicity.
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
I took a look through the source, I don't know how c# really works to be honest so I can't comment on the code itself.
Here's some things that I noticed/want to ask you about:


In your CNetwork class, you set the buffer size to 1024.
From my experience, you'll need atleast two times or four times that. The packets you receive after logging in with a character are especially big.


When loading from wz files, you seem to be using an algorithm of: Load top node, then iterate through each subnode until you have found the correct one, then iterate through the subnodes again and so on. I was wondering if it's not possible to access nodes directly through reWZ? If it's possible I recommend you do that instead for code brevity and simplicity.
I understand where you are coming from when it comes to the networking, but its still in construction so I still haven't finalized everything. As for the character data the only reason it comes out so big is because of nexons unnecessary use of 0's and other uselss amount of data. As for the nodes, the problem with C# is that you can't really seek out nodes in that way, it all depends on the library. From what I've been told and seen as well, that whole foreach nest of nodes is practically the only way of seeking things unless you use (wz.MainDirectory[...][...]) but that can only get you so far. C# can't convert things to whatever you want them to be like C++ can, there are restrictions and limitations.



Update: Optimized code due to your suggestion look @ Rev 0005 for more information or @ Github

Edit: For those who are knowledgeable in programming, and are wondering why I am constantly repeating certain fields in the layer classes and wonder why I haven't made a class that just handles that instead of the constant repeating. I am planning on it, I am just experimenting at the moment, since I just recently started this, so give me a bit of time and it'll happen. If you have noticed or not, since I posted this here, the code inside the Layer classes and everywhere else has been constantly changing for the better (or worse...depends) so yeah, just give me sometime.
 
Last edited:
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
hmm are you planing using .nx?
Sorry didnt answer you question kind of misread it. But I am but not now, later on I'll add a compatible statement to it

The reason I didn't instantly go for .NX is because if you really think about it, people will most likely have .wz files laying around in their hard drive, and personally I wouldn't want to download new files when wanting to play a server unless it's highly needed.


Update (2/12/16 1:58am):
I added the notes for revision 0006, but I will not commit it till I have finished constructing the login screen. The Networking gives no error, and will immediately cut of the connection if the server does not respond (so no delay, you'll know right after clicking on the client). The construction of the loginscreen may take about two days since I am trying to find a good way to load everything without having to name every since node in the file, and without causing any misplacement and what not. If you have any questions, you can post them here or PM me, I do have Tapatalk on my phone so I can reply ASAP.
 
Last edited:
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
- Found a bug with Nexon layer. Screen goes black for about .5 secs, I'm still figuring out why.
It's possible that this is actually how long it takes to load it with reWZ, convert all the images and so on. When I first tried to make a client, I also used c# in combination with reNX. And even tough reNX is still supposed so be faster than reWZ, loading a large animation (like the logo) or a map took way too much time, that was when I decided to learn c++ instead.
 
Newbie Spellweaver
Joined
Aug 12, 2011
Messages
18
Reaction score
1
I understand where you are coming from when it comes to the networking, but its still in construction so I still haven't finalized everything. As for the character data the only reason it comes out so big is because of nexons unnecessary use of 0's and other uselss amount of data. As for the nodes, the problem with C# is that you can't really seek out nodes in that way, it all depends on the library. From what I've been told and seen as well, that whole foreach nest of nodes is practically the only way of seeking things unless you use (wz.MainDirectory[...][...]) but that can only get you so far. C# can't convert things to whatever you want them to be like C++ can, there are restrictions and limitations.



Update: Optimized code due to your suggestion look @ Rev 0005 for more information or @ Github

Edit: For those who are knowledgeable in programming, and are wondering why I am constantly repeating certain fields in the layer classes and wonder why I haven't made a class that just handles that instead of the constant repeating. I am planning on it, I am just experimenting at the moment, since I just recently started this, so give me a bit of time and it'll happen. If you have noticed or not, since I posted this here, the code inside the Layer classes and everywhere else has been constantly changing for the better (or worse...depends) so yeah, just give me sometime.

I am 100% new to the whole game deve as me and friend are working on a server(C# as well) and i am in no position to give advice related to that. However, i am pretty profecient in C# the language. and going back to what SYJourney was mentioning about your foreach loops. Since you're only looking for something specific(if statement). I'd suggest using a LINQ statement with a lamdba function and you can also chain them. Almost 95% of the time, any foreach loop(s) can be written to a LINQ statement and from my experience they are faster than writing foreach loops(for large N). and the code is much shorter and easier to read, imo.
Also install 'Resharper', It's a plugin by JetBrains(EVERYTHING THEY MAKE IS AWESOME BTW!). Resharper will essentially optimize your code, tell you if you're being redundant or if they're is a better way of doing what you're trying to do. Just my .02! GL!
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
I am 100% new to the whole game deve as me and friend are working on a server(C# as well) and i am in no position to give advice related to that. However, i am pretty profecient in C# the language. and going back to what SYJourney was mentioning about your foreach loops. Since you're only looking for something specific(if statement). I'd suggest using a LINQ statement with a lamdba function and you can also chain them. Almost 95% of the time, any foreach loop(s) can be written to a LINQ statement and from my experience they are faster than writing foreach loops(for large N). and the code is much shorter and easier to read, imo.
Also install 'Resharper', It's a plugin by JetBrains(EVERYTHING THEY MAKE IS AWESOME BTW!). Resharper will essentially optimize your code, tell you if you're being redundant or if they're is a better way of doing what you're trying to do. Just my .02! GL!
Now that I think about it I completely forgot that LINQ existed....I usually don't use it since I don't usually do this huge of an application in C#. But you might be right, it could be more efficient to use it. As for the Jetbrain, I know about that but never actually took the time to use it. They're items are pretty amazing, but like I said, I've never took the time to look into it. I may end up using it though.

Sent from Tapatalk

Snall update: you wont see me upload anything till monday, this weekend has been completely takeb up by work so I havent been able to do anything. I apologize for the inconvienence. [emoji17]
 
Last edited:
Newbie Spellweaver
Joined
Jun 21, 2008
Messages
21
Reaction score
0
This is amazing! I always enjoy seeing new content for MapleStory private server and what it really lacks is custom clients. Keep it up! I wish both you and SYJourney the best of luck with the development. Regarding the LUA support that you might add, would that mean we can have addons?
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
This is amazing! I always enjoy seeing new content for MapleStory private server and what it really lacks is custom clients. Keep it up! I wish both you and SYJourney the best of luck with the development. Regarding the LUA support that you might add, would that mean we can have addons?
Thanks for the compliment! I do hope to add LUA to the client, but I'm still trying to figure out what to do with it. What type of addons would you have in mind if LUA was implemented?

Sent from Tapatalk
 
Newbie Spellweaver
Joined
Jun 21, 2008
Messages
21
Reaction score
0
Thanks for the compliment! I do hope to add LUA to the client, but I'm still trying to figure out what to do with it. What type of addons would you have in mind if LUA was implemented?

Sent from Tapatalk
I was thinking user created addon support like in Elder Scrolls Online and World of Warcraft. The addons modifies visuals and changes how information is displayed. For example custom party frames, new movable HP MP and EXP bars, new popup chat and so on.
Not sure if WoW has LUA addons but Elder Scrolls Online does. But that would require a modding API to be made, right? It might be a bit overkill for a game like MapleStory but I just wanted to mention it.
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
I was thinking user created addon support like in Elder Scrolls Online and World of Warcraft. The addons modifies visuals and changes how information is displayed. For example custom party frames, new movable HP MP and EXP bars and so on.
Not sure if WoW has LUA addons but Elder Scrolls Online does. But that would require a modding API to be made, right? It might be a bit overkill for a game like MapleStory but I just wanted to mention it.
Hm. Sounds interesting. That could be a possibility as long as it not something as a full scale map change since that will just cause the game to continuously crash for the user, but if its something like UI and stuff only the player themselves can see/use it might be possible. Though there might be otger things that can be modified too, but I have no idea what Maplestory can handle at the moment.

Sent from Tapatalk

Small Update: Added a new commit to git, login screen still incomplete (haven't had anytime what so ever), but Networking is there, somewhat incomplete but functional. wanted to add something since I feel if I didn't put an update soon, this will get labeled as a dead development...

Update again: I am constantly updating this thread with updates and whatnot so Dont think I've given up. The reason you haven't heard From me in a while idea because Im currently making the map engine...its almost done but there still a bit left to do.
 
Last edited:
Back
Top