-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Author JSON schema for quest data #115
Comments
Here is a quick draft I made with a reasonable schema layout. (its not in the actual correct JSON schema layout, I haven't checked out how that is) {
"id": "number",
"name": "string",
"type": "quest | miniquest",
"difficulty": "novice | intermediate | experienced | master | grandmaster | special",
"length": "very_short | short | short_long | short_medium | medium | medium_long | long | long_very_long | very_long",
"series": "string[]",
"description": "string",
"image": "string",
"trivia": "string[]",
"freeToPlay": "boolean",
"guide": "string",
"quick_guide": "string",
"developer": "string",
"release_date": "string | date (date probably better)",
"required_for_completing": "number[] (array of quest IDs)",
"requirements": {
"questpoints": "number",
"skills": {
"attack": "number (level)",
"farming": "number (level)"
},
"items": {
"item_id": "quantity"
},
"quests": "number[] (array of quest id's)"
},
"rewards": {
"questpoints": "number",
"skills": {
"attack": "number (XP)",
"farming": "number (XP)"
},
"gp": "number",
"items": {
"item_id": "quantity"
},
"misc": "string[] (any random items/rewards that dont fit into the above"
}
} |
Hey @gc - many thanks for the contribution! This is pretty much what I was thinking about for the JSON contents/schema. Thanks for putting in the effort to do this, and good to see someone else is on the same page on what should be in the JSON structure. I will translate this into the JSON schema format. I will also write a new Note for future me: you can disable a
|
Just looking at an example wiki entry (https://oldschool.runescape.wiki/w/Dragon_Slayer) to see what else is available. The two fields in the "Details" section that I think aren't represented in the proposed schema are the following:
Depending on the status of the monster database (#16), enemiesToDefeat could probably just be an array of ids used to query that db. |
It would be helpful if the schema could distinguish between "required", "strongly recommended" and "recommended" items and skills. Perhaps also providing the reason from the wiki entry - ( Whether or not a skill can be boosted to reach a requirement might be useful to cover as well. |
I have been doing some coding/development into the quests JSON API and general research into the data that is required to be stored. There are a number of issues I have so far encountered, and this is a bit of a dump to keep others informed. I have included a small draft of a JSON object that represents the Dragon Slayer II quest - but it is only partially populated. This should hopefully provide a little example of the desired output. @pmauldin has been working on the quest API, and builder in his
|
I'm not sure I understand the reasoning behind not nesting stuff? Is it because it looks messier? I'm not so sure about that, people will be spending more time using it than manually reading the JSON, and having it stored in the more obvious nested way seems better to me. Also should Should I also think having to manually fill in some data is cool and I'd be down to help out, after its all collected once I don't assume we'd have to recollect data for old quests. Looking good! Happy to see progress. |
@osrsbox Looks good to me! After going through the data in @pmauldin's branch, one more suggestion I would make is to turn the |
Just an update for this issue. I have authored a JSON schema based on the discussion of this thread. There is a new branch called Probably more useful, I have attached a revised version of the Dragon Slayer II JSON file that is similar to the previous comment I made. I have modified the structure based on feedback. I went back to the nested structure as discussed with @gc - thanks for the feedback on this. I also fixed the Thanks to @gc, @Zirro and @pmauldin for providing feedback on this issue. It is great to bounch ideas around in the initial development stages. Example JSON provided below:
|
I agree with Zirro's suggestion, seems smart for it to be Also I noticed the |
New schema looks great! One thing I did want to mention: on my branch, I initially wanted to use the quest release number as the id. However, I found that miniquests don't actually have a release number (at least, as far as I could tell). So we'd have to have some way of dealing with those. I definitely agree with @gc about preferring nested data over flattening. Where do we go from here? Should I update my branch to reflect this new schema, and try to get the automated collection into as good of a state as possible, and then we can turn to manual tweaking of the things that weren't parsed well? Edit: One other thing. In the extracted wiki text , there are entries for both "Tears of Guthix" and "Tears of Guthix (quest)". I assume the former is meant to be for the minigame; however, the content of both is identical and is the wiki page for the quest. |
@gc I have changed the JSON schema to @pmauldin to answer your questions:
|
All sounds good. What I had in mind for the |
As outlined in #113 - we are looking at adding quest data to the
orsrbsox-db
project. To start it is essential to specify a schema for the data to be collected and stored. Similar to theitem_schema.json
, a new JSON schema for quest data should be added to help the building process and testing of the OSRS quests data.The text was updated successfully, but these errors were encountered: