• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

Hero Contest #8 - Results

Status
Not open for further replies.

Kyrbi0

Arena Moderator
Level 44
Joined
Jul 29, 2008
Messages
9,477
user160036_pic59500_1342547064-png.244360

hero.png
contest.png
number.png
8.png

results.png



Contest Theme: Neutral/Tavern
Contest Style: Team ~ Custom (Team-Made) Resources

IT'S DONE! Honestly one of the most challenging & exciting forms of Contest we can run here; a Joint Hero Contest! Several awexome entries, and some excellent competition! But in the end, only one can be the winner... And that's what we're all here to see.

On to the Results!

[[Please refer to the attached "Voting Calculations" Excel spreadsheet]]
(Image also attached for those without Microsoft Excel (you can always open an account via SkyDrive & get free Web-Office apps, by the way)

===
===DESIGN (Kam)
===

//NOTE// Due to a discrepancy in the values chosen for certain Criteria (i.e. Balance/Integration & Creativity/Originality), I have taken the liberty of adjusting them proportionally to the correct "out of X" values.

Permission here:
Go ahead and adjust. I used the same method I use for techtree contests, I didn't think to check the rules on that.

---------------------------------------
Mur'gul Warlock
---------------------------------------

Design Criteria

Theme/Form: 14/15

I would imagine an undersea creature to have all of these but Fel Meteor, but that is where there Warlock aspect comes in. The model you chose compliments the hero well, I wish you had taken the time to choose more fitting icons though.

Role/Function: 15/15

Support caster. This hero works well behind melee units dealig AoE damage while providing a self regeneration method (Dark respite) that rewards successful battles.

Balance/Integration: 15/15

Abilities that play/stack/combine from each other are one of the best hero ability conventions in gaming. It adds another level of strategy in choosing an order for leveling abilities. With some aesthetic changes I can absolutely see this hero in the vanilla Tavern - in fact it makes me wonder why there was not a more creep-oriented set of heroes in the Tavern. Dark Respite should have also interacted with other abilities but it's concept was original.

As far as stat balance I found all four spells to be fair in playing against the AI and while creeping. I think Dark Respite should be able to heal any friendly unit.

Creativity/Originality: 14/15

You based this on an existing premise that has been well explored Naga/Murloc/Mur'gul) but you managed to create a set of fun and well thought out abilities. The ultimate being rather simple holds your entry back.

Overall: 58/60

---------------------------------------
Murloc Fisherman
---------------------------------------

Design Criteria

Theme/Form: 9/15

While these are all nautical themed spells there is not much more to them than the name suggests. You can move units between points, chain stun, and use a form of bloodlust. The model was interesting and I like that you actually have a fishing hat to throw. I know you were going for a Murloc but this model would have suited your theme well: Turtle fisher

Role/Function: 12/15

Support caster / DPS (Steroid Fish) You did better here because there are some useful combinations for spells. Mainly using bait to draw casters from safety to your units, and jumping out of combat once Steroid Fish wears off.

Balance/Integration: 12/15

This is not developed enough to fit into the Tavern, but it could. I would suggest making it a hero killer as the abilities you chose mostly affect a single target.

Creativity/Originality: 8/15

Move unit from point A to point B x2, chain stun, and metamorphosis. These are not original ideas, and their implementation was lacking.

Overall: 41/60

---------------------------------------
SeaDruid
---------------------------------------

Design Criteria

Theme/Form: 14/15

Normally I would wonder why such a massive creature would be an intelligence hero, but the head octopus sells it. I feel like I would see this at the vanilla Tavern. Geyser and Ink need better icons. I suggest:
BTNTorrent
Btncrblood (Recolor)

The casting effect on Mass Brainwash is fitting.

And maybe for Mass Brainwash:
BTNVoidEye

Role/Function: 15/15

Support caster. Scald is an excellent way to give further utility to a passive. Normally they are a spell you learn and forget about, but having extra effects means a player can time spells to their advantage. My favorite was the pushback bonus on Mass Brainwash.

Balance/Integration: 14/15

Mass Brainwash should channel longer and deal more of an adverse effect. The wording for the % move/attack speed decay is backwards as read. Scald could also affect more than one action as having to activate it so much is annoying.

Creativity/Originality: 13/15

Geyser is one of the most prevalant water spells, I don't know how many variatons I've seen. Ink is fairly standard. Scald by itself is ok but it's really a mixer so it can't be judged on it's own. Mass Brainwash is far more original.

Overall: 56/60

---------------------------------------
Silithid Devourer
---------------------------------------

Design Criteria

Theme/Form: 14/15

This fits into the vanilla Tavern. I love the channel spell animation. You chose in-game icons well, although I think Blood Boil could use a new icon:
BTNSpell_Shadow_BloodBoil

Role/Function: 15/15

Tank. You've combined the spells well to work with each other. I run in with Rupturing Stab, drop Corpse Crusher, and then target a hero with Leech Life - all boosted if I had Blood Boil at the time. There's all the incentive for this guy to be in the thick of it.

Balance/Integration: 13/15

10 HP/second on Blood Boil is too much, it almost makes the spell not usable, or rather requires the player to use other spells to offset the HP cost. I think Leech Life is also too good for the mana cost/cooldown. I was able to regen extremely quickly by targeting low level creeps.

Creativity/Originality: 12/15

As fun as this hero is to play it lacks originality. The three basic abilities are fairly standard, as is the ultimate with exception to the bonuses. You have combined them in a unique way. Corpse Crusher is the most original of the set.

Overall: 54/60

---------------------------------------
Windlord
---------------------------------------

Theme/Form: 13/15

Elemental heroes are tough. I can see this in the vanilla Tavern, however you may want to choose a different model as it appears to also be a snow/wonter based hero. The three standard ability icons need to be revised.

Role/Function: 13/15

Support/caster. There is the potential for a combination between Fel Gate and Maelstrom that works well in practice. Otherwise I would not say this hero has tactical synergy. The abilties fill the role well enough but seem like they could be any number of hero types.

Balance/Integration: 12/15

Stormform has a -33.33% armor reduction at level 3, which I think is too much. It is supposed to be a situational spell but that much of a negative makes it too narrow. Maelstrom is the problem though. It is an invulnerable passive AoE summon with no range limit and a long lifespan. I was able to sit in the map center and severely disrupt the enemy base. On top of this it is a portal for friendly units to excape death and bring new units in.

Creativity/Originality: 10/15

The three standard abilties are nothing new. There are many variations of them in the spell database. The primary function of Maelstrom is also mostly a vanilla spell, but the secodnary teleporting function is a fantastic idea.

Overall: 48/60

---------------------------------------
Swashbuckler
---------------------------------------

Design Criteria

Theme/Form: 14/15

I have never been a fan or realistic or life like models in wc3. They simply don't fit the aesthetic of the game. The model is a small portion of your grade as it can so easily be adjusted. The icon choices were not the best either. That said his abilites are original and engaging. I can see a pirate using these on the high seas in ship to ship combat.

Role/Function: 15/15

Assasin / anti-hero. In playing the AI I quickly started targeting heroes. Snare Trap and Persecute are a potent combination. If targeting a melee hero it is unlikely they can escape the 20% move speed bonus and are foced to fight, except now they deal with Riposte. I'm not sure if you intended to create a hero killer but you succeeded.

Balance/Integration: 14/15

With the above considerations for a new model/icon set this absolutely fits into the Tavern. Turmoil has that bit of humor in the flinging furniture that I expect from Blizzard.

Unfortunately I do not think Turmoil works. I changed the cloud model to the dummy model so I could see and sure enough all enemy units simply attack the hero or allied units as usual. Is the description wrong?

A 10 second stun to a hero almost always results in death. It's simply too long. Persecute is fine at 20 seconds as there is the possibility of escape, or driving off the attacker(s). I did not like that Turmoil affected the Swashbuckler. The ability is not so good that it needs that kind of downside.

Creativity/Originality: 12/15

I have seen all of these before, granted not in such a refined form. I would say Turmoil is the most original but even then I am reminded of a spell from 2007: Enrage - Wc3C.net It was one of my favorite spells which is why I remembered it.

What you have done extremely well is create a anti-hero hero better than most I've seen. The only thing I can think of that's missing is somethign to sap mana.

Overall: 55/60


===
===ART (MiniMage)
===


---------------------------------------
Mur'gul Warlock
---------------------------------------

Model:
Originality: 8/10
Fit with ingame models: 5/10
Animations: 7/10
Particle Effects: 7/10
Texture Quality: Medium
Texture Wrap: 8/10
Filesize: Medium
Theme: 6/10
Quality vs Filesize Ratio: 7/10
Mesh: 4/5

Special Effects:
Originality: 6/10
Quality: 8/10
Distribution of effects: 10/10
Consistency in theme: 6/10

Icons:
Fit with spells: 2/4
________________________
Total count of points: (52+30+2) 84/109

The model has a destinct style and is well animated, the skin is very well wrapped. The mesh itself differs a bit in height, posture and design from a Mur'gul. It's attack animations are water projectiles, but all the spells but one deal with some kind of green magic flame. It would've been more consistent if the projectile effect was something that match the theme established so far. Possible some kind of form of poison or flame.

The quality of the spells are very well shown, there is no lack of effects and it's not much either. Granted, the appearance of the health orbs made me question if there was a bug with the model, due to the close similarity to the orb that the mur'gul hero is carrying around.

As for the icons. Two of them match the theme, the two others taht does not, match in color, but not in design. There's nothing about a backfin that speaks of a large shockwave spell, nor does glowing arm with a sword speak of health boosts from slain mobs.


---------------------------------------
Murloc Fisherman
---------------------------------------

Model:
Originality: 6/10
Fit with ingame models: 9/10
Animations: 6/10
Particle Effects: 7/10
Texture Quality: Low
Texture Wrap: 4/10
Filesize: High
Theme: 9/10
Quality vs Filesize Ratio: 4/10
Mesh: 3/5

Special Effects:
Originality: 6/10
Quality: 2/10
Distribution of effects: 4/10
Consistency in theme: 10/10

Icons:
Fit with spells: 1/4
________________________
Total count of points: (48+22+1) 71/109


The model has a destinct theme, my has numerous glitches and animation problems. Sometimes when attacking it would split into its morph form and sometimes animations would get interupted or generally just flip out on my computer screen. Meshwise, it's not complex, but it would fit extremely well given some more work with the wrap.

The special effects score suffers from the glitchy nature of the model, as in concept, the theme, is very well followed and very original. However, the distribution of the special effects are rather lacking as it either has too much or none at all and heavily relies on its animations.

The Icons basically don't fit it at all. The first icon looks like a hook. The rest of them doesn't match their spells. Most notably, the description is also very poor. It has hook enemy, hook ally, throw hat extremely slowly and basically the alchemist morph spell. None of these remaining icons represent the spell in any shape or form.



---------------------------------------
Sea Druid
---------------------------------------

Model:
Originality: 3/10
Fit with ingame models: 10/10
Animations: 8/10
Particle Effects: 5/10
Texture Quality: Medium
Texture Wrap: 10/10
Filesize: Medium
Theme: 9/10
Quality vs Filesize Ratio: 7/10
Mesh: 3/5

Special Effects:
Originality: 8/10
Quality: 7/10
Distribution of effects: 9/10
Consistency in theme: 9/10

Icons:
Fit with spells: 3/4
________________________
Total count of points: (55+33+3) 91/109


The model looks very nice, now, the originality falls a bit since it's obviously an edited sea giant, but the animations are very good and the tentacles are animated very well.

Almost all icons fit their intended purpose besides one for the ink spell, which has absolutely has no resemble to ink whatsoever.



---------------------------------------
Silitid Devourer
---------------------------------------

Model:
Originality: 6/10
Fit with ingame models: 7/10
Animations: 10/10
Particle Effects: 9/10
Texture Quality: High
Texture Wrap: 10/10
Filesize: Medium
Theme: 10/10
Quality vs Filesize Ratio: 9/10
Mesh: 4/5

Special Effects:
Originality: 7/10
Quality: 9/10
Distribution of effects: 5/10
Consistency in theme: 10/10

Icons:
Fit with spells: 4/4
________________________
Total count of points: (65+31+4) 100/109


Well made model, granted, it's an edit of the undead bug hero so it loses a bit in originality. But it has been done remarkably well. A few animations have been granted a huge overhaul. Not to mention a suberbly well crafted skin for the model.

The special effects rely very much on the animations of the model, special effects are very scarce, but they are used fairly well. The blood sucking giant bug. I feel that ultimate felt a tad lacking, special effect wise.

The icons fit perfectly and it's very intuitive to figure out what is what.



---------------------------------------
Swashbuckler
---------------------------------------

Model:
Originality: 10/10
Fit with ingame models: 5/10
Animations: 7/10
Particle Effects: 7/10
Texture Quality: Medium
Texture Wrap: 6/10
Filesize: Medium
Theme: 10/10
Quality vs Filesize Ratio: 7/10
Mesh: 3/5

Special Effects:
Originality: 7/10
Quality: 9/10
Distribution of effects: 8/10
Consistency in theme: 10/10

Icons:
Fit with spells: 3/4
________________________
Total count of points: (55+34+3) 92/109


Well made model, original, but very different from a typical warcraft design, it will always stick out, always look out of place. However, it's well made.

The animations are well made, entertaining and well executed.

The icons are matching very well, except for riposte, that I struggle to figure out what it even is.



---------------------------------------
Windlord
---------------------------------------

Model:
Originality: 8/10
Fit with ingame models: 7/10
Animations: 5/10
Particle Effects: 9/10
Texture Quality: Low
Texture Wrap: 7/10
Filesize: High
Theme: 5/10
Quality vs Filesize Ratio: 3/10
Mesh: 3/5

Special Effects:
Originality: 9/10
Quality: 6/10
Distribution of effects: 5/10
Consistency in theme: 8/10

Icons:
Fit with spells: 2/4
________________________
Total count of points: (47+28+2) 77/109


Well made model, it's original, but it has areas where it is lacking, primarily in its concept. The model is called windlord, but the cape and shoulder protectors feel out of place. Personally, for it to fit the theme of the spells, I would've wrapped the cape with a swirling lightning texture and added something like a lightning effect to the shoulder protectors.

The spells are very well made, granted, the spell that crushes its target with wind projectiles is very hard to aim with. By all accounts it looks like a aoe spell, but it's a single target spell, yet it strikes an area. Looking it at from the perspective of eyecandy though, it's very well made. The tornado works as intended, although I am surprised that you can't move it, also mobs can attack it. Looks about the same as a normal tornado does tho. As for the final spell, the ultimate, that makes me wonder why you didn't name the hero "stormlord" as it diverges from the concept as a windlord towards the concept of stormlord.

The icons fit decently well, excluding the icons for the first spell and the third spell. They don't seem to intuitvely match what they actually do. You're able to grasp what they do from the description, allthough this has nothing to do with the icon choice.


===
===CODE (AGD & Purgeandfire)
===


Hero Contest #8 Entries Code Review



Code Criteria

1. Interface with Computer (15)
* Efficiency (10)
* Leaklessness (5)

2. Interface with User (15)
* Configurability (5)
* Documentation (5)
* Structure and Readability (5)

Total = 30 Points


Entries


Close

SwashBuckler

Murloc Fisherman

Windlord

Silithid Devourer

Mur'gul Warlock

Sea Druid


Entry by CockroachesInYourPants (HappyCockroach & Quilnez)

Ratings:

Interface with Computer (15) – 12
* Efficiency (10) – 7
* Leaklessness (5) - 5

Interface with User (15) - 14
* Configurability (5) – 4.5
* Documentation (5) – 4.5
* Structure and Readability (5) – 5

Total (30) – 26


General Evaluation:

The code is well documented not only within the script introduction but also with important details spread over parts of the script and yet still able to remain very readable. Though I suggest you take advantage of vjass’s delimited comments instead of using the default jass comments especially for the header because the precompiler removes them, resulting in a smaller compiled script size. However, it isn’t considered in the rating. The configuration also seems very good, providing dynamic configurations aside from the static ones plus it also provides users full control of what will be allowed as the spells’ targets.

Overall, it is well coded, efficient, and readable code. I also find no leaks. There are still room for optimization however as listed below.


Specific Evaluation:

Snare Trap:

You can save struct’s instance members to a variable when you use them many times in a single function because doing such is analogous to repeatedly calling function calls when it’s better to cache them. I see this especially in the onPeriodic method. Also this, still under onPeriodic method, the (targetX – x) and (targetY – y) are better to be cached here: (if ((.targetX-x)*(.targetX-x)+(.targetY-y)*(.targetY-y) > .aoe*.aoe) then)

Instead of clearing the group and nulling fog after the loop when fog is not null, you can do it inside the if statement inside the loop just before exitwhen true. This is very minor though.

Persecute:

Instead of returning nothing, if you make the method initializeSpell return a boolean value, you could reduce the static method onLearn into 1 line and save 1 line in method onDeindex by joining initializeSpell in the if statement.

Instead of refreshing DetectTrigger periodically, I guess it would be more efficient to refresh the trigger if the numbers of wasted events reach a certain amount because there are times where the trigger need not be refreshed yet within certain duration.

Riposte:

You don’t need an allocator/deallocator to the Stun struct because you can just save its data to the index of the unit since you’re using a unit indexer and since you’re only limiting a single instance per unit anyway. Instead of checking if Index[data] is 0, you can have a boolean array with the unit user data as the index for checking. And by doing this, you’ll also be able to make the struct extend an array.

Some nested if statements under the onAttack method can be combined.

Turmoil:

Like above, you don’t need an allocator/deallocator for the TurmoilAI struct and same thing can be done as stated above and it’s also better to combine the 2 onInit methods. There are also values that could better be cached such as arithmetic operations and instance struct members under the onPeriodic method of the TurmoilAI struct.


Other things:

Across the scripts, there are lines which can be combined such as those 1 line inside an if statement that returns a boolean value.

I think it’s also better if you can add to the configuration the option to make the active spells deal damage since you could just set its default value to 0 and adding 1 line of UnitDamageTarget() to some parts in the script is easy and yet that one additional option given to the users can be significant.

Entry by Dat-S? (Hayate & Dat-C3)

Ratings:

Interface with Computer (15) – 12.5 (- 2 for errors) = 10.5
* Efficiency (10) – 7.5
* Leaklessness (5) - 5

Interface with User (15) - 6
* Configurability (5) – 1
* Documentation (5) – 1
* Structure and Readability (5) – 4

Total (30) – 16.5


General Evaluation:

I can’t say that the code itself is ugly however, the code is really lacking in configurability (you should provide a separate trigger for configuring each spell) and documentation as well as instructions for users in importing. The spells also lack proper tooltip as it fails in elaborating what the spells do and some of its object editor values do not even match with what is in the description of the spell such as the allowed targets.

Instead of writing your custom functions in the custom script section of the map, you could’ve just written it in a separate trigger.


Specific Evaluation:

Grapple Hook:

The first thing I noticed was the incorrect formula for arcs. Height should be equal to ((4.00*maxHeight/maxDistance)*currentDistance/maxDistance)*(maxDistance - currentDistance)).

