Grinding Day 2

I hit level 87 last night, trained up enchanting a bit, and called it a night. I just wanted to jot down some of the stuff I gleaned from finally getting Symbiosis and my general feeling of the expansion thus far. First, let me say that I think Blizz did a pretty good job with the landscape and I am enjoying the scenery. Second, let me say that just about every NPC voice in the game comes off as racist (that's probably not the right word; I am annoyed by the redneck pandas as a man of the south). Third, I have no idea how Blizzard plans to reconcile the fact that Ferals are nigh-unkillable now.

Okay, that last sentence may require a bit more explanation (or not... who knows). I have Barkskin, Survival Instincts, Might of Ursoc, instant-cast Healing Touches that crit for 90k fairly regularly, Cenarion's Ward which is basically a free 50k reactive HoT (at level 87; it was closer to 25k at level 85), and now that I am level 87 I have Dispersion. To top all that off, I always have Frenzied Regeneration if things get dicey. All told, I have roughly seven defensive abilities that will keep me alive while saying nothing about utility abilities that might keep me alive like Cyclone, Entangling Roots, Mighty Bash, Typhoon, and the like.

Okay, so I have come to terms with the fact that Guntir is likely to be getting trained in 2s matches instead of me, since I am an unstoppable juggernaut that cannot be killed under normal circumstances. So, that means that I must bring utility to the forefront. I am bringing Cenarion's Ward for supplemental healing, I am bringing instant-cast Healing Touches for supplemental healing, I am bringing Typhoon for exploiting certain maps like Dalaran and Blade's Edge, and as always I have my CC abilities in Cyclone, Entangling Roots, and (what is looking better and better every day) Mighty Bash. I do not want to mince words here, so let me be clear:

Being able to use these abilities without the requirement of shapeshifting out of and back into form is what makes all this possible.

I was trying to explain this to Guntir before MoP dropped, but I do not think I did a good enough job so I will try and get the words out here. Having the ability to use instant-cast nature spells is huge; many old-school Ferals actually hate this mechanic because of how powerful instant-Cyclones can be if your partners know how to pool resources and drop huge burst on a target. However, the biggest problem with instant-casts for Ferals in Cataclysm was that it would knock the Feral out of Cat Form... our dps goes to near-zero for a bit. I have harped on this fact for the longest time (we spend 3 seconds of our 6 second CC shapeshifting) and Blizzard finally agreed that the shapeshifting was too painful and removed it. That being said, since we spent so much of our Cyclones shapeshifting, we would basically never get the chance to use our instant cast procs on anything except Cyclones and Entangling Roots.

With Feral now able to use our instant cast procs in form without shapeshifting and Guntir getting Cyclone, which is in Guntir's Nature School by the way (if he gets kicked on Cyclone he can still heal and vice versa), I can actually spend less of my instant casts on Cyclones and more on Entangling Roots and, more importantly perhaps, Healing Touches. In addition to all these improvements, Feral healing now makes more sense than in any other expansion prior. Again, my Healing Touches are hitting for 45k and critting for 90k and I have barely any PvP Power at all at level 87; when I start getting actual gear my Healing Touches might still heal Guntir for 25% of his total HP in full PvP gear.

How is Blizz letting this happen?

I have no idea... Feral is looking an awful lot like a Ret Pally toward the end of Cataclysm in terms of his ability to off-heal, but we bring arguably more sustained damage and a lot more CC. I remember that no one was really playing Ret+Disc in Cataclysm 2s because (besides 2s not being supported anymore) Ret did not bring enough for a Disc Priest to land Mana Burns. Feral, at least, brought Maim+Cyclone combos for Mana Burns so Disc+Feral was all the rage. Toward the end, it was still about landing Mana Burns, so no one ran Ret+Disc, but 3s was all about Ret+Dk+Disc because of the insane survivability, pressure, and burst the comp could bring. With Mana Burn finally being removed, I would not be surprised to see more 2s comps like Ret+Disc that were simply underplayed for the reason of not being able to sustain against Mana Burns.

However, the one thing I can say is that Feral's utility is really going to open up Disc's playability in terms of mana usage and nuking potential. Guntir is already a pretty good survivalist; he can withstand a beating from a double-dps team for a good while when rotating his cooldowns coupled with my instant-cast Cyclones and really nothing else. When we step into the arena with that same survivability potential on Guntir and me being a target that will never die, I simply do not know what other teams will think of it.

It really is too early to tell, but at the moment I am leaning away from Tree Posse and Incarnation. I tried them both out in BGs prior to MoP being released and I was underwhelmed with the Live implementations. Incarnation has always bothered me; the timing of the ability makes it awkward to pair with Berserk though it seems natural to do so. Additionally, Ravage is a good burst ability, but it is still cost prohibitive given that you can really only do it when Berserk is rolling. True, tying to two together with a macro would make the it seemless, but then you have got to watch your bleeds and pay attention to Ravage damage; it just never really clicked into a comfort zone for me. Tree Posse, being the exact opposite at first, has fallen by the wayside as Blizz has completely neutered the damage. Having an additional stun might be the kind of thing that is useful, but with the Tree Posse only doing 1200 a hit against the target dummies (with no resilience) is just too weak for me to seriously consider.

Therefore, I have been grinding with the new and improved Soul of the Forest. At four energy per combo point returned, I may very well step into the arena with this as my selection. The one thing I will note about Soul of the Forest is that the energy return is awkward when combined with Omen of Clarity or Ferocious Bite, and when you use both it goes full retard consuming zero energy, giving back twenty, then consuming twenty-five more. Basically, an OoC+SotF-FB will end up giving you 5 energy as long as you are between 25 and 75 energy when you use it. Other than that, it is great: Rips are free, SRs give 5 energy back, and I am feeling less and less energy-starved.

Lastly, I am still heavily looking at Dream of Cenarius for the arenas. As I mentioned, I am expecting to use lots of Healing Touches on Guntir for supplemental healing and expecting that he will end up using Cyclones since defensive dispels are so heavily hit this expansion. Essentially, Guntir will end up Mind Controlling a target (which can only be offensively dispelled off of Guntir; I learned that last night), forcing him to walk over to Guntir (if he is not already there), then following that with a Psychic Scream. If the target gets dispelled, then I can follow with an Entangling Roots which cannot be dispelled, and Guntir can follow that with a Cyclone which cannot be dispelled. Other than my Entangling Roots, I will be free to use my instant cast procs as Healing Touches on Guntir so that he will not die from having to use all this CC, and Dream of Cenarius will increase my damage-dealing capabilities by healing Guntir.

It just sounds nasty.

Bookmark and Share

Man... Grinding, Right?

GRINDING... I hate grinding. Well, it is actually an interesting blend: I do not like questing; I do not like being forced to do it to progress; I like the stories; I do not read the quests.

Bah, nothing to report this week except that we are busy getting back into the grind. I will post more next week when we are finally doing arenas again (hopefully).

Bookmark and Share

No WoW Updates

Man, I have been waiting and waiting for SOME bit of news to pop its head out, but it seems with MoP firmly set to release next Tuesday there is nothing new to say. I am going to have to scrimp and save to find time to actually grind Rey up. Time has been hard to come by of late, and to be honest I have spent most of mine doing non-WoW related things. The powers that be finally released Black Mesa Source (and I highly recommend this game to anyone who: 1) never played Half Life, 2) played Half Life and loved it, 3) played Half Life but hated the graphics; essentially, I recommend this game to everyone).

