Development Diary 9/24
Welcome to the Weekly Development Update, programmer edition by yours truly!
The DBC Editor:
Legacy's DBC Editor is easily the subject of envy when it comes to the Warcraft editing world. It is an incredibly powerful tool, equipped with intelligent searching tools and editing. Previously, to say, create a new race, our developers would have to go through the entire file until they find the row with the filename, then find all similar rows, and then copy all 100+ of them one by one and rename each path one by one, and also copy every single other variable in each column. Now, we are able to extract all lines with a path starting with something or ending with something or containing something, copy all of them, place them into the latest ids, with the exact same data as the previous rows, all with one button. With another button, we are able to select all of these rows and intelligently replace pieces of words and replace them correctly. Now, a 12 hour task takes roundabout 12 seconds. Another example - we have had consistent game crashes every time we exit. The problem has been uncovered, with thanks to Varen, as a problem with misplaced identifiers - they are incorrectly placed. To the common editor, such a task could take hours. With this editor, we are able to sort all rows by id by just clicking the ID column, and then outputting. Hours of modifications become two seconds.
The MPQ Extractor / DBC Importer:
This is no program, but a powerful script. Years ago, when the Warcraft private server scene was younger, around the time Cataclysm entered the alpha, ambitious editors began extracting models from the expansion and placing them into the patches, allowing them to be world edited in. Alas, it was in vain for world building, because every single model needed to be inserted into a DBC file and also made into an object. Dedicated server administrations tried getting their teams to sort through the model viewers and list the paths one by one, but it was in vain. A programmer long ago, DarkSpyro003, realizing the potential here, created a script that extracted those files and inserted them, and after writing the script, within seconds was able to create a DBC file with every single Cataclysm model path and an SQL file with every single Cataclysm object, and released it to MMOwned, or in modern times OwnedCore: the GOBJECT9000 patch. Our patch, I like to call the GOBJECT900000 patch. We have created a modern version of his script, and, should we desire it, we have the ability to import every single Mists of Pandaria and every single Warlords of Draenor object into Patch 3.3.5a. We have turned all our imported models and custom models, with this script, into objects in the game, which the builders have done an amazing job adapting to and beautifying the world in ways you couldn't believe. Within moments, we can import any model or any list of models and turn them into objects.
We have many longterm projects we have in plan, that will not only revolutionize Legacy, but all World of Warcraft editor and emulator technology.
The Game Master Toolbox
Game Masters are the moderation wing of Legacy, but are also the guardians of the game world. While the developers develop, the leads lead, the storytellers tell stories and the players play, the Game Masters are also responsible for sorting problems that may arise ingame. Too sadly, many problems they encounter force them to run to the programmer, as they are unable to solve them themselves. This object is bugged, the supervisor deleted it from the database but we must restart! We want new creatures, please add them to the database and schedule a restart!
Restarts. Annoying things, mostly because the whole point for a restart is to enact a new build, not to reset one little thing, which is an unfortunate TrinityCore limitation. We have a category of commands that revolutionized the way TrinityCore handles creatures and game objects to the point where the idea of a restart is not needed. Not even for the the sake of new items, or new creatures, only for new patches and expansions, barring unexpected bugs that may inevitably unveil during initial release.
Soft Restart:
The soft restart category of commands will allow us to "reset" parts, or all the game world and recache without disconnecting players. The server normally takes no more than 4 seconds to come back up, but with this method you would barely notice a thing. You won't lag for four seconds, but things will change over the course of various .1 seconds. All npcs around you, in the rare event where a mass creature reload is require, will vanish and repop where they were doing what they were doing in a span of a few instants. A message you sent may delay for half a second before appearing if you sent it while the communication channel is rebooting, and so on.
This will allow us to perform what is in modern times known as live maintenance. We will only require offline maintenance during new patches, and that maintenance basically constitutes a restart, the whole purpose of which is to actually throw you out of the game so you can download the new patch. In most circumstances, you wouldn't even need that; our launcher has the power to predownload the patch and keep it in hibernation until we schedule the patch for release. And better yet, you are unable to log in without the modern patch! Your World of Warcraft will inform you of the need to update. In short, the aim of this system was to smooth out roleplaying for us all and to make sure your experience will not be interrupted outside of new content releases.
This was only a taste of the technology we now have and, indeed, have planned.
The Storyteller Toolbox
I hear this grievance too frequently. Copy me this creature and give it a new model and new name, I require it to place in this area! I need an npc to possess and act as the player guide, I guess I'll have to roll a character. I need to create a boss, wait do I seriously just stack this buff and that buff and call "Minor Demon" the big bad boss?
Creature Management:
The innovation of soft restarts has paved the way for other commands to abuse it. Storytellers can now copy any creature they like, and from that point on, a set of commands that are normally only available to the administration is opened for them to use on the npc they have cloned. They can insert this new entry into memory and into the game world live without the need for a restart, and also to change every single field. Level range, which script it uses, what are its resistances, its type, its name, its subname. What are its unit flags, is it invulnerable? What is its health modifier, ten times, half? What is its unit class? What are its npcflags, can you right click it and use the creature as a mailbox?!
In the grand scheme of things we have planned to revolutionize the power of Storytellers, this is a drop in the bucket. Months ago, I previewed the system I called LOCE - Live Object, Creature and Event AI - to Baelmun and displayed its commands and capabilities, and he may well still be in shock! But more on that later, it is not even certain it will make it to launch, as once I became Head Programmer I had more important tasks to attend to. But this is a taste of some of the things I really wanted to share with you guys for a while now! I can't go revealing all our new tricks in one post, now can I? Where's the fun in that?
You can bet Legacy is coming!