The way you cache values can be made more efficient. Take this for example:

  • Custom script: set x1 = GetUnitX(udg_DatGHcaster[udg_DatGHmax])
  • Custom script: set y1 = GetUnitY(udg_DatGHcaster[udg_DatGHmax])
  • Custom script: set x2 = GetUnitX(udg_DatGHtarget[udg_DatGHmax])
  • Custom script: set y2 = GetUnitY(udg_DatGHtarget[udg_DatGHmax])
  • Custom script: set udg_DatGHmaxdistance[udg_DatGHmax] = SquareRoot((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))
You can instead do
  • Custom script: set dx = GetUnitX(udg_DatGHcaster[udg_DatGHmax]) - GetUnitX(udg_DatGHtarget[udg_DatGHmax])
  • Custom script: set dy = GetUnitY(udg_DatGHcaster[udg_DatGHmax]) - GetUnitY(udg_DatGHtarget[udg_DatGHmax])
  • Custom script: set udg_DatGHmaxdistance[udg_DatGHmax] = SquareRoot(dx*dx +dy*dy)
And you can do the same for the Grapple Hook Run trigger.

Also, upon the end of the Grapple Hook, you should set the fly height of the caster to its default fly height instead of zero because not all units have 0 as their default fly height.

Bait:

The spell is synonymous to the above spell except that the target is the one to be grabbed instead of the caster. Basically, the issues here are just the same with the above spell.

