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!

Emulating / Recreating Flyff in Unity3d

Status
Not open for further replies.
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
Hi Ragezone,

I used to play a lot of Flyff back in the day, and I loved private servers. Some of you probably remember I was the annoying little 13 year old going around the forums as The Hot One.

(TLDR @ the bottom)

After coming back just recently and leveling up a new character to hero on eFlyff I realized how great of a game this is and how much potential it holds, but nobody seems to be doing anything about it, rather just milking the player base by offering a new fashion set or overpowered weapon.
I've poked around on the top lists for private servers, and yeah, some of you guys are adding great content to the game, but when it all comes down to it, Flyff is still a pretty boring game after you max out your characters. I'm not here to rant about the game or the private servers though. I'm here to suggest something probably not new (because I've seen failed emulation projects...) but something quite doable.

I feel that creating/recreating Flyff in a modern day game engine such as Unity3d would spark a huge amount of development within the community, and here's a about 10 of the 100 reasons why I think that:


  • Unity is free. It even comes with it's own development environment called MonoDevelop. Oh, and if you don't like that, it also supports Visual Studios 2012 (enterprise and pro!) Aren't you all tired of using vs2005?
  • Unity is an extremely well documented engine that works both with C# and Javascript, which are two extremely easy languages to learn. This is great for new developers that want to get involved in our community.
  • Unity's GUI based editor is extremely simple and intuitive, allowing for new developers in our community to quickly get started with making extensions and custom content. (We should focus on stimulating new developments, because let's face it... there aren't many around here.)
  • Unity is constantly in development by the Unity Technologies staff, meaning we would get new great features and bug fixes with every release and update.
  • Unity's Asset Store contains thousands of extensions and tools for the editor, including , a server networking middleware that can be used to set up the multiplayer aspect of the emulation.
  • Unity supports 20+ platforms. Though it really isn't a big pull for the Flyff community, I have seen some people really wanting to get Flyff working on a Linux machine by removing the references to the Windows-only files.
  • Unity's fully customizable import system will allow us to read/import files such as .o3d, .dds and .ani so we can use them in the editor without spending time converting. (We already have the structures for the file types, so this would be an easy step!)
  • Unity's "Mechanim" animation system will allow us to merge animations(running while shooting a bow, anyone?), create transitions between them, and easily create brand new ones by changing just a few key frames.
  • Using what Unity calls an "Asset Bundle," we can (theoretically... I haven't looked into this yet...) redistribute community releases in the form of mods, which can add custom content like fashion sets and weapons, much like the modding system found in Minecraft.
  • Unity's extendable interface will allow us to make tools that can be used right inside of the editor to quickly create vast amount of content. (Example? QuestWriter, per player InventoryEditor, ect..)
  • Unity has a very powerful lighting/shading engine, as well as great support for particle effects. This would give us a great amount of new opportunities to make the game look better.

Beside all of these powerful features offered by the Unity engine, let's take a step back and talk about the amount of freedom creating the game from scratch would offer. Central version control systems can be set up to allow anyone full access to the source and documentation giving them the opportunity to make big changes to the game if they don't like the vanilla emulation. (This could even include different branches, in case someone wants to branch a v6 emulation rather than work on v19)

TLDR;
This is not a "I'm going to start this project! I hope you guys will help me! (In reality I'll just abandon it after 2 days)" kind of thing. This is a "What do you guys think? I want your input." kind of thing. I'm looking for a project to help me learn the complications of game development, and Flyff already has all of the models and textures, it just needs a programmer.

Unity3d is a powerful piece of software, and I feel recreating Flyff in it would really get this community of developers going again, as well as make it easy for new developers interested in our game to get started with coding in C# and Javascript.
 
Initiate Mage
Joined
Nov 10, 2013
Messages
81
Reaction score
1
First you learn networking. O3d unity not support but if you convert it to .dae or obj it support. Also the mosnter is work but no animation. I created 2months ago like flyff game in mobile but it so hard to make it online. So now I have source code of 3d mmoprg it uses vs 2012 to compile client it was run in android and iphone and windows. But i have not knowledge how can i run it. It is complete source code.
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
First you learn networking. O3d unity not support but if you convert it to .dae or obj it support. Also the mosnter is work but no animation. I created 2months ago like flyff game in mobile but it so hard to make it online. So now I have source code of 3d mmoprg it uses vs 2012 to compile client it was run in android and iphone and windows. But i have not knowledge how can i run it. It is complete source code.

Unity supports the creation of custom file formats through structs using their class. Since we already have the file structures thanks to the help of duotone and others, this would allow us to read all of the custom file formats from flyff and turn them into meshes and animations.
 
Initiate Mage
Joined
Jun 6, 2015
Messages
1
Reaction score
0
Honestly, a friend of mine sent me a link to Unity and I grabbed it immediately and the first thing that came to mind was a 3D Version of flyff lmao.
To be honest my mouth dropped when I seen your topic.
You're probably better off just ripping the idea and some of the armor ideas and going from there if you don't want to face a lawsuit although I don't think there is anything proprietary about their armor designs or even names outside of the title of the game itself.
(Masquerade isn't registered as theirs I don't think?)
I had heard that a functioning quest system good prove to be quite the hurdle; anyways I'm just about to get started with it and see what comes of it.
If anything I'll watch this topic and contribute if I can at all.
Huge supporter of this idea. ;]
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
Honestly, a friend of mine sent me a link to Unity and I grabbed it immediately and the first thing that came to mind was a 3D Version of flyff lmao.
To be honest my mouth dropped when I seen your topic.
You're probably better off just ripping the idea and some of the armor ideas and going from there if you don't want to face a lawsuit although I don't think there is anything proprietary about their armor designs or even names outside of the title of the game itself.
(Masquerade isn't registered as theirs I don't think?)
I had heard that a functioning quest system good prove to be quite the hurdle; anyways I'm just about to get started with it and see what comes of it.
If anything I'll watch this topic and contribute if I can at all.
Huge supporter of this idea. ;]

