Tobold's Blog
Monday, January 17, 2011
Challenging the weakest

I was thinking about what to write about Ghostcrawler's Wow, Dungeons are Hard! "blog" post. I wanted to discuss that there is not just one type of "hard", and how that leads to heroics in Cataclysm being so bad right now. And then I realized I had already written that post a year-and-a-half ago. To quote myself:
Type A: Challenging the Strongest - This type of raid encounter is characterized by the individual challenge not being the same for every player in the raid. A typical example would be the simple tank'n'spank raid boss with lots of health, lots of damage, and few or no special abilities: In that case the challenge falls hardest on the tank and his healers, whose skill and gear is essential for success. In a type A raid encounter, at least some players have a large margin for errors. If somebody makes a stupid mistake and dies right at the start, that doesn't necessarily cause a wipe. In fact the raid encounter is beatable with less than the maximum number of players in the raid, so everybody else is just an extra. This allows the raid group to bring weaker members to gear up, or even sell raid spots.

Type B: Challenging the Average - In a raid encounter of this type, the raid as a whole has to come up with a defined level of performance. A typical example is raid bosses with an enrage timer: The raid has X minutes to deal Y million of damage to kill the boss, or they wipe. Thus you can easily calculate the damage per second that the raid has to deal on average. That does not mean that everybody has to deal the same damage; it is possible for some very good players to compensate for the lower damage of less skilled or geared players, or even a single early death. Nevertheless a certain minimum performance would be recommended from everyone, because several early deaths or complete incompetence from too many players would make it impossible for the raid group as a whole to get to the required level of performance.

Type C: Challenging the Weakest - In this type of raid encounter special boss abilities are used which result in errors of any player causing a wipe. Usually this is done with some sort of debuff, which requires a fast reaction from the victim to not hurt the whole raid. As the debuff is random, the raid group cannot afford to bring anyone not likely to react fast enough, as that would cause a wipe for everyone.

Note that players generally consider that the overall challenge of a raid encounter goes up from type A to type B to type C. But in fact the difference is mainly affecting the weakest players in the raid group. For the strongest players there is no inherent difference in the degree of individual challenge in the three types.
Basically the problem with Cataclysm heroics is that they are type C hard, challenging the weakest. A good example is Baron Ashbury in Shadowfang Keep, because he is so bad that he gets nerfed in patch 4.0.6: He has TWO self-heal abilities that must be interrupted, and if not everybody gets their interrupts times exactly right and coordinated with each other, it's a wipe. You can actually be in a group which is completely unable to kill him, if you get not enough classes with interrupt abilities. But there are a lot of other examples, and even on trash mobs in Cataclysm heroics everybody is required to play better, e.g. using crowd control correctly.

And that is the problem. Wrath of the Lich King heroics worked well as PuGs not just because they were easy, but because the little challenge they had was of a type A or B, where the tank, healer, and best dps could easily carry the inevitable bad dps player or two. That doesn't work any more in Cataclysm. And this especially regards dps classes, because even those who didn't let themselves get carried through WotLK PuGs spent the last two years training themselves on optimized damage rotations, often including AoE, and are barely aware that they have crowd control abilities. A "good" dps in Cataclysm is one who knows about crowd control and aggro management, not the one on top of the dps meter, which basically requires them to relearn their classes completely.

Now in spite of what the elitist jerks say, World of Warcraft has more decent players than bad ones. But in a type C 5-man group your chance to succeed equals the chance that a random player is good enough to the power of 5. So even if you'd assume a high percentage of 80% good players, the chance of success of the group is only 33%. If you believe only 50% of players are capable, the chance of the group to succeed goes down to 3%. Because everybody in the group has to be good, the success or failure depends on the weakest player, and the chance to have not a single weak player in a random pickup group is slim.
There is also an issue of class stacking, where some encounters (like Baron Ashbury) are fairly trivial if you happen to have three interrupts in the group.
I think that there is another factor that should be looked at in this matter - that of being in an organised group. A group (guild, trade chat pug of "known" players, etc) that has a little bit of coordination can get past all of these worries, and make up for the fact that a weaker player is challenged. This goes against the LK style of pugs - where you were discouraged to get to know anyone, and just spam heroics for free epics. The Cata model, I feel, encourages people to get to know each other and breathes some much needed life into the social aspect of the game.