Surf Up:

According to the spell description, if I understood correctly, the hero will throw a hat that is supposed to bounce between units within certain range from the first target and while bouncing, it would cause damage and a stun for certain duration. However, this is not what the code does, as also evident when I tested the spell in-game. The spell only damages and stuns the first target, neglecting the other units being bounced with the hat afterwards.

Steroid Fish:

There’s nothing I can say here.


Other things:

There are lots of things that the code needs to improve on. These include, but are not limited to spell configurability, documentations, importing instructions, efficiency, etc.

However, I could not find any leak in the code.

Entry by Proxby-Oh (PROXY & Kyrbi0)

Ratings:

Interface with Computer (15) – 11.5
* Efficiency (10) – 6.5
* Leaklessness (5) – 5

Interface with User (15) – 10
* Configurability (5) – 2.5
* Documentation (5) – 3.5
* Structure and Readability (5) – 4

Total (30) – 21.5


General Evaluation:

The spell codes are too short making it hard for me to evaluate the code while following the criteria, but anyway I understand it’s because you focused more on simplicity and uniqueness I guess. The documentation is fine although it could still be improved, same goes for the spell description. It might have been better if you provided a more detailed spell description, such that the users will already have a picture in mind of what the spell does even without actually testing the map especially that spells are OE dependent. Despite its very short length, there are still things it can improve on as will be stated below.


