Staredit Network

Staredit Network -> Website Feedback, Bugs & Discussion -> MMA Tutorials
Report, edit, etc...Posted by Zeratul_101 on 2006-09-23 at 23:59:08
Many of you, like me, feel that the current tutorial system is simply inadequate when it comes to providing solid methods for fixing problems encountered in the MMA forum. Here is my proposal to improve the functionality of tutorials. Simply changing the aim of tutorials, to solve issues instead of explaining them, is absolutely essential. Currently, our tutorials provide very generic information. While generic information has its place, it needs detailed topical information to compliment it for maximize effectiveness. I recommend new tutorials combining both general information and topical information. These should be placed as individual, pinned topics in the MMA forum for easy access for quoting by experienced users and an easy-to-find source of information for newcomers.

I am aware Tuxedo_Templar is also proposing tutorial system changes, but this should be much easier to implement, maintain, and use. At the very least, the new tutorials could be used for the duration of SEN V4.1 or until Tuxedo_Templar's proposal is implemented.

I have written a tutorial concerning VHP using the macro/micro information complementation format described above. Although the tutorial is not fully completed, it still performs its purpose.

QUOTE
Virtual Hit Point(VHP) is a method of tracking HP through virtual data (such as death counters) as opposed to the unit HP bar.  This virtual data(which is usually stored in death counters  - which I'll be referring to it as from now on) has much more versatility due to many more related trigger scripts.

This is a list of how triggers function with standard unit HP and VHP:

QUOTE

Standard HP

CONDITIONS

none

ACTIONS

modify unit hitpoints(%)

VHP

CONDITIONS

deaths

ACTION

set deaths
modify unit hitpoints(%)


It is evident that VHP has relatively much more trigger functions. Death related trigger functions are for the virtual arithmentic calculations(adding, subtracting, etc.), while 'modify unit hitpoints' is used to express the final value of these calculations. Mathmatical calculations are impossible using only standard HP. As seem in the listing above, standard HP has no method for detecting HP and has no calculation actions(excluding an output action - 'modify unit hitpoints').


Above was a comparison between VHP and standard HP and a brief look at the mathematical functions of VHP. Next is a look into how values can be inputted into the 'system' and two different major formats for VHP. From this point on, VHP divides into two branches - Unit-Based(AKA Semi) VHP and Total VHP*.

TVHP is an incredibly diverse form of VHP with a broad classification. Different methods range from incredibly simple to enormously complicated. For the more complicated forms, it can result in a very different style of gameplay(usually much slower and 'calmer'). On the plus side, it allows the mapmaker to 'modify' some of the hard-coded unit values, such as speed and attack range. Some of the simpler methods are easier to use and understand than UBVHP and are good introductions to VHP. On the other hand, the advanced methods are not recommended for anyone not experienced with both VHP and mapmaking in general. This form of VHP will be discussed in later.

The much simpler and more popular branch of VHP is UBVHP, which will be referred to as VHP unless otherwise mentioned. VHP utilizes a vincible secondary unit(SU), which serves as a 'damage soaker' for an invincible primary unit(PU) and also as a method of input. The SU will be moved(recentered) onto the PU so attacks directed toward it will appear to be hitting the PU. Enemies will attack the SU instead of the PU because of the latter's invinciblity. The SU is usually a burrowed unit(Spider Mines are considered burrowed) - a Zergling will be used for the purpose of this tutorial - although it may be a ground or air units as well. The order of preferred SU are burrowed, air, and lastly, ground units, for reasons that will be explained later. The reasons for using a burrowed SU are that ground-attack units are able to attack it and that it is asthetically-pleasing. Therefore, a burrowed SU should be used as often as possible. As a note, VHP is usually used for ground PU due to popularity, but also functionality. Due to unwalkable terrain, such as water, air PU will not be able to use a ground-based SU on that terrain. A solution will be examined later.

The 'industry standard' is a 1HKO burrowed Zergling. The term '1HKO*(1 hit knockout)' applies to an SU with a maximum life of 1 HP or, otherwise, is always killed by a single attack. When a Zergling is killed, it represents 1% damage to the PU. Upon the death of a Zergling, one death is subtracted from a death counter(DC) - starting with 100 deaths. The deaths can be translated into unit HP at any time, usually immediately. Next, a new Zergling is created and made to follow the PU.

This is an example of an input and some output triggers:

P1 is the owner of the PU(Marine)
P2 is the owner of the SU(Zergling)
'PU tracker' is the location follow the PU

Description:
Input trigger
Conditions:
¤ P2 commands at most 0 Zerglings
Actions:
¤ Preserve trigger
¤ create 1 zergling at 'PU tracker' for player 2. Apply properties(burrowed)
¤ modify death counts for P1: subtract 1 death for Zerglings

Description:
Output trigger after 1 attack
Conditions:
¤ P1 has suffered as exactly 99 deaths of Zerglings
Actions:
¤ Preserve trigger
¤ set hit points for 1 Marine owned by P1 at 'PU tracker' to 99%

Description:
Output trigger after 2 attacks
Conditions:
¤ P1 has suffered as exactly 98 deaths of Zerglings
Actions:
¤ Preserve trigger
¤ set hit points for 1 Marine owned by P1 at 'PU tracker' to 98%


In point form, what is required for VHP to function:

-an invincible PU
-a vincible SU(preferably a burrowed unit) that recenters onto the PU
-a 'recentering' trigger to move the SU onto the PU
-an 'input' trigger which detects the death of Zerglings and recreate them
-'output' triggers to modify the PU's unit HP


The principle of VHP is that a unit's death is detectable, but damage to it is not . So, logically, in order to detect a hit, a unit would need to die. It can't be the PU, so a sacrifical unit is needed to be the target - the SU. Once the SU is dead, the 'knowledge' of its death can be used in conjunction with 'modify unit hit points' for HP manipulation.

Now that a basic understanding of VHP has been achieved, it is possible to explore the many variations of VHP and resolve its problematic issues via specific topics:

Secondary Unit Choices

As was stated before there are multiple choices for a SU. The alternatives to the burrowed unit are air and ground units. Ground units are simply ground units that cannot burrow. They are an exceptionally poor choice for a SU. A ground unit will hamper ground movement, melee attacks, and look asthetically-poor. Under no circumstances is a ground SU recommended nor should they ever be used. The better alternative is an air unit. Although it still has the drawback of not attackable by ground-attack units, this deficiency is not as sever as those associated with a ground SU. On the other hand, it does possess the advantage of including air-attack units into the VHP system. Yet another advantage of this is air PU functionality. An air SU is not hampered by unwalkable terrain in the same way ground and burrowed SU are. Of course, the disadvantage is that the SU will be created off-center due to StarCraft's no-stacking function. All in all, burrowed SU are the best option for ground PU while air SU fit well with air PU.

A-Symmetrical Damage

Under the standard '1HKO' method, units with the faster attack rates dealt the most damage, not the ones with more attacking power, as preferred. To correct the issue, SU must be given more HP, and possibly represent more than 1% damage. The HP increase must be large enough that at least a portion of the enemy attacks will not result in a instant kill. This will result in units with more attacking power killing SU faster and negate the effects of a faster attack rate.

The following issue arises from the use of A-symmetrical damage(ASD):

Secondary Unit Hit-Point Regeneration

After sustaining an attack, a Zerg SU will begin to regenerate HP and a Protoss SU will regenerate its shields. The shield regeneration is easily solved by setting shields to 0. Zerg burrowed SU can simply be replaced by a Spider Mine. Zerg ground SU should be replaced by a Protoss probe with no shields. Likewise, a Zerg air SU should be replaced by an observer with no shields. Terran SU(excluding the Spider Mine) usage should be avoided due to the possiblity of repairs and healing.

Spatial Inconsistencies

When using VHP, space and SU size must be taken into consideration. Each type of SU will experience problems. Burrowed SU will only experience a problem relating to differences in SU/PU sizes. The problem arises when the PU enters a tight passageway the SU would not be able to enter in an unburrowed state. As a consequence, the SU will be created off-center in an area with enough space if at all. Air SU space issues are due to the spawning area containing other air units. This will cause the SU to be spawned even further away or not at all. Ground SU will experience the most issues, due to their space requirement on walkable ground. Issues will result from both tight terrain and occupied spawning area problems experienced individually by burrowed and air SU, respectively.

Speed Lag

Speed lag is a reduction in unit speed caused by the constant recentering of the SU onto the PU. This problem is a result of StarCraft's internal mechanics. The severity of the speed lag is based upon the occurence of the recentering trigger, more occurences will lead to more speed lag. However, the problem is easily resolved through any of several simple trigger modifications. Three seperate methods will be shown.

#1 - Wait-Delayed Centering

This method is not recommended for use with hyper triggers.

Conditions:
¤ P2 brings at least 1 Zerglings to 'Anywhere
Actions:
¤ Preserve trigger
¤ Wait for 250 milliseconds
¤ Move all Zerglings for player 2 at 'Anywhere' to 'PU tracker'


#2 - Counter-Delayed Centering

While the deaths of the second trigger may be modified for recentering frequency, it must remain greater than or equal to 3 in order to prevent speed lag.

Conditions:
¤ P2 brings at least 1 Zerglings to 'Anywhere'
Actions:
¤ Preserve trigger
¤ Modify death counts for Player 1: add 1 death for Timer


Conditions:
¤ Player 1 has suffered at least 3 deaths of Timer
Actions:
¤ Preserve trigger
¤ modify death counts for P1: set to 0 deaths for Timer
¤ Move all Zerglings for player 2 at 'Anywhere' to 'PU tracker'


#3 - Proximity Centering

Conditions:
¤ P1 brings at most 0 Marines to 'PU tracker'
Actions:
¤ Preserve trigger
¤ Center location labeled 'PU tracker' on Marine owned by Player 1 at 'Anywhere'
¤ Move all Zerglings for Player 2 at 'Anywhere' to 'PU tracker'


As you can see, the opening portion of the tutorial contains very generic information, while the ending phases address specific topics.
Report, edit, etc...Posted by DT_Battlekruser on 2006-09-24 at 01:04:58
Such a system will do no good. Anyone smart enough to look at a pinned topic is smart enough to go to the wiki page.

I should bring back my idea though:

Whenever you post a new topic in MMA, a keyword checker checks your post for keywords, then prompts you to view certain tutorials before posting a topic.
Report, edit, etc...Posted by Zeratul_101 on 2006-09-24 at 01:07:22
actually, i really don't expect people to do that, but it'd make it easier to find info and quote it.

ADDITION:
thats your idea... cause i could have sworn i gave that to you lol
Report, edit, etc...Posted by DT_Battlekruser on 2006-09-24 at 01:22:29
I mentioned it long, long ago. I called the YoshiHelper or something funny like that tongue.gif
Report, edit, etc...Posted by Zeratul_101 on 2006-09-24 at 12:54:57
anyhow, its not like this is a major project or anything. no coding of any sort required, no major management. all it is is writing an informative tutorial and pinning it. hell, i'll even write all the tutorials. with a little bit of help editting and providing solid facts. also, this isn't meant to include very single topic in MM, just for the more commonly posted problems.
Report, edit, etc...Posted by DT_Battlekruser on 2006-09-24 at 12:58:43
It just means having to scroll through thirty or forty pinned tutorial topics every time you want to make it down to a thread in Assistance. Pinned threads are often more trouble than they're worth.
Report, edit, etc...Posted by Zeratul_101 on 2006-09-24 at 13:50:37
i didn't mean for all the tutorials, just a select few. for VHP, hyper triggers, etc. probly around 4-6
Next Page (1)