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

Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
I have a somewhat lengthy idea/suggestion, if you don't mind.
So it seems that you are also coding your own server after all. What's interesting to me is that your server and client both use c# which might give you some unique opportunities for code re-use. I was thinking about this because a while ago, I had to do a java project in a group for a grade and we developed a client-server game where we were able to re-use a large part of the code between them. This made some changes easier, for example: Adding an attribute to a game object and adding the attribute to the serialization/deserialization algorithms were both changes to the shared library. So then we only had to change the part of the server which defines the object, and the part of the client which uses the object (in maplestory terms, this could be an equip or similiar).
I think if anything will make the development of unique features much easier, then it would be having to change only part of the code in both client and server to get something new. Now of course this requires a bit of analysis and planning ahead but you should consider it, if you really plan on making your own server along with the client, this could faciliate the development.
 
Joined
Apr 10, 2008
Messages
4,087
Reaction score
1,264
I have a somewhat lengthy idea/suggestion, if you don't mind.
So it seems that you are also coding your own server after all. What's interesting to me is that your server and client both use c# which might give you some unique opportunities for code re-use. I was thinking about this because a while ago, I had to do a java project in a group for a grade and we developed a client-server game where we were able to re-use a large part of the code between them. This made some changes easier, for example: Adding an attribute to a game object and adding the attribute to the serialization/deserialization algorithms were both changes to the shared library. So then we only had to change the part of the server which defines the object, and the part of the client which uses the object (in maplestory terms, this could be an equip or similiar).
I think if anything will make the development of unique features much easier, then it would be having to change only part of the code in both client and server to get something new. Now of course this requires a bit of analysis and planning ahead but you should consider it, if you really plan on making your own server along with the client, this could faciliate the development.

great idea, use a shared project so it saves time when modifying poop
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
I have a somewhat lengthy idea/suggestion, if you don't mind.
So it seems that you are also coding your own server after all. What's interesting to me is that your server and client both use c# which might give you some unique opportunities for code re-use. I was thinking about this because a while ago, I had to do a java project in a group for a grade and we developed a client-server game where we were able to re-use a large part of the code between them. This made some changes easier, for example: Adding an attribute to a game object and adding the attribute to the serialization/deserialization algorithms were both changes to the shared library. So then we only had to change the part of the server which defines the object, and the part of the client which uses the object (in maplestory terms, this could be an equip or similiar).
I think if anything will make the development of unique features much easier, then it would be having to change only part of the code in both client and server to get something new. Now of course this requires a bit of analysis and planning ahead but you should consider it, if you really plan on making your own server along with the client, this could faciliate the development.

Honestly I did not think of this. This is a great idea! When I first started working on the MSServer I was only think about what I can learn and how much easier it'll be to manipulate the data of the game as well as change things when it's needed. The idea of using a library as the main source for the data is a way better idea than what I had though so I will take you up on that.

Small update:
Re-wrote the whole CEngine code, you'll see the difference soon when I upload it later on. Map now align-ish, some map sections are still a bit messed up (talking about the login screen here btw lol...)

The image is Zoomed out by 700px on the Z-axis in order to see mostly everything

Pic:
Mt6190l - [Dev] Ecalia - C# Maplestory Client - RaGEZONE Forums

It fits correctly (after adding 400 to x and 300 to y)
RlSop31 - [Dev] Ecalia - C# Maplestory Client - RaGEZONE Forums

Bat:
m6rDQGB - [Dev] Ecalia - C# Maplestory Client - RaGEZONE Forums

I just realized I've been working on this for almost a month....time passes to quickly yet progress is slow...

Update: This is officially starting to become very confusing (though I did manage to fix a lot of the texture problem...haven't posted them yet). I guess there some kind of formula to the X and Y cordinates of the objects because everything except the logo and the logo effects are in the correct places (using a v62 server to compare everything as I go). As for actual Maps I tested to see if the current code works with Maps...it does but it looks kind of weird....some images you can see the border of them....but that can be fixed. Now the confusing part for me is the "activate texture by packet" i.e. when you click on the world name (scania) and make the scroll unroll to show the channels.....like that...I'll eventually get it but it'll take me a little bit lol I'm just saying this for y'all to know...there are such things as coder's block (like writer's block) but I overcame a couple of those already but there's a hell of a lot more soon. Though honestly this is caused by the Game Engine's lack of Documentation, I am using the C++ reference to help but they had to change a couple of things to make it compatible with C# so it takes a bit longer to implement things. Though since this game engine uses xna there are a couple of things i can just use xna instead of the engine with, but not too many. Drawing is out of the question since xna uses a never ending loop to draw things. But things like mouse/keyboard states can be done using xna, and other things like that. Hopefully by the end of the month I plan to have the login complete (with button interaction and what not) when that happens I'll then officially implement networking, I'll try to make it offline at the same time to, but don't take me up on that.
 

Attachments

You must be registered for see attachments list
Last edited:
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
Now the confusing part for me is the "activate texture by packet" i.e. when you click on the world name (scania) and make the scroll unroll to show the channels

The client is really not intended for a kind of "dumb client-smart server" relationship. What I mean by that is that you won't really find any consistent way of activating certain textures and things just by the information the server sends. Usually you have to add your own procedural logic and sometimes even duplicate information (example: maintaining state of your world/channel selection).
For the example you provide above (scroll unrolls) you will have to use one packet the server sends (worlds and channels) and make two different menus out of it, save all the worlds and channels in your program, then display the world selection, then if a world is selected you unroll the scroll and show the channel selection.
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
The client is really not intended for a kind of "dumb client-smart server" relationship. What I mean by that is that you won't really find any consistent way of activating certain textures and things just by the information the server sends. Usually you have to add your own procedural logic and sometimes even duplicate information (example: maintaining state of your world/channel selection).
For the example you provide above (scroll unrolls) you will have to use one packet the server sends (worlds and channels) and make two different menus out of it, save all the worlds and channels in your program, then display the world selection, then if a world is selected you unroll the scroll and show the channel selection.
I see what you mean. Now I have to start doing a little research on the server and client way handling things (i.e. looking through a source). Though I wasn't really bent on it I thought that you can make a fully server sided (smart server) or a fully client side (smart client) game. Though the things about this that I know of is a fully server sided game is very secure on the hacking part but requires a lot of time to make and one small code mistake can ruin the whole thing. And on the client sided part I know if you do that people can easily hack the client and manipluate the game without the server even realizing it. I know maple uses a basically smack-down-the-middle server/client relationship, but that part I mentioned above is what got me really confused since I'm used to seeing the smart server or smart client way of doing things.

Sent from Tapatalk
 
Custom Title Activated
Loyal Member
Joined
Nov 14, 2008
Messages
1,025
Reaction score
641
not even 2 weeks into development, there is already functional procrastination; This project is doomed to failure
 
Custom Title Activated
Loyal Member
Joined
Nov 14, 2008
Messages
1,025
Reaction score
641
What are you talking about?

Sent from Tapatalk

have you never written games or software? the first thing you should focus on is the main attraction, the main features. And yet, you have spent 3 weeks on this already and all you have is the splash screen and a screen that tries to be a login screen. Anyone who thinks this will ever get to a usable level is completely deluded. For the record, functional procrastination is the word I give to the act of delaying features that are more complex to implement in software development to implement other features that are simpler to implement but less relevant. It is a dangerous phenomenon which from my observations, often kills interest in projects because you are left with all the difficult tasks at the end, a wall that is psychologically higher than it was at the start of the project.

In essence, functional procrastination is a priority issue which happens most often in projects worked on by a single individual only.
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
have you never written games or software? the first thing you should focus on is the main attraction, the main features. And yet, you have spent 3 weeks on this already and all you have is the splash screen and a screen that tries to be a login screen. Anyone who thinks this will ever get to a usable level is completely deluded. For the record, functional procrastination is the word I give to the act of delaying features that are more complex to implement in software development to implement other features that are simpler to implement but less relevant. It is a dangerous phenomenon which from my observations, often kills interest in projects because you are left with all the difficult tasks at the end, a wall that is psychologically higher than it was at the start of the project.

In essence, functional procrastination is a priority issue which happens most often in projects worked on by a single individual only.
Okay......? I honestly don't care, I work they way I want to, and things are going to change that's what a development is all about. I am planning on coding those so called main features, but it's going to happen when I get them coded; if anyone want those main features up and ready they can grab the source and do it themselves. I have a plan on how to do this, and involves working from front to end, and that is not going to end. So, if anyone thinks they can do better or want certain features in now; they can grab the source code code it themselves or just start on their own. I get what you are trying to say, but everyone is different. The code to this project is going to be CONSTANTLY changing to better improve it and place it on actual game terms, but like I said it's going to take a bit. Okay. Thanks [emoji1]

Sent from Tapatalk
 
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
not even 2 weeks into development, there is already functional procrastination; This project is doomed to failure

I am honestly interested in how you even came to that conclusion. Did you actually look at the source code and the update logs and think about how you would prioritize things differently? If so what's your alternative? Or are you just trolling.
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
I am honestly interested in how you even came to that conclusion. Did you actually look at the source code and the update logs and think about how you would prioritize things differently? If so what's your alternative? Or are you just trolling.
I think he just wanted to start a rage/flame war, but left disappointed since he didn't get it.

Sent from Tapatalk
 
Newbie Spellweaver
Joined
Aug 5, 2009
Messages
14
Reaction score
3
I was seriously considering developing a maplestory client as well, inspired by the work of SIJourney's pretty amazing work. I've seen many coders give up (because sometimes it seems not worth it/real life catches up) so I wanted to add a bit of competitive incentive, in (what is looking to be the unlikely) case SIJourney ever gives up since I think I know enough now about CS and things like networking/algorithm analysis/security to start coding one. Also it would've been useful to have a concrete development on github with lots of progress shown through the commits - just to prove to myself that I could do it. Unfortunately I'm still a student so time is pretty important rn, but I'm so glad that both of you guys seem to be pretty serious about this.

And just a side note, I doubt Oxysoft is really trying to troll. Think about another motive besides the obvious trolling, because it seems more like subtle encouragement (kinda like reverse psychology) to me. I personally think he secretly hopes that one of you guys actually goes on to make a great self coded client. Anyways I won't claim that he is infact not trolling since I don't know him, but I do like that already, you guys are having discussions about problems that you guys have encountered (more onesided rn because SIJourney has more experience) but it can prove to be extremely beneficial in the future if enough changes accumulate to make pretty different, but well coded clients.

Anyways good luck with this! I hope to see this project still in development in the summer :)
 
Junior Spellweaver
Joined
Apr 25, 2011
Messages
153
Reaction score
37
Update: Removed any trace of Cocos2D and deleted any and all classes associated with it. The client now runs with DirectX 3D9 and Direct2D. I am just going to complie my own code (shaders, animation, etc.).

Reason for such inactivity: Life and I was experimenting a lot with DirectX and OpenGL. I ended up choosing D3D because one Maple originally uses it and honestly I'm going to wait on the whole cross platform thing because it's not top priority for me at the moment. And I'm going to take (that guy that said that this project is going to fail....sorry im at work atm so I dont remember how to spell it atm...) advice (even though it was put in an odd way) and focus on the main features first and then do everything else.

Questions? Concerns? Message me or post it here.

Sent from Tapatalk
 
Last edited:
Back
Top