Specific Evaluations:

Fell Gate:

The following values are better to be cached – Target unit of ability being cast, Last created unit, and Triggering unit. It’s always a good practice to store values from function calls to a variable whenever they’re used more than once.

Doldrums:

You could have elaborated the spell description better as it will also guide the users on how the values in the OE would affect the spell i.e., to give users context of what they would want to configure.

Storm Form:

You could’ve just used one trigger for the spell. It’s easy to do since the event is the same and they only differ in one condition. And btw, you don’t have to use
  • And - All (Conditions) are true
in the conditions since that is already the default setup of the GUI conditions by default. You just made it redundant.

You should’ve stored Triggering unit into a variable since you refer to it many times.

Maelstrom:

And again, many values should be stored to a variable as you refer to them more than once.


Other things:

You should use Triggering unit whenever possible, instead of Casting unit, etc. because I’ve read across some posts saying Triggering unit is faster than other event responses for units.

Entry by Special Ops (A.R. & Tank-Commander)

Ratings:

Interface with Computer (15) – 12.5 (- 0.5 for the typo resulting in error) = 12
* Efficiency (10) – 7.5
* Leaklessness (5) - 5

Interface with User (15) – 14
* Configurability (5) – 4
* Documentation (5) – 5
* Structure and Readability (5) - 5

Total (30) – 26


General Evaluation:

