World of Warcraft® Programming: A Guide and Reference for Creating WoW Addons, Second Edition. Published by. Wiley Publishing, Inc. Crosspoint. Written by a duo of authors who have each contributed a number of successful WoW addons, the book offers an overview of Lua and XML (the programming. Get Instant Access to PDF File: #0cc79db World Of Warcraft Programming: A Guide And Reference For Creating Wow Addons By James.
|Language:||English, Spanish, Indonesian|
|Distribution:||Free* [*Registration Required]|
Co-Author of two books about World of Warcraft: ▻ Hacking World of Warcraft. ▻ World of Warcraft Programming: A Guide and Reference for. The #1 bestselling programming book is back with updated and expanded World of Warcraft (WoW) is currently the world's largest massively multiplayer. World of Warcraft is a massively multiplayer online game in which you assume control of a character who is part of the . As such, World of Warcraft isn't hosted from a single computer. An old programming acronym of “Mobile Object Block .
This is called registering your event. Second, you can tell the XML to run a piece of code when a UI Element is manipulated such as clicking on it or moving your mouse over it. These pieces of code that run in response to events are called "functions" or more precisly "event handlers". Functions Functions are groupings of code that accomplish a specific purpose.
On one hand, there are numerous pre-defined functions provided by WoW. And on the other hand you can make your own user-defined functions. Scope will be covered in more depths shortly. This is what gives functions their power. Each time you call the function, you can supply a different set of arguments and get different results based upon them.
Here is where you do calculations, comparisons, call other functions, etc to get the task of the function done. The end keyword simply marks the end of the definition of the function. Note that this only defines the function.
The function is not actually run until some other piece of code calls it. For more information on functions, please see the Lua 5. Also see the Lua page which lists more Lua resources. This function is named HelloWorld and it has zero arguments.
The code part is simply the print "Hello World! And it ends with end. This is a fine piece of code, but by itself it's useless unless something calls this function.
Onward to UI Elements aka Widgets. WoW uses XML to layout everything that you see on the screen. Additionally, when things happen called "events", remember? We will see shortly how we tell WoW which widgets we are interested in and which events we want to be handled by which event handler. What identifiers from here on called "tags" exist and how they're organized can be defined in something called an "XML Schema".
For most addon developers it a magic formula that you always put in every. Blizzard defines the UI widget in UI. The XML user interface page has a good list under Widget Elements which will aid you until we get further along. The tag is closed by an "end tag" with the same name as the tag i.
Tagnames do not have spaces and are case sensitive. A valid tagname might be 'BackgroundWidgets', whereas 'backgroundwidgets' would not be valid. Everything between the tag and the end tag is the content of the tag. Even other tags along with their content. This is because this tag doesn't require any additional content other than the name of the file.
Our frame tag is included as content to the Ui tag and so goes between the start Ui tag and the end Ui tag. Notice that the 'Frame' and 'Script' tag are completely surrounded by the 'Ui' tag. Inside the frame, one of the many things we can define are Scripts. Scripts are nothing more than small pieces of Lua code. Where we place the script determines when it will be invoked.
Because Scripts live within a Frame we include the 'Scripts' tag inside the 'Frame' tag. Notice the difference, in the 'Scripts' tag, the 's' sets it apart from the 'Script' tag. Not every widget has the same set of events. In this example, we are interested in an event named 'OnLoad'.
The OnLoad event happens when the widget is loaded into the UI. For this example, we want the OnLoad event to run the script named HelloWorld. This script was defined in the HelloWorld. The complete HelloWorld.
It is important to note that content in a WoW.
The only valid place for a piece of code is under the tag for an event. Having gotten this far, it is time to run your new AddOn. The contents of these three files should be exactly as listed above. Now start World of Warcraft and log into your account, but don't select your character yet. Please click the red 'AddOns' button on the lower left of the character selection screen to see all of the AddOns WoW has detected.
You should see your new HelloWorld in this list. The name should be yellow, and the checkbox to the left should be checked. If the name is Red and you see an Out of date message to the right, you probably didn't change the Interface: line in your HelloWorld. Please review that section and make the appropriate change. Nearly every patch that changes the UI level has had problems with old AddOns that have not been updated to conform to the new UI standards.
If you don't see your new AddOn at all, make sure that you have placed the HelloWorld folder in the right folder called "AddOns" and that the files inside the "HelloWorld" folder have the right names and contents.
A note for windows users: make sure that you don't accidentially save your files as "HelloWorld. There is an option in windows explorer will hide the. Please note the case upper-case vs. Also, inside the game itself, World of Warcraft is sensitive to the case for the names of its variables and filenames. Keep the case the same to avoid problems. Now, you have a yellow "HelloWorld! Note the!
In the future, we will see how to change colors and languages. If you move your mouse cursor over the HelloWorld name, you should see a tool-tip pop up with two lines in it. The first line is the same as the title, and the second line is taken from the Notes: My first AddOn line in the. This can also be customized for color and language. Chaotic Worlds It is common for players to promote unity and argue against fighting within guilds so as to unite and successfully fight a rival faction Brignall and VanValey, A popular activity for players in WoW is raiding.
This involves a large number of players cooperating together, often for hours at a time Bardzell, Bardzell, Pace, and Reed, Using a combination of ethnographic observation, interviews, chat and video analysis, Bardzell et al.
Raids involve encounters with mobs enemies that can often be chaotic. In order to avoid this, the authors suggest that players should try to distribute the threat of mobs across the members of the group. Aarseth investigated the notion that Azeroth the world within Warcraft is a crafted, fictional world, and questioned its worldliness. Blizzard Entertainment has put in a lot of effort to make Azeroth a rich platform for play experience to give players the impression of a continuous landscape consisting of challenging tasks, sights and beings.
Azeroth is a pre- programmed landscape and once a mob has been killed by a player, it is revived by the system minutes later, ready for the next player. Klaztrup argues that understanding death is an important aspect to understanding the complexity of WoW.
Every player will experience death many times during their adventures in the game world. Death in WoW does not mean the end of the character. After a short time the character will be resurrected and can continue playing in the world.
Designers of WoW hold the perspective that death in the game is seen as a way to teach players to handle the aspect of the game in a more successful way. Rettberg investigated questing in WoW. Quests are tasks in the game which players are asked to perform. Every quest has a clear structure. The quest starts with a quest giver who provides a background, gives some objectives, and offers a reward for successful completion. Rettberg argues that this clear structure means that certain patterns emerge during the course of questing.
All games have rules, and WoW is no exception. Rules are made by the designers of WoW and are supposed to be followed by players. Schultze and Rennecker describe WoW as a fantasy game with a progressive rule structure where social norms develop around designer intended rules.
However, there are various ways in which players can break the rules Mortensen, Both of these examples are illegal in WoW. There are a number of studies which have looked into the social interactions that exist in WoW. Sherlock investigated how grouping is mediated and the expectations players put in place when they participate in groups.
Chen et al. Nardi and Harris , investigated how different kinds of social interactions, from brief informal encounters to highly organized play in structured groups, affect players enjoyment. Nardi et al. Chen and Duh attempted to understand the social interactions that exist between players and developed a broad framework to better understand these interactions. Chaos involves the study of phenomena exhibiting a sensitive dependence on initial conditions. Therefore, if any parameter in a system is slightly changed, very different results can occur Pickover, Chaos can also be thought of as how something changes over time Williams, The existence of chaotic systems is now well established in mathematics, ecology, meteorology and similar non-social science fields Gregersen and Sailer, In their paper, Gregersen and Sailer argue that some social behaviour is unpredictable and hence inherently chaotic.
Existing social entities, such as groups, institutions, or organizations with identical initial states and identical environments, may exhibit completely different behaviors even though their behavior is governed by the exact same set of rules or laws.
There are a few examples of chaos theory used in information systems. Dhillon and Ward used chaos theory to discover patterns in complex quantitative and qualitative evidence for the nature of information systems. McBride reviewed organizational literature relating to chaos theory and formulated a number of key concepts which should be incorporated into an interpretive framework for the analysis of chaotic systems.
These concepts are described in Table 1. Chaotic Worlds Domain of Interaction Systems can be defined by a bounded space, which encompasses all possible states that a system could be in. Initial Conditions The set of initial states for the information system at the start of a period of change. Strange Attractors Patterns of behavior that information systems and actors can exhibit over time.
Outcome Basin A subset of possible bahaviors within the domain of interaction, within which the strange attractor iterates.
Events and Choices During an information systems life cycle, events occur and choices are made which can significantly influence the role in the organization. Edge of Chaos A system may be in a stable state until internal or external events and choices made by participants drive the system towards a critical point where dramatic change results Bifurcation A change in behavior of a dynamic system.
Iteration A cycle of repeating behavior of a strange attractor. Aperiodic cycles of interaction amplify initial conditions which contributes to the evolution of the system.
Connectivity Knowledge flow which exists because of the interactions between actors, either human or machine. The collection of data in netnographic studies usually involves participant observation and interaction with community members Myers, One of the researchers began playing WoW for a few hours per day.
The researcher completed a large number of quests and a couple of raids with multiple characters.
Extensive field notes were recorded during play time. This involved screen captures WoW provides the ability to record the game in movie files and note taking. At the time of writing, the researcher had obtained one level 55 character, and one level 64 character and a number of lower level characters.
Both high level characters were members of guilds. The researcher also spent considerable time reading and researching WoW through wowwiki.
Considerable time was also spent discussing play tactics with other WoW players. The field work lasted for six months. The total play time for this study was hours. The first example, questing, will show how chaos theory see Table 1 above can apply to solo players in WoW.
The second example, raiding, is where multiple players must interact together in order to achieve a common goal. Questing Questing is one of the first things a new player will do as they enter WoW. If the player right clicks on a quest-giver, a player may then choose to accept or decline the quest Figure 1. A quest usually involves a series of activities.
Upon completion of the quest, the player is rewarded with experience points, money, an item, or any combination of these. Once enough experience points have been collected by a player, they can proceed to the next level. Levelling is one of the most important aspects of WoW, as each increase in level provides the player with more strength or magic abilities which enable the player to kill higher level mobs.
We can define our initial conditions as follows.
A quest will begin with a brief story and a request for help, along with the rewards which will be offered for the successful completion of the quest. Chaotic Worlds already successfully completed it and they have achieved the appropriate level to play. If a quest was accepted, the player must travel to the location required to fulfil the objectives of the quest. Initial conditions could differ for separate characters starting the same quest.
The lower level character therefore has a higher incentive to kill more mobs to reach the next level killing mobs earns experience points. Therefore one player may choose a different game tactic than the other player.
The domain of interaction for any quest is the location of the event within WoW. These locations are often filled with unfriendly mobs who will try to kill our character.
Players can exhibit different patterns of behaviour: one player may be more cautious, attacking only one mob at a time; another player may be more aggressive, preferring to attack multiple mobs simultaneously. Players also have the option of using a Player vs. Environment PvE server, or a Player vs. Player PvP server. If a player is using PvP, then at any time, a player from the opposing faction could attack that player. In a PvP scenario not only do players have the chance to be attacked by mobs, but they also may be attacked by other players.
In a PvE scenario, other players cannot attack our player unless we allow it. Each of these styles are our strange attractors, potentially altering the experience the player has. The outcome basin would depend on if the player is using a PvE or PvP server. Figure 1: Quest-giver and brief story explaining the details of the quest.
All rights reserved Events and choices impact the initial conditions. If, for example, a player is trying to attain a level quickly, they may spend more time killing mobs in order to earn more experience points. A low level character may also decide to proceed more carefully than a higher level character.
This may give positive feedback to the player starting the next quest. Depending on the events and choices the player makes, the system could arrive at different states. The edge of chaos could be reached if a player decides to run into the location, which is in a stable state, annoying all the mobs inside. The system would then shift to a state bifurcation , where all mobs are focused on the character. If he is skilled enough, the player may be able to kill all the mobs, and thus earning more experience points than a player who takes a more cautious approach.
Each quest the player completes results in experience points for the quest and extra for killing mobs. Therefore the total number of experience points Et , earned during a quest is calculated by the sum of the total experience points earned while killing mobs Ek , plus the reward points Er. Therefore, these iterations of behavior create positive feedback which creates different initial conditions for different players starting the next quest.
Chaotic Worlds There are different levels of connectivity which appear during play: the connection between players social and the connection between the player and the virtual world itself software.
Raids Raids are groups of players who group together to fight powerful monsters or to engage in player vs.
Raids allow players to enter the most dangerous areas of WoW and overcome its challenges Blizzard, Players are no longer acting alone, but are part of a larger group, which creates strong social ties between players. Therefore it is essential to be a good team player in order for the group to complete the objectives of the raid.
A raid group is formed by inviting others to join in the adventure. These players could be members of your guild or new players. Each group has their own group chat which is only viewable by members of that group. The location of each group member is shown on the map. A raid leader is in charge of raid organization, structure, and communication.
The leader can move people between groups and add or remove raid members.
Leaders also have the ability to promote other players to help them to manage the raid based on their abilities. During the planning of the raid, the leader will mark targets with symbols which indicate the order of attack. All players in the raid will be able to see these symbols and are used to coordinate the attack. The domain of interaction is the particular raid instance.
In WoW, there are a large number of raids which groups could undertake, each with different objectives and requirements.
For example, some raids are designed for 20 players, while others are for 40 players. The domain of interaction will also include the environmental features of the world, as well as the mobs the group will meet. The initial conditions for a raid group can change. A particular raid senario may be repeated multiple times with different player membership.
Each instance may differ. The initial conditions are also sensitive to the rules of the game. As software patches become available, rules within the game may change. The strange attractors may change with each raid instance as well. Different groups of players completing the same raid instance could exhibit different patterns of behavior. Patterns of behavior could also be different between different raids for the same group.
Therefore, the outcome basin is the pattern of behaviour which could be exhibited over raid instances. This could also apply to different raid leaders coordinating the same raid over different times as each exhibits different characteristics.