[Turn to] wow skills talent Design

Source: Internet
Author: User
Tags blizzard

This article goes to: http://bbs.chinaunix.net/thread-1692302-8-1.html
(only reproduced, does not mean that the site and bloggers agree to the views or confirm the text of the information)

For example, the legendary object-oriented game field should be great--say the popular Wow bar.

This game has 10 professions, 10 races, each race has its own unique ethnic talent (this race talent may also be different depending on the occupation, such as Blood elves), each occupation has dozens of or even hundreds of different skills/spells, these skills have melee skills, have remote skills , some skills can cause damage or bad condition to the enemy, some skills will be able to add a good state or heal teammates to their teammates, and many of these skills will also be based on the status of the target to switch different effects, some skills are monomer effect, some of the skills are halo effect (also divided into the local cause of the halo effect or two of their own or both), while others are map extent effects (such as a blaze storm is a circular area; ice pick is a tapered area; In particular, a slash is another hostile target that is no more than 5 yards below the current target-a boss with a strong slash, which delivers dozens of targets from the first target. The total transmission distance can reach an exaggerated hundreds of yards, and this damage is also unique: The warrior's strike is each target damage fixed, some bosses are at the same time the more people beat the injury lower, but there is a sick boss is beaten more people hurt the more ... Most skills can also be enhanced/altered by the Glyph of talent (for example, by inserting a glyph, the Mage's fireball does not cause sustained damage but increases the casting speed; Point a talent, the Mage's cold deceleration effect will reduce the other side of the treatment effect; Some of the rogue's skill attacks will prolong the duration of the state of the attack, and so on); there are many skills that are obtained by learning a profession or equipping/holding an item (for example, by taking medicine, you can get the blood of life, which is available every 3 minutes and can respond to several health values in a few seconds- -this skill is linked to the picking skill level, but it is likely that the next version will be linked to the player's life limit to prevent it from being denounced as a scrap skill by the player as it is now, and that different levels of skill may have a difference in cast time or even extra effects, and each skill will cause damage to different attributes. /Effects (sacred, shadow, elemental, physical, and so on), even a skill that causes multiple types of damage, and an ice fireball that intelligently chooses a more lethal type of perverted magic based on the target's resistance ...

Finally, the most important thing is that all of the thousands of professional skills (and perhaps some of the thousands of unique skills of NPCs) are unstable and often modified by the combination of a skill or certain skill set (such as an extra negative state such as invincible/holy healing; or even a full revision). Definition of the concept of "armor-breaking"-played by Wow knows that it happens almost every month.

Well, how are you going to design these thousands of skills/effects?


or, you just put these concepts in the class of this basket, and then open the special case, special cases can not solve the 23 mode hard to a piece of sticky, tube his overall structure, how to drip?

nonsense.

Well, there's a story to say:
someone sent a few blind people a fish, the blind men happy bad, decided to boil fish soup drink. Fish soup boil, blind a tasted a mouthful, really fresh Ah, the blind B hurriedly also drink a mouthful, too fresh, too good to drink. Several blind men drank one side of praise--suddenly the blind man called up: the fish jumped on my feet, it was not in the pot!
The blind people are surprised: this fish did not put into the pot, soup is fresh into this, if put in the pot, not to kill us all!

The object-oriented fundamentalists make a mess of things, the same will be surprised: God, with the object-oriented complex into this, this need not object-oriented, the software can not write it!

this problem is unavoidable.

Blizzard has been solved in the Diablo 2 era: Spell/Skill Database


The so-called database, in fact, is equivalent to tabular, such as my Simplified solution:

Spell ID animation effects scope action Type properties special restrictions hardening type special settings


The special settings can be a LUA code, such as the ability to search, set the type of damage, query for the transfer of skills such as slash/heal chain, etc.

special restrictions, such as dispersal, are limited to the use of magical buf/debuf (depending on the occupation, there may be one of aggressive dispersal and defensive dispersal, and may also be available at the same time – this is reflected in the possibility of dispersing enemy/friendly targets debuf)



in this scenario, releasing a spell/skill becomes a look-up operation-find the spell ID, find its action type and damage attributes, and calculate special settings (including but not limited to the judgment of the cut-to-chop pattern, talent bonus and talent effects, glyph addition and glyph effects, etc.).

thus, in the end, the entire spell system is divided into a group of magical buf/debuf, physical buf/debuf, which affect a factor in the damage formula or damage effect, and the damage effect is divided into immediate injury/immediate treatment and sustained injury/continuous treatment The last is a set of impact scope decision mechanism.


For example, the knight opened the Shield, and he also got a buf and a debuf.
buf is "invincible", the effect is equivalent to set the damage formula A * (...) in front of a factor of 0 (no invincible When this factor is 1), so all damage is not valid.
Debuf is "self-discipline" because he has "self-disciplined debuf, not allowed to use" settings in his holy shield and holy healing skills, and prohibits him from using these rogue skills again in a short period of time.

the enemy Mage released the ice arrow to him, the system accepts, but inquires the knight State, found him in Invincible state, returned the big two words "immunity".

then, one of the enemy priests used to disperse him, and the search for the priest's dispersal revealed that there was no holy shield in the dispel list of the dispersal, and that the hint could not disperse or disperse the other dissipated (magical) effect.
The enemy pastor reacted quickly, and again used brute force to disperse him, inquiring about the priest's brute force dispersal, and found that the priest had not been able to cast his spell until recently using brute force dispel.
after waiting for 3 seconds, the enemy priest found his powerful dispel cooling (cool down), again using brute force dispel, the query found that strong dispel can disperse the holy shield, and successfully removed the knight's invincible state.

now, the enemy Mage once again released ice arrows to him, Knight switch to anti-Halo, the system inquires Knight status, find ice anti-Halo, and query Mage penetration level, and critical level, according to the formula to calculate whether the hit, can cause full damage and can be critical, and then extract the Mage and Knight both equipment, The gifted data is the formula that calculates the damage estifcation, the reduction data, and finally gives the number of damage the knight receives (including some resistance).



in the Blizzard designer's collation, the above-described results form several forms, as long as you query and replace the corresponding data, you can calculate the damage/treatment values and types; Special effects may be supplemented with LUA code stored in the database.

The final design effect is as if an interpreter is embedded, which interprets the content within the database based on the spell ID.

at this point, Blizzard has completed the database of various skills throughout the game, so that it is easy to add/remove one/some skills to a character/item.


Think about What would happen if the object-oriented fundamentalists were to design:

defining a base class is called a skill; then an inheriting class is called a spell skill, another is a physical skill, and then the Divine spell inherits from the spell skill, and the disease spell inherits from the spell skill; Since paladins have both physical and magical effects, they must inherit divine spells and physical skills in multiple ways. Multiple inheritance is too dangerous, so we have to make the divine spell into the interface class, introduce the interface inheritance even with the implementation of pure virtual function and so on high-end concept; Then, the blizzard designer who deserved to be shot came up with the ability to add a divine sustained damage to the target at the same time-and then had to add an inheritance level, Makes divine spells a subset of sacred persistent damage spells: a dot (damage of time) skill that only immediately causes a sustained damage ...

So, a talent, a skill will have dot, otherwise it will not do?

design pattern is a panacea, isn't it ^_^


By the time you get all thousands of skills, at least a tens of thousands of-class, dozens of-story tree of Terror, and will run out of 23 design patterns (and even invent a few new ones, I won't be surprised), so sophisticated that no one wants to touch it.



However, please note that the days of the blizzard designers, in the beginning of the design program to specify that dot can not be critical, and later added to the Convention that a certain point of a profession may be critical hit; a certain dot in another profession can be critical when a talent is gifted; As for the Death Knight, when he wore four of the equipment in the T9 suit, One of his plague-type dots can be critical-but the other plague dot is never critical.


Well , well, that's a good deal--isn't that the strategy model?

Well, you can fill in a few more hundred, and then put the tens of thousands of classes in the old dozens of-tier inheritance tree one by one. It's not that I'm defending ...



Alas, the blizzard designer, who had shot hundreds of times before, made a bad idea, asking: When the death Knight ordered a gift from the evil department, not only did he add a new dot, but during the existence of the new dot, Also to protect his two dot disease and a debuf disease not to be dispelled!


continue to add: In the Wlk, the head was shot into a sieve by the blizzard designer jumped out again, with his loopholes in the brain out of the idea of a kill: he asked to add the concept of a carrier, when the player sat on the upload, temporarily remove all of his skills, replace with the skills of the carrier , or when he sits in a particular position on a particular carrier, prevents him from being harmed and allows him to release all his skills!
What's more, he asked that some skills would not have been allowed to be cast on the move, but now, when the player is seated in a position on the carrier, temporarily allow him to move the cast!

also, in order to balance a field battlefield, he also asked that, in the case of a small number of people, temporary based on the increase in their health and all skills of attack and healing ability-This change must be based on the number of people entering the battlefield in real-time, and in the case of a continuous failure of a battlefield, they must compensate them!



Well, look at these tricky demands, if there's no object-oriented, no 28 design patterns led by the strategy model (I have reason to believe you need at least 28 design patterns instead of 23) Wise leaders, we have not touched the big project, do not understand the object-oriented silly B, It's the tears that tear the Great Wall out of the way, right? I certainly know that the materials that build the Great Wall are extremely difficult to dissolve and water.

poor blind man, is your fish soup very fresh?

[Turn to] wow skills talent Design

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.