The code is well organized and structured, efficient, and most of all, has an elaborated documentation provided for the users covering all aspects of the spells starting from importing instructions, configuration, and all the way to internal code captions. The spell configurations provided seems fine although you could still have provided constant functions for users to configure what type of units are allowed as the spells’ targets. Other than that, the code is very good.


Specific Evaluation:

Rupturing Stab:

The function RS_IsNotBleeding can be replaced with an integer array or hashtable as an instance counter which counts the current Rupturing Stab stacked upon a specific unit and you can simply check if its value is zero for that unit. This way, it would be more efficient and the operation would be O(1).

Leech Life:

It’s better to make the system square LL_MaxRange() automatically instead of relying on the users to calculate the value they should put in the configuration in order to get the desired range. The speed gain for doing this is very little anyway and I don’t think it’s a better trade off for the users.

Also there is one function call inside an if-statement that can just be combined to it (if-statement).
Aside from these minor things, there are no other issues I can see and the code looks good.

Corpse Crusher:

The code is very good and there are only 2 very minor things I can point out for improvement.

Under the CC_Cast function, (x2 - x) and (y2 – y) can better be saved to a variable because you refer to them 3 times.

Under the CC_Loop function, this can be simplified to set b = not b

JASS:
if b then
    set b = false
else
    set b = true
endif

Blood Boil:

The BB_IsNotBuffed function can instead be replaced with a more efficient method the same to what I suggested in the Rupturing Stab spell above. Another thing is the typo you made set level = GetUnitAbilityLevel(udg_LL_Caster[Node], LL_Ability()) .


Other things:

I suggest you to use a unit indexer to save the spell effect instance count for a specific unit for the spells Rupturing Stab and Blood Boil, or you could just use a hashtable for efficiency.

Entry by The Flaming Skull of Waddles (Direfury & KILLCIDE)

Ratings:

Interface with Computer (15) – 14
* Efficiency (10) – 9
* Leaklessness (5) – 5

Interface with User (15) – 13.5
* Configurability (5) – 4
* Documentation (5) – 4.5
* Structure and Readability (5) - 5

Total (30) – 27.5


General Evaluation:

The spells are well coded, neat, and provides documentation and instructions for users well. Though I can see an important option that is lacking in the spells’ configuration i.e., the option for users to customize what type of units they want to allow as the spell’s targets. Furthermore, the spells’ configurability can still be extended a bit as will be stated below. Nevertheless, the overall coding is good. I also found it nice that you’ve put the configurations into arrays, giving users more freedom in the spell stats’ scaling.


Specific Evaluation:

Noxious Cloud, Conflagrate, Fel Meteor:

These three spells share a common structure and they share similar too so I just coupled my evaluation for them.
Within the loop trigger, some array variables in which you refer many times should better be saved to a variable.
Aside from this, there aren’t any other problems I can notice.

Dark Respite:

I think it would be better for the Dark Respite spell to have an option for health restoration in case the users want it to restore health also. Then you can just set its default value to zero.


Other things:

You should probably move the PeriodicTimer and DummyOwner variable up into the configuration section. Also, you could probably add an option for users in the configuration if they want to ignore a noxious cloud when casting a spell or not.

For the users to be able to customize the type of units allowed as the spells’ targets, you can have something like this in the conditions:

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • Or – Any condition is true
      • (Unit is A structure) Equal to False
      • (AllowStructure) Equal to True
    • Or – Any condition is true
      • (Unit is Magic Immune) Equal to False
      • (AllowImmuned) Equal to True
  • Then - Actions
Then you just put the AllowStructure and AllowImmuned booleans in the configurations.

Entry by This is not a Team (Freddyk & Cokemonkey11)

>> Review by Purgeandfire

Interface with Computer (15) – 15
* Efficiency (10) – 10
* Leaklessness (5) – 5

Interface with User (15) – 14
* Configurability (5) – 5
* Documentation (5) – 4
* Structure and Readability (5) - 5

Total (30) – 29

General Evaluation:

I had a lot of fun messing around with these spells. There are numerous configurables to tweak the spells to your liking, and everything just works flawlessly.

These spells are quite tricky to get right: (1) you have a spell that enhances all other spells (2) you have spells that apply buffs, which need to take into account stacking/removal/etc. They are a pain in the ass to get right, and the fact that you account for all that is a testament to the code's resilience against bugs.

I loved the overall design of the code. It was easy to see where the configurables were, the code flowed well, the names were self-documenting, and big props for implementing scald so seamlessly. Documentation was great, although 1 point was docked since I think more of the constants could've been documented, i.e. KNOCKUP_POWER_, AIR_CONTROL, FX_ORBIT_OFFSET, CHANNEL_FIDELITY, etc. They are named well, but it takes a bit of familiarity with the spell's code to find out what they affect.

Great job overall. The amount of work you guys put in really shows.

Specific Evaluation:

Geyser:

Nothing to criticize here. Great job. Unit tests, wow!

Ink:

Fantastic code. As a side recommendation, it'd be cool to be able to configure the number of units affected by the ink. It would take a bit of extra work, but you'd have to create a function that picks the N closest units instead of the 3 closest units. You could maybe use a linked list instead of a vec4, and insert based on distance.

Scald:

Again, nothing to criticize here. Funnily enough, most of this spell's code is outside its main script itself! Great choice. I feel like I could customize the scald effects without any difficulty. Great job!

Mass Brainwash:

A proof of this is left to the reader.

>:|

Jokes aside, great design. You implemented everything in states, which made the spell's flow very easy to follow. There are quite a few object instances involved, but you always cleared everything appropriately, even if the spell ended prematurely. As mentioned above, this spell had quite a bit of complexity involved. MUI for this spell isn't about just making sure everything has their own instance--you have to worry about stacking and the different phases of the spell. You handled it really well.

Overall, fantastic job. I'm sure you expected more criticism, but I honestly couldn't imagine doing them better myself. Hell, I would've probably coded them worse.