In the first few weeks of Cata, my guildies and I were doing heroics in a group of 4, and one pug. We would often invite them onto our guild Ventrilo, and the extra coordination gave us a very high success rate, even in dungeons we hadn't completed before.
The difficulty in heroics is certainly quite high. But I'm actually finding other players more annoying than the actual difficulty. Too many diva or elite attitudes (with sarcastic remarks like "Great DPS guys!" etc) against new players just starting out heroics (personally I think the ilvl requirement for heroics is a bit low, perhaps change it so that you have at least 2 JP gear items or something).
This behaviour has put me off trying heroics more than the difficulty.
I take it you find Cataclysm heroics "bad" not only in terms of difficulty but in a qualitative sense; that the degree of individual responsibility they currently demand makes for a poor experience for the average player.

While that may be true in some instances, I think it is part of a deliberate attempt to emphasize guild/coordinated group-based play and to make for more satisfying progression through the 5-man content. The challenges that Cataclysm's heroics present are, as you note, mitigated by close coordination. Guild groups also have another key advantage over those formed by the LFD tool, one related to the social pressures inherit to the anonymous environment of a PuG. A group of friends allows for failure as an acceptable part of learning the new encounters.

That Cataclysm's heroics provide real challenges to all of those who participate goes a long way towards extending the life of the content and makes the experience of conquering it more satisfying. You can't have real challenges without meaningful risk of failure and that is playing out now over the protracted timescale of a MMO. In a few months time most players will have mastered these encounters and will have gear enough to increase the margins of error for most of the mechanics. As someone who has been doing heroics since the day after Cataclysm's release, I've already reached that point.
I'm another one who is more concerned about attitudes than dungeon difficulty. I don't expect to do an instance without dying a few times.

But when someone "man's up" and takes charge, their ego better not be bigger than their leading skills.

Case in point:

I wait my 40 minutes and get Halls of Origination. The tank takes charge and spams a macro with simple instructions. Not a bad idea.

Then we get to the "switch boss" and he names one person to do the levers, one person to dps the snakes, and tells me to interrupt.

I thought that was odd, but whatever, I've only done this on heroic once and didn't really know what was going on yet. Though, I thought for sure that in my first run everybody jumped down for the levers...

Sure enough, I find myself alone with the boss and the tank is calling me clueless...maybe so, but I was just following orders.

I politely left the group so they could find someone more competent...and maybe willing to put up with the player.
Actually it's not true, you just write your wishes instead of the actual situation.

With 2 healers I facerolled heroics on the first week, granted, that was a bit slow faceroll:

You can't outheal a type C encounter. No matter how many healers you bring to the Lich King even on lvl 85 if some moron stands in the defile.

The truth is that Cataclysm Heroics are type B. You need an acceptable average performance. In a 5-monster pull, 2 shall be CC-ed, doesn't matter who CC them in the 5-man group (everyone has some form of CC).

You want to believe it's type C, because than you can blame the 33% success rate on 0.8^5, but in reality, the AVERAGE player is below the success limit and the 33% chance comes from the blind roll of getting enough above-average players to your group.

Also, your observations from group success are distorted by the fact that 20% of the group is you. A completely random group is even worse.
Heroics of the Cataclysm type (C-type :) simply do not fit into a anonymous Dungeon Finder tool.