Thanks. The problem is that I don't have the time or the ability to create the vast amount of 3D models / animations required for a game like Flyff. The whole point of this project would be to use the Flyff files so I wouldn't have to make any.

Also, as for the law suit, I don't think anyone really cares enough or even has enough money to deal with it. Flyff is a dead game, and private servers have been exceeding the player count of the official server for years now. I don't think the owners of the game really care that much.
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
DrEinsteinium - Emulating / Recreating Flyff in Unity3d - RaGEZONE Forums


Here's an image of a Flyff model I converted to Unity as a prototype. I used ATools to convert the 3D models to COLLADA / .dae files, and dragged those right into unity. As you can see, the bones and the animations work (even though it's not a .gif) and you can equip items so the hand bones and it's as if the character was holding it. It was not that simple though, there were 3 main problems that I faced:
  • It could just be ATools that was creating the problem, but Flyff models don't use " ", which are widely used in a lot of modern games, especially in Unity. This isn't a problem in the Flyff engine because they render textures on both sides of the model and they sacrifice all advanced lighting techniques. Unity however, uses texture culling to only display the texture on the correct side of the normals, allowing the lighting engine to better calculate where to shade. I solved this problem by creating a custom shader that does not cull any of the textures. As you can see, I sacrificed the lighting. .
  • Animations imported from separate armatures will not work together. In order to solve this I imported the models into Blender, saved them as .blend files, and appended the actions for each armature to the "master" file.
  • The third problem is that you can't just replace the meshes of the player model with the meshes for armor pieces and expect it all to work. I still have not figured this out, but I'm assuming that using a script to copy the bone arrays to the new model will fix the issue.
So I feel the first two problems can be somewhat avoided(maybe more of the second rather than the first), by created PostProccessor scripts to allow Unity to read custom .o3d, .chr and .ani files. Is there anyone that is able to give me some insight on where to start?

Thanks.
 
Experienced Elementalist
Joined
May 17, 2011
Messages
282
Reaction score
9
DrEinsteinium - Emulating / Recreating Flyff in Unity3d - RaGEZONE Forums


Here's an image of a Flyff model I converted to Unity as a prototype. I used ATools to convert the 3D models to COLLADA / .dae files, and dragged those right into unity. As you can see, the bones and the animations work (even though it's not a .gif) and you can equip items so the hand bones and it's as if the character was holding it. It was not that simple though, there were 3 main problems that I faced:
  • It could just be ATools that was creating the problem, but Flyff models don't use " ", which are widely used in a lot of modern games, especially in Unity. This isn't a problem in the Flyff engine because they render textures on both sides of the model and they sacrifice all advanced lighting techniques. Unity however, uses texture culling to only display the texture on the correct side of the normals, allowing the lighting engine to better calculate where to shade. I solved this problem by creating a custom shader that does not cull any of the textures. As you can see, I sacrificed the lighting. .
  • Animations imported from separate armatures will not work together. In order to solve this I imported the models into Blender, saved them as .blend files, and appended the actions for each armature to the "master" file.
  • The third problem is that you can't just replace the meshes of the player model with the meshes for armor pieces and expect it all to work. I still have not figured this out, but I'm assuming that using a script to copy the bone arrays to the new model will fix the issue.
So I feel the first two problems can be somewhat avoided(maybe more of the second rather than the first), by created PostProccessor scripts to allow Unity to read custom .o3d, .chr and .ani files. Is there anyone that is able to give me some insight on where to start?

Thanks.

Hey mate what is the file of that male prototype in flyff model .
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
brent2421 said:
Hey mate what is the file of that male prototype in flyff model .
The male and female players are comprised of multiple body parts, and they all share the same .chr(bone) and .ani(animation) files. The files for the male models are named something like "Part_maleX.o3d", where X = Hand, Foot, Hair, Head, Lower and Upper. Flyff does it they way so they can just tell the render engine to render a different mesh when the player puts on armor, and when they have none on, it renders the default parts.
 