20161129 - HC8 - Poll Results.JPG
20170118 - HC8 - Results.JPG


Score
RepEntryTeam (Contestants)

84.21
50+5Mur'gul WarlockThe Flaming Skull of Waddles (Direfury & KILLCIDE)

80.53
35+5Silithid DevourerSpecial Ops (A.R. & Tank-Commander)

77.84
25+5SwashbucklerCockroachesInYourPants (HappyCockroach & Quilnez)

76.87
5Sea DruidThis is not a Team (Freddyk & Cokemonkey11)

63.05
5WindlordProxby-Oh (PROXY & Kyrbi0)

50.77
5Murloc FishermanDat-S? (Hayate & Dat-C3)

HONORABLE MENTIONS

Best in Design
Mur'gul Warlock

Best in Art
Silithid Devourer

Best in Code
Sea Druid

Most Popular
Mur'gul Warlock

I'll be quite honest; I was a little surprised. I figured we had a top-2 toss-up (Sea Druid & Silithid Devourer), since the art was simply top-notch & had the coding to back it up. But the Mur'gul Warlock did get the highest number of Votes & the highest Design score. Anyway:

Congratulations to Direfury/KILLCIDE, A.R./Tank-Commander, and HappyCockroach/Quilnez for their winning entries, and congratulations to all who entered! And on a personal note, thanks for letting me live the dream I've had since 2008; to participate in another one of these amazing Joint Hero Contests (not to mention Host it!). They are honestly my favorite Contest & I look forward to more in the future. Keep it alive!

===

Poll || Old Poll || Contest || Proposition
 

Attachments

  • HC8 - Voting Calculations.zip
    33.1 KB · Views: 109
Last edited:

A.R.

Skin Reviewer
Level 25
Joined
Mar 12, 2008
Messages
347
Well done everyone, congrats to Direfury and KILLCIDE! It was fun :D

Just for posterity, the model for our entry wasn't an edit of the Crypt Lord - it's 100% scratch. I tried to use the same naming conventions for the bones, even put attachment points for the CL's spikes at one point but ran out of time to make it work properly :grin:
 

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
Congratulations everyone! And good job, @Cokemonkey11 and @Freddyk. To me you have one of the best overall hero but everyone got their own opinions. Unlucky for us with that last moment rule update, we could've got better places and you would probably got us beat :D Cheers!

And thanks to all judges for their times and great job at reviewing all these stuffs. What a great competition we have had here!
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
I apologize if what you expected to happen ended up not going through. It was a pretty big mess around the time I was made the contest mod. I was messaging a bunch of people, poking Kyrbi0, etc. It was a great competition nonetheless. We had some really strong entries, and there were a few scores that surprised me as well.

I'm hoping our judges can come onto this thread and answer any questions you guys had: @Kam @MiniMage @AGD @PurgeandFire
 
So one part of the judging mentioned the 'fin' icon we used for one ability. Early versions of our entry had a prominent back fin, and I'd had plans early on to make it light up for a spell animation, like with Thunder Lizards.

I'm not complaining, or contesting the judging. It's just a little something I wanted to point out, now that I've remembered.
 

Kyrbi0

Arena Moderator
Level 44
Joined
Jul 29, 2008
Messages
9,477
So one part of the judging mentioned the 'fin' icon we used for one ability. Early versions of our entry had a prominent back fin, and I'd had plans early on to make it light up for a spell animation, like with Thunder Lizards.

I'm not complaining, or contesting the judging. It's just a little something I wanted to point out, now that I've remembered.
Not only that, but I don't know if he realized you could not use custom icons (I believe); you'd already used up your 3 custom art things & had to use in-game ones.

Personally I thought they were great. Better a nice artistic depiction than a more-fitting but less-consistent(-colored) icon.
 

Kyrbi0

Arena Moderator
Level 44
Joined
Jul 29, 2008
Messages
9,477
Alright, finally found the time to at least start this thing. The rest (Art & Coding) will be forthcoming. Sorry to be taking so long; just got a lot to catch up on.

~~~

@Kam
Elemental heroes are tough.
'Tough to do', or 'tough to do right'?

I can see this in the vanilla Tavern, however you may want to choose a different model as it appears to also be a snow/wonter based hero.
That's good; that was the Contest's goal. : )

Yeah, I can see how you would say that. It's hard to make wind look solid without looking like snow (perhaps something more akin to the Al'Akir concept art and/or the Wind Titan in Disney's Hercules; black(er) winds...)

The three standard ability icons need to be revised.
Oh really? Where are my patented Kam Icon Suggestions? : P I kid, but I imagine it was hard to think of some... Same problem
here. Believe me, I combed through the entire Wc3 icon library (over @ WoWWiki) & there are maybe 3 icons that even kinda look windy. I really had to stretch.

Support/caster. There is the potential for a combination between Fel Gate and Maelstrom that works well in practice. Otherwise I would not say this hero has tactical synergy. The abilties fill the role well enough but seem like they could be any number of hero types.
Hum, interesting... I had always tried hard to consider the abilities working cohesively to establish a Hero's gameplay Role/Function, but not so much how well they worked with one another; usually that just arose naturally (as you mentioned with Fell Gale & Maelstrom (and hopefully Stormform with the other 3). So you're saying you could see these abilities on, say, a brawler or a DPSer as well?

What is meant by 'tactical synergy', in your estimation?

Stormform has a -33.33% armor reduction at level 3, which I think is too much. It is supposed to be a situational spell but that much of a negative makes it too narrow.
Yeah, Balance has never much been my strong
suit. I was at wit's end trying to get something to work (couldn't make magic damage weakness trying 3 different ways), and settled on reducing armor as being a reasonable & powerful "Con" (because at that point, the ability was all "Pros"; there was never a reason to switch back).

