WoW Emulation Essentials: Understanding The WoW Client

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome back to the wow emulation Essentials Series where we'll be guiding you step by step through your modding and development Journeys these first few episodes are broader overviews intended to get you acquainted with all the moving parts of your private server project as we get further along we'll be getting into the nitty-gritty of custom Quest development creature scripting and crafting unique spells today we'll be taking a look at the wow client its various parts and how to get started modifying various files whether you're season modder or new to the world of wow emulation today's episode is packed with essential information to help you take the first step into transforming your private server into something truly special let's get started the World of Warcraft client in an emulation environment the World of Warcraft client serves as the user interface rendering the game World sounds animations and handling user inputs it communicates with the server to fetch and update game State information ensuring that players have a seamless experience as they navigate and interact with the game different versions of the wow client correspond to the various expansions and updates released over the years each client version is tailored to interface effectively with a specific version of the game software for example a 1.12 client is designed for the original version of the game whereas a 3.3.5 client corresponds to the Wrath of the Lich King expansion in its final form this compatibility is crucial because each expansion not only adds new content but often includes significant changes to the game's underlying mechanics and data structures when dealing with World of Warcraft emulation particularly when attempting to retroport or backport content such as items spells or even whole zones from newer expansions into older ones one of the significant challenges is handling the differences in data structure across client versions each client version corresponding to its respective expansion has its own unique set of database client files or DBC files these files are not just containers of data but are structured in specific formats that evolve with each game update for example let's consider retorting a set of items from the legion expansion to a Wrath of the L King environment you might initially think it's as simple is copying the item data from one set of DBC files to another however the structure of these files in leion is vastly different and includes additional fields and possibly entirely different data encoding methods formats enumerations flags and other fields compared to what the Wrath of the Lich King client understands and can process as one might imagine retr porting often results in lost or mishandled information and so the result may not be a one to one depending on what it is you're attempting to convert most significant change in the transition from older wow expansions to newer ones like cataclysm was the upgrade from 32-bit to 64-bit clients this change had profound implications for memory usage and processing capabilities older 32-bit clients are limited to 2 gb of usable memory a cap that can be reached quickly with high resolution textures complex models and extensive in-game content limitation often requires various patches to make the older clients large address aware thereby extending the memory limit to 4 GB on a 64-bit operating system however this is still less than what modern 64-bit clients can handle potentially leading to Performance issues or crashes when handling data intended for newer clients and newer 64-bit clients naturally support more than 4 GB of memory allowing the game to run more smoothly with higher quality assets and more extensive modding without the risk of exhausting available memory often times when you're retorting models even if you're not required to downscale the original image asset still may have fewer polygon counts fewer shaders or might not render correctly at all due to the 32-bit limitation this often times requires not only technical adjustments but also creative interpretations further there are other limitations in place on the wow xexe to prevent certain things from happening such as a hunter being able to use the ranged weapon and melee changing these limitations often requires the use of o01 o or other programs to overcome I've included a link down in the description below for some patches you can use to modify your wow exe for certain features let's move on to the WoW mpq patch is where we finally get into the real mean potatoes of modding you can find these in the client's data folder mpq stands for Mopac which is short for Mike obrien pack named after one of the Blizzard Entertainment programmers who developed the format mpq files are an archive format used by blizzard in many of their games including World of Warcraft Diablo II and Starcraft these archives are highly efficient at storing data allowing quick access to large amounts of data without needing to extract the entire archive this efficiency is partly due to the format's ability to compress files manage multiple versions of the same file and even encrypt data if necessary mpq files and their contents are organized in a way that the game engine reads them according to a specific hierarchy based on their file names this typically follows a sequence where numbers come first followed by letters within world of warcraft's patching system for instance files named patch 2 mpq patch 3 mpq through patch 9 mpq and then continuing with patch a mpq through patch Z mpq are loaded in this exact order this loing sequence ensures that if multiple mpq archives contain a file with the same name version in the archive that is read later in the sequence will override the one read earlier so always make sure whatever you want to prioritize is in your most final patch order in order to access said files you need a tool called ladx mpq editor which I've left a link for in the description below once downloaded you can use it to open these patches and explore the content they're in the contents of World of Warcraft mpq folders are diverse and cover various aspect of the game data these files are crucial for defining the game's Visual and gameplay mechanics here's a breakdown of the types of files and their roles within the game M2 files M2 stands for model the two doesn't specifically stand for anything but differentiates this type from other model formats used by blizzard M2 files are model files used in World of Warcraft they contain the 3D models used for characters creatures in-game objects and other assets these files Define the structure animation and other visual properties of the models they represent they are critical for visual representation of nearly all Dynamic entities in the game DBC files found in the DB files client folder DBC or database client files are essentially database files that the while client uses to store various types of data in a structured format they include information about almost every aspect of the game's mechanics such as spells talents NPCs items Q systems and much more these files are essential for the game to reference rules behaviors and attributes w Mo files wmo or World model object files are used to define larger structures and parts of the gain's environments such as buildings some Dungeons and some static terrain features unlike M2 files which are typically used for objects that require animations wmo files are static and are used to construct much of the game's World architecture blp files lizard packet or pixel layer files are texture files used in World of Warcraft to store graphical textures for models such as skin or armor textures and colors UI elements icons and other textures seen throughout the game essentially blp files are the layers that go on top of an M2 or wmo model in order to give it texture and color skin files skin files are associated with M2 files and are used to define how textures are applied to models these files contain data about the skinning of models which includes how textures such as blps wrap around the 3D models and how different textures interact with various parts of the model during animations interface files XML and Lua interface files in World of Warcraft include both XML and Lua files XML files are used to define the structure and layout of user interface components such as frames buttons and menus Lua files are scripting files used to define the functionality and behavior of these UI elements these files allow for customization and development of mods and add-ons that enhance or modify the game's user interface players and developers can create personalized gaming experiences by altering or extending the game's standard UI adding new features or improving interaction through these interface files for example you know that annoying message that pops up every time you try to delete a rare quality item or higher this is part of the global string GLA and can be modified to no longer require this function if you're curious to explore the content of said files I've left a link in the description down below as well in order to edit any of the content of said files you have to extract said contents First Once done you can use other tools such as blp converter to modify existing elements then place them back in I wanted to use this opportunity to dive a little deeper into the contents of DB files client where all your DBC files should be placed since whether you're retrored items modifying spells or doing any sort of modding you'll likely be modifying these values at some point all of your DBC files can be located in your server's DBC folder and I suggest using these when editing any existing content rather than finding some random dvcs online or searching for for them in mpq patches first thing first you'll need a program called wdbx editor once downloaded you can use it to open any existing DBC file let's start by taking a look at currency type. DBC when prompted make sure to choose the wow client you are working with currency type. DBC is used to enumerate various currencies in the game such as marks of Honor arena points Badges of justice and so on if you wanted to add new items to show up in your currency frame rather than taking up backspace this is where you'd go to do so you'll notice when exploring the file with wdbx editor you're given a little bit of information item item id category ID and bit index if you're ever curious about what each column exactly does I suggest doing a search on Wow dev. Wiki they'll generally provide more detailed information a couple things to note is that often times certain columns will refer to other dbcs in this case category ID refers to currency category. DBC wherein you can look up the various C categories you can put custom currencies in or create new categories entirely anytime you make a modification to a DBC file it's good practice to place it both in your server DBC folder and in your highest priority mpq with all your DB files in my case this happens to be patch y as patch Z does not have any DBC files in it also keep in mind that sometimes you'll need to make core or database changes as well depending on what you're modifying or what core you're using for Azeroth core there's a special flag in item template that is is required to have an item properly show up as a currency so if something isn't working as intended and you're completely sure you got all your edits right chances are you'll need to either modify something in the core or add something to the database via SQL depending on your core certain tools may be available to modify certain DPC files such as Kier or spell editor which can be invaluable in making the process more streamlined and less confusing more on that in another episode exploring the wow client these mpq patches and the variety of files within like M2 DBC wmo blp and skin files gives us invaluable insights into the building blocks of World of Warcraft each file type and each tool we use opens up new possibilities for customization and brings us closer to understanding the full potential of wow emulation with this knowledge we can push the boundaries of what's possible in modding and private server development whether you're a veteran Moder or just starting out the power to shape azoth is literally at your fingertips if you're as passionate about continuing this journey of Discovery and creation as I am and you want to help support the channel or the projects I'm working on you can find my patreon link in the description below make sure to like the video if you liked it subscribe if you want to see more and I will see you guys on the other side of Azeroth [Music]
Info
Channel: Dinkledork
Views: 1,096
Rating: undefined out of 5
Keywords: world of warcraft emulation, World of warcraft repacks, wrath of the lich king, the burning crusade, repack, private server, world of freecraft, wow, wotlk, trinitycore 3.3.5a npcbot repack, warcraft classic, classic wow, wow wotlkc, trinitycore 3.3.5a repack
Id: oI2oPdr2SJo
Channel Id: undefined
Length: 11min 55sec (715 seconds)
Published: Mon Apr 15 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.