If I would still get some friends of my server together and start an heroic type C were great (if there's other content to complement it!).

But in a random group I just don't want to get to know the other player ,sorry. They are strangers to me. I am a stranger to them. They are player-controlled NPCs (love that oximoron).

'Fortunately', heroics were already nerfed pretty hard, no matter what Blizzard says. This weekend I did about 15 random heroics as a tank. I managed to complete every single one. Most without a wipe. Only one took longer than 1.5 h.
Gevlon is right, heroics are actually type B in Cata. I can't think of any encounters where a mistake by any random person will wipe the group, ala Defile, Gormok enrage, etc.

Also the requirement for CC on trash packs is largely dependent on tank/healer gear + skill. When I queue up for a random, first thing I do is look at my healer's gear. If he's pretty much just gearing up, I will start marking up mobs for CC'ing, etc. If he's already in mostly 346 blues and/or epics, I usually forgoe CC on trash completely with no problem except on specific packs with a healer mob or casters with extremely high damage (pally tanks are ridiculously good at self-healing, and have nice CD's).

A good tank + healer can absolutely make a heroic dungeon quite trivial, provided the DPS are not doing absolutely awful (e.g. 3k dps). After a tier or two, the cata dungeons will proceed to type A encounters, where mechanics can once again be ignored and chain pulls will be the norm.
Your example of Baron Ashborne is also close to type A than B. He actually ONLY needs one interrupt ( although two would be helpful. Since all tank classes come with interrupts (except prot paladin, but that's changing next patch), chances of a group without a single warrior, death knight, ret paladin, rogue, shaman or a mage are extremely low (probably < 5% chance), but it does happen which is why the encounter is being nerfed.

So, once again the fight can be carried through by a strong healer and a tank who knows how to interrupt.
Honestly, I think a big part of the problem with Cata heroics, to the extent that there is one, is that bad DPS are no longer as carryable. There are a lot of fights where the DPS output needs to achieve some reasonable threshold, or CC needs to happen in a timely manner, and many of the bad DPS players that thought they were good because they got carried through LK heroics are finding out that they are not, in fact, good.

Obviously, the solution, for them, is to go cry on the forums.
The only HC encounter I've found which is truly type C is Corla, Herald of Twilight, in Blackrock Caverns.

3 players are asking to stand in the beam for 80 stacks, before stepping out for 10 secs. The timing is currently very tight and if 1 person fails, it's a wipe. You also need 2 people to interrupt the fear.

It's worth noting that type B encounters are trivialised by the 5% dungeon finder buff and the gear that can be bought with honor when the new raid tier is released.
Interesting concept. Isn't it the other way around though? Challenging the weakest would be the lowest level of difficulty, since only the weakest feel challenged by the encounter. Challenging the strongest would be the highest level of difficulty, since it would be of such difficulty that even the strongest would feel challenged. :)

@William: "Gevlon is right, heroics are actually type B in Cata. I can't think of any encounters where a mistake by any random person will wipe the group, ala Defile, Gormok enrage, etc. " Sure there is. At Corla, for instance, if a player lets himself get MC'd by the beam, he can pretty much wipe the group by himself.
But is there problem? Were you having more fun before?

I was shocked when doing WotLK normal dungeons while leveling for when I quit playing, a normal dungeon was still a challenge when you are in greens... Not in the WotLK. The problem is that even if they implement the 3 level difficulty Ghostcrawler wrote on the post, most players will still complain if they don't faceroll the hardest level.
At Corla, for instance, if a player lets himself get MC'd by the beam, he can pretty much wipe the group by himself.

This is not correct. Just tanked her yesterday and one of the randoms, of course, failed. I tanked boss and add together then, telling the party to kill the add first and to interrupt it while I interrupted the boss. Was a smooth kill.

Actually, there is even an achievement for failing three times for every add and only then killt he boss. So it is definitely possible - even easier if you have the equip.
Personally I do my heros as a Pally Tank (3 interrupts) and with my usual Arena Mate a heal Shaman (1 interrupt). The Baron-Interrupts can be done by us two for an excample, so if the 3 DPS are doing enough damage to outburst the Pain and Suffering he is done.

4/5 groupinhabitants need to do at least one thing right. As this would be CC / movement / switching Targets or DPS.

This depends on the encounter, but I never had any real troubles in Cataclysm Heros but Altairus when I've been drunk and didn't manage to avoid the Vortexes...
As a DPS, I can't think of any C-type encounter in heroic dungeons. I've even had the questionable honor of being carried through Corla. The closest mechanics-wise would be Isiset and the supernova, but I've never seen someone fail at it. I've seen people fail at Ozruk and Azil, but even they have a relatively large margin of error.

I propose a fourth type: Challenge Someone. At random, a party member is chosen who must survive, kite, interrupt, CC or just DPS down something. On more forgiving encounters, that person can be reassigned on-the-fly or assisted by others. Only if everyone is negligent it will result in a wipe. Unlike Type C, not everyone is guaranteed to be challenged. Nor will a single failure cause a wipe. Most encounters with adds would belong in this category: Erudax, Ammunae, Anhuur, Obsidius, Lockmaw, Dragha..
I suspect CC on trash will shortly be a thing of the past, tbh. I already do most of last week's runs wotlk style (including GB this morning, 45 mns, one CC before boss for safety)

Last week, out of 10 randoms, 3 failed at first boss and stopped, 7 finished the instance in less than 1 hour.

Cata heroics are just challenging who didnt read or comprehend the tactics involved in each boss, imo. Get one clueless player you pass, get two you won't :)

and yes, Corla is not C. As the ach shows :-)
I must disagree with most of the points:

- on Ashbury: there are exactly two abilities who MUST be interrupted, both on pretty long cooldowns: Stay of Execution and Mend Rotten Flesh. Both on at least half a minute cooldown. Since every tank has some kind on interrupt, I really cannot imagine that of the four people left in the party none has an interrupt on a half a minute cooldown to take the other ability. Only two classes I can think w/o any interrupt are some specs of priest, lock, and holy paladin.

- on the general difficulty of heroics: although it can't be quite high, you don't need 5 good people to finish any of them. Not even close. As a Prot Paladin with mostly iLevel 346 gear(my offspec, main is Retri), I ran dozens of them together with a good healer and 3 random DPS from LFD. Very rarely of ever it happens to fail although, of course, we don't always get decent DPS. So, from my own experience, you can finish any heroic easily if you have good tank, healer, all 3 DPS don't die by standing in a fire every fight.
re-reading your post, tobold, i wonder exactly what do you intend by "heroics are so bad now"?

we all talk about how they are hard (or not hard enough), but seldom if they are great / are a great mechanic :)

For my part, i'd say the difficulty is just good, but the lack of rewards for it is a deception. Come to think of it, the whole 359 loot is not that much of an upgrade over 346, tbh.

You have plenty of areas in the game where 1h play is more rewarding gear-wise than doing heroics, unless you farm them in 30 mns or something.
To be honest I think people need to stop trying to go to heroics as soon as they get the minimum item level. Everyone seems to think that if they have the minimum item level they will automatically complete the dungeon.

I've also seen people picking up any items they can to push their ilevel above the minimum to get in the dungeons.

I don't have a problem with the current heroics. In TBC you had to run ALOT of regular dungeons before you could complete heroics and they were still hard.
There are players that play games to relax and have fun. The relax part is crutial when it comes to the entetaniment value of the game.

If someone got carried through LK with others doing the job for him he had fun with no hard work involved - now such a casual player finds himself unable to play, beacause they actually hve to know all these thing they didn't have to know before and learning them isn't at all fun, relaxing or entertaining. So yeah, cata heroics are too hard. I do not know the numbers, but if the number of player that find them 'too hard' is large enough, then the whole thing is done incorrectly. It was meant to entertain players and in general it doesn't. And even if you can find a team and do them, it's still difficult enough that you have get all angry and focused and generally tired while doing them. And so you grind them and never have fun, which is the whole point of playing the game.
I faced a similar but different situation last night in LOTRO. I was healing Sammath Gul (SG) last night with what would have seemed to be a star-studded group: the leader (an RK with good gear) was very vocal and gave very specific instructions; our tank (a warden with good gear) seemed to know what he was doing; and the rest, a hunter, champ, and LM, were also all well geared and seemed to know what they were doing.

Of course, the hunter and champ both pulled aggro from the warden the entire instance.

The fellowship leader (the RK) was constantly telling people how to play their classes which would have been fine if he had been constructive and positive (and correct), but instead he was demeaning and flat-out wrong with a lot of his advice.

Ultimately, we wiped on Gorothul one too many times. Of course, as the minnie, I was blamed for all of the problems. In reality, the problem was the champ and warden failing to interrupt Gorothul, and the champ and hunter pulling aggro off of the warden which caused the boss to face me and hit me with his AoE cone.

In this case, SG is a type C instance--it challenges the characters that can interrupt on Gorothul (in addition to the other challenges the instance presents. What is at issue here, though, is how the blame game is played.

As the healer, I am the perfect scapegoat for whatever failings the other classes face, as most failed encounters end with the group "dying" and the healer being unable to prevent that "dying" somehow. I left the group to their own bickering and to find another healer to blame.

Fortunately for my ego, I returned to the instance with a completely different group with a less than favorable class make-up (Minnie [Me], two cappies, burg, guardian, and RK), but we managed to down all of the bosses, including Gorothul and Demafaer in hard mode.

it is not really that stuff is too easy or too hard. It is the framework that matters.

I, too, had a problem enjoying random Cata dungeon (when they were still hard ..). And I have asked for harder dungeons since the release of WotLK.

Problem here is not the individual dungeon. I never had much insterest in heroic raids for example. Challenge alone does not attract me - nor most players.

What catches us is the feeling of overcoming things that feel like a natural obstacle. Cata heroics do not feel 'natural'. They feel like an artificial stepping stone on your way to raiding.

Original Scholomance was not a stepping stone to raiding, but a hard piece of work that felt natural. After all you attacked the infamous scourge!

It is when games lose the world that content feels annoying unless it is inherent fun. But only very, very few games are that good that they are even fun outside of any 'world aspects'.
The three types aren't really that distinct. When we entered heroics, most of us in faked 329 gear, a few days after the release, most encounters were essentially type C. For many bosses, the only way I could heal them was a maximum rotation on the tank, so I literally did not get to cast heals on dpsers, and if a dps died then we couldn't win before I ran out of mana. Little mistakes from anyone would cause wipes.

But with only a few exceptions fights are very gear sensitive. If your healer has a little more mana and throughput and your tank has actual tanking blues instead of questing greens, then the healer can actually direct heals at the dps and little mistakes don't have the potential to kill everyone. If a dps dies then the healer can last long enough to win anyway.

I tend to agree with Hirvox that more of the encounters are of the form of challenging someone, often someone who you get to choose. There are encounters where someone needs to know how to interrupt, but as long as anyone does you'll be fine. If I am in a PUG I do cringe in anticipation whenever I can't be the one filling that role.
It seriously feels like no one remembers anything before Wrath. I actually think people are beating Heroics faster in Cat than they did in TBC.

My knee jerk reaction is to simply say stfu and deal with it. I understand people are upset but the game has been out for what, almost 2 months? I'm actually very happy with the pace of progression.
To echo somewhat what Epiny and others have said, heroics at currently attainable gear levels and with a coordinated group are already "easy". My guild group on pulls that used to require CC chains and tanks blowing defensive cooldowns now just AoE. Grabbed an extra mob? No problem. Someone stood in the fire a little too long? The healer does have mana to spare for that. Even playing sloppily after a long night of raiding, we can clear most heroics in thirty minutes or less.
What Ben and Nils said are the exact solution and problem for PUGs doing dungeons.

In WoW, it seems that players don't want to communicate with each other even if simple communication can save a lot of trouble. Ben got it right that communication, being friendly, and willing to help out randoms/newbies can easily solve the problems. But of course there are also players like Nils who just don't want to talk to other players in PUGs that resulted in potential failure.

Everyone seems to think that if they have the minimum item level they will automatically complete the dungeon.

This is true, but the one thing that makes things worse is that not only they do that, but they expect to complete the dungeon doing the exact same thing and putting the same effort as if they have maximum item level. It's just lazy and stupid mentality.
It's all relative.

In 4 months, I'm sure that these hard heroics will be relatively easy as everyone has made their way past them into actual raiding.

In 8 months, people will use heroics for gearing and emblems/badges (assuming there is still emblems/badges) for their alts or super high ilvl gear.

In a year, heroics will be speed runs again, even if there is CC, aggro management, interrupts, etc, required.

Lets not forget that besides the experience/gear issues that will become obsolete over time, the squeakiest wheels will cry for nerfs, and Blizzard, being a smart company, will deliver. Honestly, I'd "enjoy" the difficulty now, knowing that if you aren't the one messing runs up, you're at least a decent-good player. Soon enough, everyone will be able to get through a heroic without too much difficulty.

And what fun is that?
Yeah, I can't say I agree with this either. You can argue that Baron Ashbury or a particular encounter is too hard or poorly designed. But I don't agree with what seems to be your more central premise which is that type C is inherently worse than a type A.

You're basically saying that if DPS was easier than tanking or healing, this would be good design. Then players who wish to have an easier time of it, either because they're not that skilled or they're just lazy, should only play DPS and leave the tanking and healing to better or more responsible players in the hopes of being carried through. I fear that this is already too far in this direction already, hence the 30min DPS queue and instant heal queue.

If it went even further towards the type A design then it seems to me that you would see a lot more immature and lazy players abusing the system because they would have a way to get more rewards for less effort. I think MMOs have taught us that if ever such an avenue exists, the masses will exploit it. I would much prefer if every player in the LFD felt that they took some responsiblity for the group's success, which is type C by definition.
These divisions are not useful. The descriptions are just arbitrary sections on the spectrum of "how difficult an encounter is tuned".

A proper analysis involves the potential to make up for mistakes of other players, which is to say what the skill cap is but also affecting the options available to players in the sense of which risks are acceptable.

"Most of the PUGing playerbase is not skilled and does not try to improve" is not sufficient justification to lower their tuning, since the restriction on progress is not mistakes or unavoidable factors like lag/disconnecting but rather lack of effort.
Smartypants said
But of course there are also players like Nils who just don't want to talk to other players in PUGs that resulted in potential failure.

It is important to mention that this only applies to PUGs. I love to socialize with people that play in the same world as I. I used to organize a lot in classic and TBC.

In classic I'd never dreamt of making a "fast Scholomance run" after work (I didn't work back then, but .. well).

My expectation of entitlement nowadays is that as soon as I have the gear level I run into heroic dungeons and beat them. Not as part of the adventure of my character, but as part of preparing for raids. And, btw, this is exactly what I did and do.

I have no respect for heroic dungeons. Not for their stories, not for their inhabitants. Not for other players who I will never meet again and happily kick if their disconnect is longer than 3 minutes.

Basically the world aspects are gone and what is left is the pure gameplay. That gameplay is enough fun to engage in it. Blizzard is good at gameplay. But this and anonymity are the explanations of almost all differences between typical MMORPG 'dungeons' and Cataclysm dungeons.

Gameplay in classic WoW was arguably much worse than today. And still the dungeons remain in my memory as something enjoyable. Not as an abstract obstacle on your way to raiding.

But WotLK dungeons do not remain in good memory and I have a feeling, Cataclysm dungeons won't, either.
Unfortunatley, this post has resulted in a lot of E-heroes stroking their e-peen.

Tobold is absolutely correct that in most random Heroics, you cannot carry one slacking player. Peroid.

Sure, if you happen to have four other great players, then they can make up for one failure dps. But what do you do on Baron Ashbury when the only other interrupt besides the tank (or the tank) always misses his interrupt? What do you do in H throne of tides when one dps attacks the blight beasts and then can't target ozumat? What do you do on trash pulls when you have only one class with a reliable CC (very common with all the warriors and dk's) and there are two healers and the class w/ the CC keeps messing it up? Sure, if your group is otherwise great, you can make up for it. But in LFG, your other players are typically average and cannot pick up the slack.
Another level of difficulty that you did not mention Tobold is just straight up TIME. Many of us only have so long to finish a dungeon before our wives (or w/e) start to aggro us.

The daily heroic mechanic is awful right now b/c of the time required for non-guild groups to finish some dungeons. Blizzard really needs to adjust it somehow so you only have to do 3 random heroics per week instead for the same points or something. Or just make it like it was before where you have a daily dungeon and you know what it is ahead of time. I will never waste my time in Grim Batol with an LFG pug again.
The concept of good coordination and communication is key to completing Cata heroics. If you have it, the heroics are definitely do-able. If you don't, you're in for a frustrating run.

I think the bigger issue here is that the LFD tool as it exists doesn't do a good job promoting communication. Why bother to get to know my group members when I'll most likely never see them again? It's not like I can join a guild with any of them (unless they happen to be from my server). I can't go quest with them, I can't even friend them and join another heroic later with them.

So what you're left with is a the "C" type player that gets very little instruction from his group because he's just expected to know what to do (and how to do it). The other members don't care about him as a person, they just care about his role. If he sucks, they'll just kick him and find another.

If the LFD had more long-term benefits such as a LFD friends list, where you could friend and group up with previous LFD players you had fun with, I think some of the bad habits presently bringing down the LFD system would lessen a bit.
@thehampster :

But what do you do on Baron Ashbury when...

Nothing. The group will break up at the first wipe :)

You either know what to do and setup interrupts, or fail.

As james says, the LFD mechanics are currently asocial. The weakest won't be challenged, he'll be kicked repeteadly until he settles with his right level of skill / dedication, normal runs.
Object detection remains an open and challenging problem in computer vision. Historically, the subclass of detecting people has attracted increased attention given its importance to many real world applications, and its challenging
level of difficulty.
Post a Comment

<< Home
Newer›  ‹Older

  Powered by Blogger   Free Page Rank Tool