Last edited:
Joined
Dec 25, 2012
Messages
85
Reaction score
149
Open the exported collada files with any text editor and you'll see the normals, so you probably do something wrong when creating the model in Unity.
Secondly, double sided material is an option when editing effects, by default face culling is enabled (CCW order).

However, good luck for your project, it could give something really interesting ;)
 
Last edited:
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
Open the exported collada files with any text editor and you'll see the normals, so you probably do something wrong when creating the model in Unity.
Secondly, double sided material is an option when editing effects, by default face culling is enabled (CCW order).

However, good luck for your project, it could give something really interesting ;)

Thanks :) I'm not trying to use collada files though, as that was only to prove it could be done. How would I go about making a C# class that can read the .o3d files and turn them into meshes?
 
Initiate Mage
Joined
Dec 11, 2012
Messages
7
Reaction score
9
Code:
        Mesh mesh = new Mesh();
        GetComponent<MeshFilter>().mesh = mesh;
        mesh.vertices = o3dVertices;
        mesh.uv = o3dUVs;
        mesh.triangles = o3dTriangles;

done
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
Code:
        Mesh mesh = new Mesh();
        GetComponent<MeshFilter>().mesh = mesh;
        mesh.vertices = o3dVertices;
        mesh.uv = o3dUVs;
        mesh.triangles = o3dTriangles;
done

Okay thanks, but I don't need help with the Unity side of it. The problem is that I have no experience working with files and extracting the data from them. Using the file structure that duotone provides in his post, how do I apply that to my program?

Obviously I have to create the structure in C#, but what do I need to do after that? I've only ever used Java to read text files QQ.
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
@MisterKid Yeah man I saw your post a while back. It half way inspired me to start this discussion. I definitely feel that unity could make for a great map editor. I think something that a lot of people don't realize about the engine is that its entirely modular. That means you can write your own scripts to extend the editor interface. If I was going to make a map editor for Flyff, I would make sure to have all of the o3d objects loaded first, and then create an editor window that lists them all in different categories. That would make for a really efficient workflow.

petroli Let's not be rude. It's in the showcase section and he can show whatever the hell he wants lol. It hardly matters if it's finished or not.
 
Joined
Jun 19, 2009
Messages
1,491
Reaction score
460
You can barely call that "something"..
It is a proof of concept.
Also this is a development forum if you only want completed released stuff then I think you shouldn't post at all and be that one hidden guy downloading "completed" stuff.
A good thing about forums like these is that you can show things and get feedback on and even share maybe someone could use it in the future.
 
Not working on UnitedFlyf
Member
Joined
Apr 21, 2009
Messages
1,385
Reaction score
934
This sounds like an interesting educational project, but for the sake of discussion, why not UE4? From what I've heard, unity's debugger is pretty poop. I think Unreal Engine or Cry Engine would much better fit MMORPG requirements. I'm not too familiar with Unity, but I would imagine UE or CE would have better framework for making MMOs.
 
Initiate Mage
Joined
May 11, 2015
Messages
23
Reaction score
11
This sounds like an interesting educational project, but for the sake of discussion, why not UE4? From what I've heard, unity's debugger is pretty poop. I think Unreal Engine or Cry Engine would much better fit MMORPG requirements. I'm not too familiar with Unity, but I would imagine UE or CE would have better framework for making MMOs.

I definitely agree that UE or CE would be great for creating mmos, as they are very powerful engines with amazing capabilities. I've played dozens of games in both of them, and damn, I have been nothing but impressed with how smooth the games feel despite my graphics card probably melting out of my computer. (Crysis or Farcry, anyone?) But before starting some type of war about which engine is better, I personally just find Unity much easier to use in many different aspects, including the scripting languages used, the interface provided, and the tutorials available on their website.

I'm also not sure how long ago you heard that their debug system sucks, because I find it quite useful. Along side breakpoints in Visual Studio and a pretty handy frame debugger window, you get a nice little profiler that can display graphs showing you anything from the cpu usage, active rigidbodies in the scene, how many verts are being rendered, and more, all per frame. It also tells you which method calls are using more cpu than others, and some other neat features. I haven't been using Unity for too long, so there was probably some point in time where they didn't have these things, but who knows.

In the end, I chose Unity because I'm comfortable with it, and I'm comfortable enough to help people learn how to use it if people actually want to collaborate on a project like a Flyff emulator. I don't really see this being a 100% super serious project anyways, but with the right steps taken, an easy to use Flyff 'platform' can be created where people can branch off from the project and create their own content, which is really my only goal.
 
Initiate Mage
Joined
Feb 11, 2015
Messages
51
Reaction score
8
It is a proof of concept.
Also this is a development forum if you only want completed released stuff then I think you shouldn't post at all and be that one hidden guy downloading "completed" stuff.
A good thing about forums like these is that you can show things and get feedback on and even share maybe someone could use it in the future.

A good thing about forums is that I can express my opinions, right?
 
Status
Not open for further replies.
Back
Top