Replies: 6 comments 7 replies
-
My first remark is that I'd like to get a definition for every build we possibly can even if it is just meta dumps before moving on to v2. This will 1. give us a good base for version 2 so we can focus on the spec more than the data and 2. should increase the rate of adoption. This should also be a very achievable considering we have the tools now. Adoption: In regards to the modding community, the biggest issues are favouritism and project longevity. Most modding is happening on WotLK/Vanilla cores as either they are nostalgic favourites and/or their project has spanned several years. At the moment we aren't catering for them however we must do so if we want adoption to increase - ideally we should focus on getting end-of-expansion definitions 100% correct. The unfortunate side-effect is that most modders were raised using abandonware such as MyDBCEditor and WDBX and continue to propagate it to newcomers. As these tools are abandoned we can't target them directly but we could maybe maintain a set of profiles, DBD branded, that these tools support to introduce people into the DBD ecosphere until another tool (like DBMonster or DBClientFiles.Net) that supports DBD comes in to replace them? In regards to parsers in other languages - this will happen organically once the format is adopted by more people, so I don't feel this is something we need to focus on just yet - something for v3 maybe? Version 2 changes:
Implementation/migration * I've been thinking for a while that maybe we should create a gist or repo that replicate's the wow.tools tactkey page that doesn't hit the site. |
Beta Was this translation helpful? Give feedback.
-
TrinityCore here My 2c Adoption: Naming: |
Beta Was this translation helpful? Give feedback.
-
I hope to have time to merge the sorting stuff you did as well as update the tools to support sorting (and automatically sort each automatic merge). Update: done.
Additional metadata file sounds okay to me (maybe we should call it .dbdmeta HEH). Not entirely sure how to deal with versioning, build/build-range/layout could work but we'd have to have the changes for those for v2 pretty cleared out.
Sounds good to me.
Yeah, that's better.
Yeah, it is getting a bit crazy now. 283 new keys were added in the last 5 days alone. Separate repo for this sounds good. |
Beta Was this translation helpful? Give feedback.
-
Mangos here - although a little late to the party. I love the approach and agree that this should be as widely supported as possible, i have been working on a suite of DBC/DB2 handling apps which are multiple expansion compatible and I was originally using a format which I devised myself - Which isn't a million miles away from this format. I'm happy to make the switch to using this (and V2 moving forward). Obviously our primary focus is Classic through to Mop ATM. |
Beta Was this translation helpful? Give feedback.
-
I've started writing my own server for fun and wanted to auto generate a DBC library for Rust. I ended up using the xml definitions created by ChaosVex for the Ember project primarily because:
I actually looked at this project but decided against using it because:
Both of these are actually IMO relatively easy to solve, although I probably don't have the same depth of knowledge about the subject that you do, so there might be something that nullifies my ideas. In order to ease the access to the information I would have CI create a json files that are automatically updated with every commit to master. This makes the information available to basically every programming language without needing to parse the custom DBD format. It doesn't even really have to be a good format as long as it's predictable, so you could probably just dump whatever the existing python script creates. For enums/flags I would suggest just adding to the v1 format in order to get the information out there and get experience with what works and what doesn't before v2. I suggest a syntax akin to something like this:
I know that race is actually a foreign key into the race table, it's just an example since I can't come up with anything else. Let me know what you think. |
Beta Was this translation helpful? Give feedback.
-
With WoW.tools having bit the dust when 10.1+ comes looking I'd like to get that manifest file going this year still so tools like wow.export and other tools will continue to have a way to map DB2s to FDIDs as well as having proper capitalized names without relying on the listfile being updated. Enums and flags (as discussed in the above post) are important to get documented/standardized too but with less haste. Relevant part of OP:
Simca's current format looks like this:
This does not list filedataIDs and we have to keep in mind that DB2 and DBCs for the same table have different FileDataIDs. Continuing on with the above idea gets us to something like this (option 1):
With tablename, tablehash and a comma separated list of FileDataIDs (dbc, db2 and whatever else they do in the future). With .scn files also being added for a currently unknown purpose, we can add another column for those after the table filedataids if they ever become relevant. This format should also support unnamed DB2s, of which there are currently 5 in 10.0.2. Dumper can't dump these as they obviously don't have definitions (or they'd be named). We already dealt with these previously and named them UNK_.dbd in the definitions at the time. There's only one problem I can think of with the above format and that is how to deal with "optionals" (such as unnamed DB2s or files with no known FDID if they were removed before FDIDs were added). Something along the lines of this could work for that, with Option 2:
This file (both options) would both be automatically updated by the dumper (which knows about the name, hash and filedataid) as well as manually editable for unknown DB2s. As for placement, I'm not entirely sure yet, but maybe in the root directory as "Manifest.dbdm" (DBD manifest) or something along the lines of that. Suggestions there are very welcome. Also tagging @QartemisT and @ferronn-dev for feedback on this as they've both expressed interest in working on WoWDBDefs in the future. |
Beta Was this translation helpful? Give feedback.
-
Last month, DBD turned 2 years old. 🎉 It's been quite the ride so far! We're still in the middle of things and will hopefully soon (update: now merged) merge in the pre-wod branch @barncastle has been hard at work on as well as to continue working through the backlog of 6.x/7.x versions we're missing.
Adoption
Adoption still isn't at the point we initially wanted it to be. Why is this? Is it the lack of interest in WoW tool development or is the format too annoying to deal with? Not enough libraries out there to deal with DBD? What can we do to improve this?
Version 2 changes
Throughout this time I'm sure some of you have grown to miss/dislike some things in the current format and with Shadowlands Beta slowly coming to an end changes-wise, I thought this would be a good time to start discussing a possible v2 of the format. Hopefully we can get to a good proposal that we can spend some time on implementing when things calm down in a few months.
A good starting point might be some of the things that were left in the initial format discussion, such as adding enums and flags to the format. I currently deal with these by manually keeping them up to date in the WoW.tools repo, would be cool if we can somehow integrate these into the format if enough people agree. The same goes for flags. No idea how we should handle conditional enums/flags, though.
One thing I'd like us see add (and have discussed previously) is adding a file that combines the tablehash, filedataid and name of DB2s as a way to deal with unnamed DB2s. This idea is based on @MMOSimca's
TableHash.cfg
, but with theFileDataID
added too for if the file is unnamed and to possibly help readers with loading them from CASC.Also, there are still some open issues such as #40 and #51 that we should tackle here if they need format changes.
Implementation/migration
I'd suggest starting off with a new directory, maybe named "v2" instead of definitions. How to handle DBDv1 going forward is up for debate, but the easiest route when we do switch to primarily v2 will probably be to have some GitHub action run DBDefsConverter which will output v2 -> v1 or something.
Disagree with something? Did I miss something? Post below. Issue will remain open for quite some time until we come to a general consensus like last time.
Beta Was this translation helpful? Give feedback.
All reactions