So this ability wouldn't otherwise be a problem if it didn't reduce his armor so much? I was worried that pseudo-invincibility (too fast for melee & all ranged bounces off) was too much. With what I know now, I could actually make him selectively 'weaker' to (I believe) all damage (including spells & such), instead of simply reducing his armor. How meaningful would that be?

Maelstrom is the problem though. It is an invulnerable passive AoE summon with no range limit and a long lifespan. I was able to sit in the map center and severely disrupt the enemy base. On top of this it is a portal for friendly units to excape death and bring new units in.
Yep... That's pretty much the point. I figured a Nydus Canal in exchange for a Hero (knowing how important Heros are to the game; not only is the Windlord out of commission/vulnerable, but the Maelstrom can only teleport non-Heroes) was a pretty good deal, and while in Turtle Rock it was perhaps too much, I found I could only travel so far; in larger maps it wouldn't be nearly so broken.

What do you think could best be done to balance it? I toyed with one-way transport (though that kind ruins the point), or it
transporting slower (I think I could do that), or the transport abilities having a cooldown (so only usable so many times per summon)...
Alternatively, I could remove the other abilities on the summoned storm (the controversial lightning, possibly even the anti-ranged aura though that supplements his Role in a very specific, intentional way)...



Creativity & Originality
The three standard abilties are nothing new. There are many variations of them in the spell database. The primary function of Maelstrom is also mostly a vanilla spell, but the secodnary teleporting function is a fantastic idea.
Alright, this is perhaps my one real beef. I suppose it's my own fault; I failed to clarify in the Design Criteria to which standards we would be held (in terms of Creativity/Originality/Uniqueness, hereafter "C/O/U").

What I mean is, in the form of a question: "To what should we have been comparing ourselves to determine C/O/U?" By mentioning "spell database", you denote that you are opening up years of modding as the standard by which we are measured. In my mind, that makes it nearly impossible to truly come up with something "C/O/U"; after over a decade of modding, there's not much room left.

If an ability appeared in our database... Or on other Wc3 modding database (*cough* Turmoil ~= Enrage)... Or elsewhere in the game in a different form... Or elsewhere in another Blizzard game, or even an entirely different game... Is it then not C/O/U? I would hope that's not what we're saying.

I build my concept (and thus this Contest's concept of C/O/U, since this particular kind of Hero Contest is designed to be "Blizzard-style", which is the way I like to do things myself (believe me, I'm just waiting for someone to 'beat me to the punch' and start an 'AoS Hero Contest', which I will probably bow out of : P)) of C/O/U from Blizzard, fittingly. And Blizzard has been pretty clear; they are willing to draw inspiration from other games (e.g. Warhammer), from their own games (e.g. Buildings on Blight/Creep, Workers sacrificing themselves for structures, Units entering a structure to defend ala Bunkers; etc), and even from the very same game, repurposed & re-combined in what I call "technically unique" ways (e.g. Drunken Haze = Critical Strike + Evasion; Spiked Carapace = self-Devotion + -Thorns Aura; etc)!

That is in fact, personally, where I draw the line of C/O/U: "technically unique", or "has it appeared in this game, and in this form. In that way, nearly all the abilities in this Contest are "C/O/U", though some more than others (say, my Vortex vs. my Maelstrom; the Swashbuckler's Snare Trap vs. Persecute). My Vortex, is essentially a ward-form of the Tornado skill (minus the damage). But that (i.e. 'a ward-form of the Tornado skill') does not technically exist in Warcraft in that way, and so is, I would argue, 'sufficiently unique' for Warcraft in terms of concept.

However, perhaps you feel that this is the 'lowest common denominator' & should not be our goal, even if "fitting in with Blizzard" is our goal (as, I hope, this Contest's Rules, Guidelines & Criteria made adequately clear). If, perhaps, this is too low a bar for you, I understand. However, I would hope the bar would at least be set at Blizzard's, in terms of the precedent set. That is to say, viewing the heroes/abilities in the isolated context of the game itself. So while Maelstrom might exist as (basically) a souped-up Nydus Canal from Starcraft, or while Dark Respite might exist as something from DotA, that's OK; that's still C/O/U (sufficiently for Warcraft, sufficiently to be awarded points).

Similarly, setting the bar down from "the entirety of the spell database (here or elsewhere)" would be, I hope, manifestly desirable. Should we be expected to comb through those databases looking for similar spells, seeking in vain for something that hasn't already been made somehow? I hope not. Thus I'd say that while Turmoil might exist as 'Enrage' over at Wc3C, or Bait might exist as 'Meat Hook' over here, again that's OK; we are not comparing these guys to all of Christmas Modding Past, but only to the standard melee game itself for which they are designed.

My repeated use of the word "sufficient" might be alarming. I recognize the danger in (& the desire to avoid) settling down into a zone of comfort, a zone of 'good enough', a zone where no one needs (& thus no one bothers) to push themselves to really design ingeniously.
However, I don't think that's the problem here. I'm all for some really "truly"** C/O/U design. Stuff like Corpse Crusher, Mass Brainwash, Dark Respite, Scald, Turmoil... So let's give those guys some bonus points! But let's not penalize those that at least fulfill a level of sufficiency. It's the guys like (pardon my finger-pointing) A Void from the last Hero Contest, with an entry concocted out of strictly copy/paste abilities that already exist in that form in the game... That's what the C/O/U Criteria is seeking to weed out. And to celebrate those that go the extra mile.

This 'extra mile with some sufficiencies' is what I saw this Contest, by and large. The Sea Druid, Silithid Devourer, Swashbuckler; all had some really creative WOW factors. Now I hate to draw further, more pointed comparisons between entries lest I appear jealous, but if I may, I want to look at the Mur'gul Warlock.

Was it's Theme/Form perfect? Pretty much (we can argue whether Mur'guls can even become Warlocks, but whatevs : P). Was it's Role/Function perfect? Again, pretty much; solid support/DD caster. Was it Balanced? Sure, I'll take your word for it (based on our convo in the Techtree Contest thread). But was it C/O/U? When it consisted of 3 DD abilities, one of which was literally Shockwave/Crushing Wave (+ the combo)? And not one but 2 copies of the Pandaren Brewmaster's spell interaction (in the form of 'cloud of X ignited by Y for Damage')?
'Dark Respite' was definitely C/O/U, and I'd say 'Noxious Cloud'/'Fel Meteor' were at least "technically/sufficiently unique". But for them to score higher on the C/O/U Criteria than ourselves, saying "You based this on an existing premise that has been well explored Naga/Murloc/Mur'gul) but you managed to create a set of fun and well thought out abilities. The ultimate being rather simple holds your entry back." That last bolded part is about the only thing relating to C/O/U I can see; the rest sounds more like concluding remarks to the Judging, since 'fun' and 'well thought-out' really don't have much to do with C/O/U, in my opinion.
(Direfury & KILLCIDE, I hope I don't come off as too harsh to your entry; I did like your entry (as my Vote details) & the thing is, you guys did great in the Voting as well as the other 2 Judging disciplines, so I'm not trying to say you shouldn't have won.)


So in summation, I guess the question for you, for me, and for the rest of us moving forward is: "To what degree/In what context are we expected to be C/O/U?" This is something I think should be discussed.


**I don't want to talk at length about this here, as I've written much more elsewhere & more eloquently. However, I want to be clear that In My Opinion, there is "nothing new under the sun"; that is, when we are talking about C/O/U, we must necessarily lower our bar from "it has never existed before!" because that's impossible. Everything has existed, and can be said to exist, as a combination of things that came before. Scald is just an active one-time Engineering Upgrade; Turmoil is just Enrage is just Chaos Cloud (RA2:YR) is just Chaos (AoM:TE) is just Confusion (PKMN, D&D) is just... Everything has been done; we just try & come up with the most creative combinations of things (perfect example: Mass Brainwash. Slowing enemies, speeding up allies, pushing back? Nothing new there. But it's the whole package, & how it's done, that makes it C/O/U in my opinion).

Alrighty. Time to put up the flame shield. : )