Black Mesa is a completely beautiful remake of the original Half Life in the Source Engine (the graphics engine used for Half Life 2 and all the episodes). To say nothing else about the game, the graphics improvement is absolutely breath-taking. I loved Half Life, though I only played it a few years after its initial release. In fact, by the time I had played it, Blue Shift and Counter-Strike (and a number of other mods) had been in the wild for a good while.

Which brings me to my next en devour that has been taking up all my time. Many of you know that I have been an avid L4D player for a good while now, but like Half Life I was (somehow) slow to the scene and only started playing the game around 2010. Sure, that is two years ago at this point, but the game was released in 2008 and had been a thriving competitive scene since then. Like arena, I thrive on competition; this stems back from the days of playing Counter-Strike in Cal League and getting to a rather high division (though not Cal-I; made me sad... that was my Gladiator aspiration circa 2000). Unfortunately, the competitive scene for L4D has pretty much gone the way of the competitive scene for Counter-Strike 1.6; that is, it is now dead and gone.

However, there is still a rather large community that still participates in competitive scrimmages from time to time, and if I am ever in a pick-up game with randoms and find one of these people, they will usually start kicking the baddies to make room for their friends for some competitive pub-games. It really is fun to do a lot of the time, but the problem becomes that unless you know someone, you are forced to use Valve's dedicated servers. Now, do not take this the wrong way, but there has been a lot of plugins/mods to improve the state of the game (competition-wise) since the release, and somehow Valve never got around to implementing these until a few weeks ago -- but they only did it for L4D2.

So, this got me thinking that I would just run a L4D server on my work machine when I left for the day. My machine is plenty powerful enough to run a top-notch server, and we have plenty of bandwidth to support it, so it was pretty straight-forward to me. The problem, I found, was that almost none of the competitive plugins were readily available online via Google searches. I have to admit, this has not been a problem for me in almost 15 years: wanting something that I know exists online somewhere and having no idea how to find it. Eventually, even though I had installed and set up my server on my work machine, I had to admit defeat since I could not find any of the needed plugins. After a long process of trying to come up with other solutions, I finally decided that I am a computer programmer and should see this as an opportunity rather than a defeat. There is no reason, given that I know exactly what the plugins I wanted do, that I could not simply write my own versions for each. So, that is what I started out doing.

The first plugin I wanted was something I had seen on only one or two servers before, and they were (like my workstation approach) often offline unless the owner wanted to spin them up to play. The plugin was a module-loader of sorts; it would respond to votes cast by chat communications. For instance, if there were only two players on a server and they wanted to play one on one, they would both have to type "!load 1v1" in chat and it would cast each vote, and after a short time (or after all players voted) it would decide whether the majority wanted to load the 1v1 module, then load it. This was really the lynchpin of my plugin wants and truth be told, I could have gotten around the rest missing with simply being an admin, but the compulsion to have this module overwhelmed me and so I wrote it myself.

Having 2v2, 3v3, and 4v4 configs was enough for those game styles since everything they required could be set up in simple configuration files to be loaded via the load-module, so once I knocked out the load-module, these configs came naturally. However, in 1v1 there are a special set of rules that were enforced on the servers with the original 1v1 module - no wall-kicks from hunters. For a little background, a wall-kick is something a hunter can do if he has not touched a player and has a "loaded" pounce ready (which simply means that he has pounced and come in contact with a wall). If all of these are true, then a hunter can run around silently, jump into the air with his back to a wall silently, and pounce off that wall as if he were doing a standard wall-pounce. What is more important is that hunters spawn in "loaded" to pounce, so there is a distinct advantage in a 1v1 game where a hunter can run around completely silently and make a last-second pounce on a player without that player having time to react. I ended up writing my own version of this as well; it seemed simple enough to put a small timer on a player when he jumps (if he's a hunter) and if he successfully uses a pounce within a short time (a half-second seems to work best), then he likely did a wall-kick and is killed (don't worry, the spawn timers are extremely short in 1v1; this penalty is usually learned once and then adhered to for the rest of the game).

The next plugin I wrote I do not think I actually ever saw in the wild; it might be all my own creation. Essentially, L4D is fun to play as an infected, but the game really opens up when you start getting amazing at the survivor side. In L4D1 (as a polar opposite to L4D2) the most effective infected unit is the hunter. Capable of landing one-forth of a players health in one hit and able to deal it all if not cleared quickly, the hunter is worth practicing both as and against. Learning how to deadstop, or "ds", (hitting a pouncing hunter with a melee thus stopping his pounce) is an extremely effective defensive tool. The more advanced players can also, using a shotgun, land a shot that will instantly kill the hunter mid-pounce, though this is much more difficult. Shooting a hunter out of the air as he comes to deal damage to you (very quickly, might I add), is called a "skeet"; so named for skeet-shooting -- clay pigeons and the like. I am reasonably good at deadstopping hunters on the damage-pounces (pounces from larger distances do more damage; the most being 25 of a player's maximum 100), but my skeeting needs work. I though of another loadable module for the server and decided to write a plugin that would make it so that players had infinite health, but when a hunter pounced a player, the hunter would be slayed and information (remaining health, etc) would be sent to the would-be skeeter.

One problem with the skeetpractice plugin was the no matter how I set up the server configurations, I could never get it to reliably allow a player to switch teams more than once. Essentially, if the game randomly put you onto the survivor team, you switched to infected, and later you decided you wanted to practice yourself (more hunters joined or what-have-you), you would have to reconnect to the server to pick survivor again. This is terrible, so I ended up writing a plugin that would allow anyone to type "!infected", "!survivor", or "!spectator" to switch to those teams. This is another plugin that I had seen on a few servers, but for which I had never been able to find the plugin or source code.

Similarly, in competitive games, there is the expectation that there will be a tank on ever chapter of a campaign, which is easily controlled via a server configuration. I had been on servers that reported who did what damage to the tank after the tank had died or the tank had wiped all the remaining survivors. Again, I could not find this tank reporting plugin, so I began writing my own yesterday and finally got it working last night. It still requires quite a bit of polish before it is ready for an actual game (the numbers need to be ordered descending, there are some colors needed, etc), but it works and as opposed to the versions I have seen in random games, mine will show the report in a HUD rather than the chat (which is small and prone to spamming).

Overall, the coding experience has been extremely fun and rewarding. I am hoping to get my server to the point where I would be proud to show it off to my L4D buddies and actually use it in PUGs or Scrims. The "problem" is that as I continue to write more and more functionality, I continue to find more and more worth-while plugins to rewrite; I am just now considering writing a plugin for witch reporting in addition to expanding my tank report to include more information than just how much each survivor did to the tank (such as how much damage the tank did to each player, how many punches were landed, how many rocks landed, etc).

Oh, and the last bit worth mentioning here is that I am storing all my plugin code on a GoogleCode  repository. That is, my code is open source so that anyone who wants to set up a L4D server need only look to my releases (eventually) for an all-in-one package setup for a server so that no one has to go through what I did to get a server running for a competitive environment.

Bookmark and Share

Very Interesting!

I know that I said I would be aiming for writing posts for Wednesday releases, but this is too interesting to let go for too long. A hacker (and I mean this in the earliest form of the word) who goes by the handle 'Sendatsu' has posted on ownedcore that he has found tracking information in the form of a watermark on in-game screenshots taken by the World of Warcraft client. Without getting too into the details, which you can find at the website linked in the previous sentence, it has been determined that the watermark in question is not jpg compression artifacts although it seems that the developer who put in the watermark did indeed aim to make it seem that way. By default, screenshots are captured at a "quality level 9" jpg, which is a fairly destructive compression algorithm even at that "lossless" level. Kicking the quality up to 10 causes the watermark to disappear.

However, another hacker going by '_Mike' posted a hack that showed the application deliberately removing the watermark when set to a more lossless format (or a level 10 quality jpg). For those who are not following here, _Mike has essentially shown that there is an if-else block of code in the application that says "if really high quality [subtext - so we cannot blame the watermark on compression artifacts], do not show the watermark, else show the watermark". He essentially wrote some assembly code to run at the system level that patches the World of Warcraft application to never satisfy the first if-block and therefore always show the watermark regardless of the quality or image type.

A few other guys on the forum went so far as to decipher the watermarks from their in-game screenshots and discovered that the information is mostly character name, realm ip, and account name. Mostly, this information is innocuous in and of itself except that Blizzard is doing it without telling their user base in either the ToS or contract agreements to which we must agree every time there is a patch. So, if the information shown is just for tracking purposes (i.e., they can tell 'at a glance' who/where/when they are looking at), then to what end are these watermarks used?

I have read through the forum post and it seems that most people have only found screenshots as far back as early Wrath of the Lich King, but there is at least one person who claims that he might have a screenshot from 2003 (well before WotLK) that has the watermark, but he has not be able to decode it like the more recent screens; so far, it seems it may actually be jpg artifacting he is seeing in this early screenshot. Okay, so we have a time-frame with WotLK and that was the most tight-lipped Friends and Family Alpha experience to date.

My guess? I would say that this was put in place to try and fish out who was leaking the early alpha screens to the various rumor sites at the time. The Burning Crusade had the same type of NDA during its alpha/beta phases, but it was basically Blizzard's first go at an expansion and keeping the lid on such a huge project (remember that it had 6+ million users at the time of TBC's alpha all clamoring for info and that population was still growing). When WotLK came around, Blizzard knew what was to be expected of their FaFA NDA, so they probably put this watermark trick in place to see who was the leak. Basically, posting a screenshot to one of the wow rumor sites that was never wrong (I do not recall any of the sites urls, sorry) would show the public an image with that user's account information. As soon as Blizzard sees the screenshot, they run it through a tool they designed and they know exactly which account is to blame.

It is probably too early to tell whether or not there is any real malicious intent from the watermark, but the feeling I get from the examples posted so far seems like tracking in the most devious of cases and probably nothing more than a staple to catch leak-prone insiders. That being said, I will continue to follow the story and post more as information surfaces.

Bookmark and Share