FlyFF v15 - MySQL implementation (Work in progress)

08/27/2020 21:14 DevGrab#1
Hello Elitepvpers,

after years being inactive at the FlyFF scene (a decade), i've expanded my knowledge in programming and especially in game development and networking. So i've started again 1-2 weeks ago to grab the official and clean FlyFF source and updated it to the currently VS19 version including cleaning and restore some of the functions that were there.

Basically, i've experimented with the FlyFF source and especially the whole MSSQL querying progress and came to the conclusion, the v15 official source is still working great on MSSQL but it is outdated and can be reworked hardly, as example the whole threading.. that can today be solved with all the quality std libs.

So i've started to analyze and inspect the first server which is managing all the login and checking if accounts are located at the database (Certifier), and started to fix and update all of the source code. After checking how the querying is done by the IOC i thought about to add MYSQL support for FlyFF, why not?

Grabbed the mysql-connector for the current VS build and started to rework it. Started by re-construct the "account" table and removing not necessary values and also removed a lot of code not needed. (ex. Taiwan time lock)

After re-constructing the whole ODCB in MySQL and removing all the used ODCB code by the certifier. I ended up with a working FlyFF Certifier based on MySQL.

To be honest, the rest of the servers needs to be reworked for MySQL but at least, adding the correct account information to the mysql database and checking for performance, MySQL is working for sure and my certifier works like charm.

I just wanted to show you guys, that it is possible to fully integrate MySQL in FlyFF, even when it may come with some peformance reducing (in relation to query speed) but all of this can be improved.

I know, MSSQL is usefull and i also know that it's better performance wise but that isnt the case..

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Quote:
Account "127.0.0.1"
HEARTBEAT

MYSQL_HOSTNAME "tcp://HOST.net"
MYSQL_USERNAME "flyff"
MYSQL_DATABASE "flyff"
MYSQL_PASSWORD "PW"
08/28/2020 10:59 miniman06#2
Great work, their code is circa the 2000's so im not surprised I hardly see any STL stuff however I don't think that the ODBC is bad by itself there's even a ODBC driver for MySQL, either way rewriting the DB queries portion shouldn't be too hard as they use a wrapper.
since you already start from scratch you might as well take a look at the newer V21 source the cleaned a lot of DB stuff.
I'm pretty bad at anything DB related but Ill be glad to help with anything else, hit me up.
08/28/2020 14:53 Harvey'#3
Quote:
Originally Posted by DevGrab View Post
Hello Elitepvpers,

after years being inactive at the FlyFF scene (a decade), i've expanded my knowledge in programming and especially in game development and networking. So i've started again 1-2 weeks ago to grab the official and clean FlyFF source and updated it to the currently VS19 version including cleaning and restore some of the functions that were there.

Basically, i've experimented with the FlyFF source and especially the whole MSSQL querying progress and came to the conclusion, the v15 official source is still working great on MSSQL but it is outdated and can be reworked hardly, as example the whole threading.. that can today be solved with all the quality std libs.

So i've started to analyze and inspect the first server which is managing all the login and checking if accounts are located at the database (Certifier), and started to fix and update all of the source code. After checking how the querying is done by the IOC i thought about to add MYSQL support for FlyFF, why not?

Grabbed the mysql-connector for the current VS build and started to rework it. Started by re-construct the "account" table and removing not necessary values and also removed a lot of code not needed. (ex. Taiwan time lock)

After re-constructing the whole ODCB in MySQL and removing all the used ODCB code by the certifier. I ended up with a working FlyFF Certifier based on MySQL.

To be honest, the rest of the servers needs to be reworked for MySQL but at least, adding the correct account information to the mysql database and checking for performance, MySQL is working for sure and my certifier works like charm.

I just wanted to show you guys, that it is possible to fully integrate MySQL in FlyFF, even when it may come with some peformance reducing (in relation to query speed) but all of this can be improved.

I know, MSSQL is usefull and i also know that it's better performance wise but that isnt the case..

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
URL Link to IMG