Artix Krieger | Friday, April 22, 2022
The next major AdventureQuest Worlds: Mobile meeting is on Wednesday. So until then.... here is everything you wanted to know about how the new AdventureQuest Worlds stores quests differently, but were rightly afraid not to ask.
You know the old saying. "If it aint broke.... re-code it anyway." We have a new system for storing quests. Well, maybe new for us. For the past 19+ years we have been storing quests in a very weird way. Want to hear the story? It starts with one of the oddest things in Artix Entertainment games... "Quest Strings."
Warning! This is a bit of a techy post... read on if you are into that sort of thing. If not, skip to the section entitled "Why it is better!"
You may have heard AE devs talk about "Quest Strings" in the past. Most people probably thought, "Oh, that is a clever name for a series of quests that is uh... strung along." Nope. The REAL reason they are called that is because way back in 2001 (when Dinosaurs still ruled the earth and people used the plentiful incoming stream of AOL disks as drink coasters) the original version of AdventureQuest needed a super cheap and easy way of saving your quest progress. And I did it... >_> in a string of letters.
Yeah. It looked like this....
Want to know how to read it?
Look at the first letter. Well, it is actually a number. It is a 0. That means, you have not started the first quest chain yet.
Look at the second letter.... that spot might be used to store your progress in the DragonSlayer saga. It is a 9. That means on you are on the 9th step of the second quest chain.
This was a super easy and cheap way of storing your progress through a story. It saved a lot of database read/writes way back in the early days. But there was a problem.... with this system we could only have a max of 9 steps in any story!
Easy fix. I used letters O_O. So it went 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E....... all the way to Z. Under this, you could have a total of 36 steps in any quest chain.
Player support used to have to edit these values by hand O_O
What is spooky though... for whatever reason, we just kept using this system as we built new games. AdventureQuest, DragonFable, MechQuest, AdventureQuest Worlds, and AdventureQuest 3D ALL use this.
(Well, until the AdventureQuest 3D team was working on Darkovia and the quest limit drove us mad. Databases are so much more powerful now, and hard drive space is so much more avialable that we just said, "The heck with it" and replaced that whole system with actual numbers. You can now have up to 65,536 steps in a single AdventureQuest 3D quest chain now. )
The new version of AdventureQuest Worlds tosses that system out completely.
*Opens window.... and tosses the QuestString code out into the darkness*
Now, we track the quests with bits.
"You get a bit... they get a bit... everyone gets a bit!"
In fact, your characters will get a bit for every single quest in the game. Real simple. It will be 0 if you have not completed the quest or a 1 if you have.
Since we have to rewrite (or at least re-enter) every single quest in the game anyway, it was a good time to make this change.
This new system will allow us to do things the old quest system could not do.... including branching story paths and multiple choice endings.
The old system, despite its odd simplicity, was actually extremely good for linear story telling. But tracking every quest in the game separately allows for a lot more freedom. A LOT more freedom. (Also lots of good opportunity to accidentally break things when adding new quests :D )
Quests are now smarter, and know what the next quest is and what the previous quest.
Between us, this is something I have wanted to do since the original AdventureQuest. It is a big change, but the more "correct answer" for how to store your quest progress through the game.
Also, Yorumi already finished coding and implementing this. It was a pretty big project from last year.
Join us in the next post to see the new logos Diogon has been creating for the project!
Also.... AQ2D.com is officially (sorta) live!
P.S. To all of my coder friends out there who are still staring wide-eyed, mouth open, in horror at discovering what QuestStrings really are.... imagine what it was like every time we had to write a query fix a specific step in everyone's chain XD