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!

FlyFF Emulator in Java

Status
Not open for further replies.
Junior Spellweaver
Joined
Aug 2, 2010
Messages
190
Reaction score
90
For a while now I've had plans on creating a FlyFF emulator in Java, but unfortunately my hands have been quite full with other projects. Now that my other projects are near completion, I decided to create a Java FlyFF emulator for several reasons. With the current server source code we have available, our options are limited to C++ and MSSQL. While this is fine in its own regard, I wanted to explore the possibilities of using Java (one that I personally prefer and love to use) and Scala (for functional/procedural programming features) for FlyFF server emulation. Personally, I have quite a bit of time and interest in getting this project started, but I would love some help since I am unfamiliar with FlyFF. (I haven't played it or touched it in the past 5-6 years)

For those interested in contributing to the project, I have the code stored locally on GitHub. Feel free to fork it as it is GPL v3.



N.B.: I just started this project, so there isn't much to show at this point. I apologize for the lack of viewable resources.

Thanks for reading.
 
Skilled Illusionist
Joined
Aug 18, 2005
Messages
305
Reaction score
78
Why would you start a emulator when there are official files out?
 
Trust your senses
Joined
Sep 12, 2009
Messages
661
Reaction score
173
Why would you start a emulator when there are official files out?

Because it's a great learning experience. It's fun, and you can customize it to your own needs. It's also in a different language, if it would've been a C++ emulator I really wouldn't know why though.

Looks like a cool project, good luck with it!
 
Skilled Illusionist
Joined
Nov 21, 2012
Messages
390
Reaction score
213
Why would you start a emulator when there are official files out?

C++ is an extremely fast language, but the creators of the "official files" designed it filled with memory faults and leaks. If it's not properly maintained, C++ can quickly fall out of control, as we can see with FlyFF. Designing it in a comparable language such as Java or C# could result in many of these issues being resolved.

OT: I don't have much time, as I'm into my sophomore year of Computer Science at my state's university. I'll take a look every now and then and leave comments if I see anything out of the ordinary, but good luck with this. It's going to require a lot of time and dedication.
 
Junior Spellweaver
Joined
Aug 2, 2010
Messages
190
Reaction score
90
Why would you start a emulator when there are official files out?

There are many limitations involving C++ and use of the WinAPI. Two of many reasons why I would write an emulator in Java is simply because of multi-platform support and database driver support for MySQL and a handful of other databases. Overall, I prefer MySQL but whatever database you want to use in the end is entirely up to you.

Beyond those two reasons are a lot of personal biases against Microsoft. Unix anyone?
 
Ace of Hearts
Joined
Jul 28, 2009
Messages
739
Reaction score
104
There are many limitations involving C++ and use of the WinAPI. Two of many reasons why I would write an emulator in Java is simply because of multi-platform support and database driver support for MySQL and a handful of other databases. Overall, I prefer MySQL but whatever database you want to use in the end is entirely up to you.

Beyond those two reasons are a lot of personal biases against Microsoft. Unix anyone?

1. Making just about anything other than small applications in java is a mistake honestly.

I will put this as simply as I can, saying java has less limitations than c++ is like saying having a gas powered bumper car that gets 1 mile to the gallon and tends to break randomly a lot is better than having a real car that gets 30+ miles per gallon when you simply because you lack the knowledge to earn a drivers license.

2. the only limitations c++ has is the coder's knowledge and the specs of the computers likely to use it, which java in all circumstances will always get less out of assuming the coders both did things properly

3. As a matter of fact, c++ is cross platform, however most programmers simply lack the understanding that is needed to make their programs cross platform, c++ is not unique to Microsoft at all.

4. you can hate on Microsoft all day, but apple computers are nothing more than extremely expensive paperweights you always get less than you pay for with.

5. for anyone too lazy to Google about c++ being cross platform, one easy example: , there are also ways for mac but as with everything with macs, more trouble than it's worth
 
Last edited:
Joined
Nov 12, 2009
Messages
701
Reaction score
113
Personally I would prefer a well-coded emulator over the official files any day of the week, but the reality is that there will probably never be a successful project (whether led by an individual or an entire team) that would match the efficiency of of official files. If one was well-coded enough to allow different database engines as well as being cross-platform, with an easily readable source that is easily understandable to people other than the original developers, I would make the change immediately.

But like Reimniess said, Java is a bad choice since it's so high level you'll never be able to support the playerbase the officials can. C++ would be the language of choice due to it's speed. plus it's also cross platform as long as you avoid using windows libraries, which shouldn't be a problem for someone used to programming in a unix environment.

Really, you should just focus on making changes in the original source instead of making your own. Unless you're an extremely talented developer, in which case I don't understand why you would spend your time making a Flyff emulator unless you planned on keeping it proprietary and making a profit off of it.
 
Skilled Illusionist
Joined
Feb 3, 2007
Messages
321
Reaction score
67
I think a better question to ask is what the purpose of the project really is. If it's educational then it doesn't matter what language it is made in as long as it matches the requirements set by the creator.

Java or not, if the goal is to create an emulator in Java then that's a good goal.
If the goal is to try to make something better than the official files then no, you're not gona achieve this goal with Java as with only a few corrections and changes the official source has no problems at all (no memory leaks etc).

