[DEV] Keira3: the future DB editor for AzerothCore
FrancescoBorzi opened this issue · 15 comments
Introduction
We've already been mentioning and discussing this topic here and there, however I wanted to open this thread and make it official:
I and my brother Helias are planning to create a new DB editor application for WoW 3.3.5a, fully compatible with AzerothCore.
It will be of course inspired by its precedessor Keira2 that we previously created:
Keira allows the user to edit the database via GUI and generates automatically the SQL code for him/her. It is inspired by the old Quice/Truice database editor, originally developed by indomit, and by the Discover-'s SAI Editor.
Keira3 features and differences with Keira2
Keira3 will be built using web technologies (more details below), but it will be a cross-platform Desktop Application. We already felt that this would be better for our user base, and a poll on Discord confirmed it:
The initial version of Keira3 will have the same basic features of Keira2, that include:
- Editor for SmartAI
- Editors for Quest, Creature, Game Object, Item, etc...
In addition:
- Execute SQL directly from the editor
- No dependency on web APIs (the app installation procedure will be much simpler compared to the current Keira2)
Then we plan to introduce more features, but those will be part of later 3.x releases.
Technical details
We plan to create Keira3 using the Electron open-source framework, a tool written in C++ that allows you to build cross-platform desktop applications using web languages (HTML+CSS+JavaScript). Many modern desktop applications are built using this framework, including Discord, Visual Studio Code, Atom, Slack, Skype, etc...
Keira3 will be entirely written in TypeScript, a superset of JavaScript that allows you to build software using modern OOP techniques, and using the new Angular framework from Google (not to be confused with the old AngularJS framework).
Why not just updating Keira2 instead of creating a new app?
We created Keira2 in 2015 as web application using the old AngularJS framework which is no longer actively developed by Google. So that should be upgraded. The same can be said for other dependencies. Also Keira2 relies on a web API that I've created for TrinityCore just as a proof of concept, and it should be properly refactored and updated. It's just too much work and it's not worth it.
In addition, we want it to be an independent desktop application, not a simple web app. For these reasons a full rewrite is the best way to go. We will however benefit of our experience and some algorithms from Keira2.
When will Keira3 be released?
We plan to start the development soon, however we can't predict how much time we will take. We will work on Keira3 during our free time, just like any AzerothCore-related activity. But we are also busy in our RL with studies and jobs to maintain ourselves. If you want to support us, you can help with a donation.
The more donations we get, the more time we can invest on Keira3 development.
great i am already looking forward to version 3 and that it is compatible with AzerothCore
I've started working on Keira3, the source code is now being published, please give us a star:
https://github.com/azerothcore/Keira3
It is not ready to be installed and used yet. My plan is to release an MVP having the Creature editor, in order to start collecting useful feedback. Then all other features will be implemented before the 3.0.0
stable release of Keira.
I work on Keira3 during my spare time, you can support me with a donation.
First Keira3 MVP has been released!
https://github.com/azerothcore/Keira3/releases/tag/v3.0.0-alpha.0
Please report any bug in the official repository.
I wanted to ask a question: Does Kiera3 work with a TrinityCore Database or is it exclusively for AzerothCore?
Exclusively for AzerothCore
@JohnnyMccrum
Not sure if you meant TC 3.3.5 or Master but I'll try to answer both.
At AzerothCore we made an effort to change our DB structure in order to make it similar to TrinityCore 3.3.5. One of the reasons was indeed gaining a better external tooling support. As a result of this, AzerothCore DB structure is now very similar to the TC 3.3.5 one, however there are still some differences. You can find more details about it here: azerothcore/azerothcore-wotlk#1118
For the same reasons I've also worked in past to make TC 3.3.5 structure similar to TC master branch.
That said, I can tell you that some features of Keira3 might work out of the box for other emulators/game-versions and other features might be broken (no idea how much broken they can be). It all depends on the DB structure differences.
I personally work on Keira3 during my free time so unfortunately I can't afford supporting/testing other emulators or WoW versions.
Just to mention, on Keira2 we tried to support both 3.3.5 and 6.x but that wasn't perfect and took us a lot of time which probably wasn't paid off.
If I had more time (which I don't) I would rather spend it in aligning TC(master)/TC(3.3.5)/AC(3.3.5) database structures in order to gain many benefits from it, not only sharing the same tools. Everyone is free to help with this.
I hope I gave you enough information.
EDIT: I wrote a post dedicated about this topic here: https://github.com/azerothcore/forum/issues/43
I was referring to 3.3.5. I guess the answer is: "Most of the time yes, but sometimes no."
Working on both Master branch and 3.3.5 seems like a lot of work considering the differences in Database structure, surprised you're planning to actively support both within the same program.
I use TrinityCore currently so I'm glad to hear that you're planning to align to the structure of TrinityCore which will allow for compatibility with other DB's.
Interesting Project and I'd be glad to let you know how things are for TrinityCore users. Unless I migrate to AzerothCore.
surprised you're planning to actively support both within the same program.
Sorry if I wasn't clear enough, but I do not plan to support both, for two reasons:
-
I can't afford it because I don't have enough time, so AzerothCore will be my only development platform.
-
I believe it would be better investing time and energy to actually align the DB structure, rather than trying to support different structures in one tool. You are welcome to help with this.
New minor release:
https://github.com/azerothcore/Keira3/releases/tag/v3.0.0-alpha.1
good work! will probably use this in the future
every time i try to open it on pc it sayas i dont have permission and closes right away
@bigroy1975 what if you open as administrator?
@bigroy1975 not sure what the issue can be, for me it works fine. Let's discuss it on Discord ok?