I didn't have a place to put it, but in regards to the congratulations on the "secondary teleporting effect" of the Ultimate: Thanks, though it's my bad for presenting it such that that was seen as the "secondary" effect. That was always the primary effect; I just found it made more sense for the tooltip to read the way it did. C'est la vie.

Whew! More to come, eventually.
 
Last edited:
@Kyrbi0

'Tough to do', or 'tough to do right'?

To do right. They are one of the most common hero themes so the whole concept is a bit worn out.

Oh really? Where are my patented Kam Icon Suggestions?

Doldrums: BTNArcaneField (Photoshop it blue/white)
Fel Gate: BTNNaturesWrath (Photoshop to grey)
Stormform: BTNWhirlpool
Maelstrom: The Tornado icon actually looks good as is, but you could use: BTNLightningOrcThunderStorm

So you're saying you could see these abilities on, say, a brawler or a DPSer as well?

What is meant by 'tactical synergy', in your estimation?

Yes I can easily see these applied to a melee hero. Particularly Maelstrom would be grerat for a heavy tank that could jump into a group of enemy units and then summon more melee units.

Synergy the word has kind of been mangled by corporate environments - I should have explained. The abilities kind of work together as I stated, but I like to see spells that stack or have direct affects or bonuses on other spells.

So this ability wouldn't otherwise be a problem if it didn't reduce his armor so much?

It seems fine other than that. Piercing damage is always a threat to heroes and it's a nice shield.

What do you think could best be done to balance it?

-Max range (from hero to summon) needs to be maybe 3,000
-Summon needs to be killable, even the mighty Nydus worm must fall

So in summation, I guess the question for you, for me, and for the rest of us moving forward is: "To what degree/In what context are we expected to be C/O/U?" This is something I think should be discussed.

To the beef!

Ideally I want to be pleasantly surprised with something I have not seen before. That is the highest bar though in the creative realm.
In terms of Wc3 much has been done, but every contest I see new ideas I had not thought of. One of my favorite recent examples is your own hero in HC#7, specifically Dreamscape.

The problem here is that Doldrums feels like Cyclone, Stormform feels like Magic Defense, and Fell Gale is a well used idea here on the database. Maelstrom felt new and the teleportation was a lot of fun. As mentioned above I had not seen anything like Dreamscape before, and all your abilities there worked together. (You should fix the items I noted on that entry and submit it to the spell section by the way. It's one of my favorite heroes.)

"You based this on an existing premise that has been well explored Naga/Murloc/Mur'gul) but you managed to create a set of fun and well thought out abilities. The ultimate being rather simple holds your entry back."

This is a good example. The existing premise means that they chose a well used theme, which means they put themselves at a disadvantage to start with. In spite of that they created a unique and creative spell set which does use some elements from vanilla Wc3 like Disease Cloud. The ultimate is less inventive and original and thus lost them points.

we can argue whether Mur'guls can even become Warlocks, but whatevs

Hey now, equal opportunity.

I hope this clarifies my remarks.
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
Doldrums: BTNArcaneField (Photoshop it blue/white)
Fel Gate: BTNNaturesWrath (Photoshop to grey)
Stormform: BTNWhirlpool
Maelstrom: The Tornado icon actually looks good as is, but you could use: BTNLightningOrcThunderStorm
If the artist didn't choose "Icon" as one of their art criterias (Artists were allowed to choose up to 3), then the team was forced to use ingame icons. Teams were not allowed to use icons from the database. The artist either had to draw it themselves, or not draw them at all.
 
If the artist didn't choose "Icon" as one of their art criterias (Artists were allowed to choose up to 3), then the team was forced to use ingame icons. Teams were not allowed to use icons from the database. The artist either had to draw it themselves, or not draw them at all.

Noted. I like to provide feedback in the event that contestants will continue revising their entries beyond the contest.
 
Status
Not open for further replies.
Top