I look forward in seeing progress in the project, only because I'm interested in seeing people achieve difficult goals and not giving up on them.
So good luck with the project, and don't give up that easily. An emulator isn't an easy project, it'l take multiple months of solid work to even get to a playable stage even using the official source as reference.
 
Ace of Hearts
Joined
Jul 28, 2009
Messages
739
Reaction score
104
with only a few corrections and changes the official source has no problems at all (no memory leaks etc).

unfortunately though I do agree the chances of doing better with java are still extremely low, there are 700+ (a little more than a few, and all very real) unique sources of memory leaks in the official source, there are tools out there (find them yourself) that do a pretty good job at finding them.

the overwhelming majority of those memory leaks you may never see the effects of due to corrupting data that is rarely if ever referenced, however it is still a gamble to leave them to make their mess.
 
Not working on UnitedFlyf
Member
Joined
Apr 21, 2009
Messages
1,385
Reaction score
934
I think a better question to ask is what the purpose of the project really is. If it's educational then it doesn't matter what language it is made in as long as it matches the requirements set by the creator.

Java or not, if the goal is to create an emulator in Java then that's a good goal.
If the goal is to try to make something better than the official files then no, you're not gona achieve this goal with Java as with only a few corrections and changes the official source has no problems at all (no memory leaks etc).

I look forward in seeing progress in the project, only because I'm interested in seeing people achieve difficult goals and not giving up on them.
So good luck with the project, and don't give up that easily. An emulator isn't an easy project, it'l take multiple months of solid work to even get to a playable stage even using the official source as reference.

I'd argue that a fully functional, well designed, and well documented emulator far surpasses the official source, since it has very poor design and no English documentation. That being said, it would be a huge effort to accomplish that.
 
Initiate Mage
Joined
Feb 11, 2015
Messages
51
Reaction score
8
For a while now I've had plans on creating a FlyFF emulator in Java, but unfortunately my hands have been quite full with other projects. Now that my other projects are near completion, I decided to create a Java FlyFF emulator for several reasons. With the current server source code we have available, our options are limited to C++ and MSSQL. While this is fine in its own regard, I wanted to explore the possibilities of using Java (one that I personally prefer and love to use) and Scala (for functional/procedural programming features) for FlyFF server emulation. Personally, I have quite a bit of time and interest in getting this project started, but I would love some help since I am unfamiliar with FlyFF. (I haven't played it or touched it in the past 5-6 years)

For those interested in contributing to the project, I have the code stored locally on GitHub. Feel free to fork it as it is GPL v3.



N.B.: I just started this project, so there isn't much to show at this point. I apologize for the lack of viewable resources.

Thanks for reading.

There are no limits for C++ pal :D

You would be much more limited on Java lol.
 

Lib

Experienced Elementalist
Joined
Oct 22, 2013
Messages
241
Reaction score
80
There are no limits for C++ pal :D

You would be much more limited on Java lol.

His knowledge is limited, but java can be used on Linux. I should support it since it's for educative goals and to give people the oppertunity to use cross platforms.
 
Last edited:
Not working on UnitedFlyf
Member
Joined
Apr 21, 2009
Messages
1,385
Reaction score
934
His knowledge is limited, but java can be used on Linux. I should support it since it's for educative goals and to give people the oppertunity to use cross platforms.

C++ can be used in linux as well... You'd just have to remove the windows-only libraries referenced by the Flyff source, which would be a pain.
 

Lib

Experienced Elementalist
Joined
Oct 22, 2013
Messages
241
Reaction score
80
I know that but if the devs didn't start to make it compitable in the beginning, it's a pain to do it after.
 
Initiate Mage
Joined
Feb 11, 2015
Messages
51
Reaction score
8
I know that but if the devs didn't start to make it compitable in the beginning, it's a pain to do it after.

I don't think that's enough reason to re-build the thing from scratch at all. But for education purposes then, sure :)
 
Junior Spellweaver
Joined
Aug 2, 2010
Messages
190
Reaction score
90
There are no limits for C++ pal :D

You would be much more limited on Java lol.

You're right in the fact that I might be more limited while sticking to Java. Maybe if I get bored enough I'll ditch the WinAPI and DirectX and use the POSIX API with OpenGL.

C++ can be used in linux as well... You'd just have to remove the windows-only libraries referenced by the Flyff source, which would be a pain.

You could already add to the ridiculous amount of ifdefs in the source code and reference the POSIX API. You'll have to ditch DirectX for OpenGL if you want to run it on Mac OS or Linux.
 
Initiate Mage
Joined
Feb 11, 2015
Messages
51
Reaction score
8
You're right in the fact that I might be more limited while sticking to Java. Maybe if I get bored enough I'll ditch the WinAPI and DirectX and use the POSIX API with OpenGL.



You could already add to the ridiculous amount of ifdefs in the source code and reference the POSIX API. You'll have to ditch DirectX for OpenGL if you want to run it on Mac OS or Linux.

Porting Flyff to Linux would be a waste of time, unless it is for educational purposes, not a great amount of people use Linux, and then even less people that use Linux likes to play Flyff lol.

A mobile version would be interesting, the real thing on mobile, not that poop all stars.
 
Joined
Sep 3, 2008
Messages
977
Reaction score
31
I have some files from an Java emulator I worked on somewhere on my old pc, if I find it I will release it & hopefully it'll serve as a good base/reference for your project, good luck.
 
Status
Not open for further replies.
Back
Top