The Snail’s Report: Weaving Works!

12 10 2009

Busy times sure do cut down on the ability to play the game. Unfortunately, this workload isn’t likely to let up anytime soon. That said, I have a bit of time now to check in with the snail’s progress report.

Theladas is slow. I find myself far too distracted by crafting and gathering to keep up with the grind-whoring masters. As such, I’ve only recently broken level 21 on my way to the top. To be honest, I’m really not too concerned about being behind. I won’t be the first of my class to get top-end gear, but there’s no way my schedule could support the necessary raiding times to get that stuff anyways. I’ll be more vulnerable in PvP to high-level enemies, but there’s not much I can do about that – only the first through the Abyss get to be on top, and they’ve easily had five times the gametime that I’ve had.

Theladas also has bad luck. When crafting a series of Handicrafting Jewelry pieces, I ended up with only one HQ proc out of the twelve attempts that I made. It’s demoralizing, really, when I had such good luck with these things in the Closed Betas. I suppose I wasted all of my luck back then – how foolish of me.

True to my word, I haven’t worked on Jerricah or the others yet. I’ve reserved the names and made initial cuts at their avatars (I may make a second pass some other time), but they’re all still stuck at level one. I really do want to see the middle and end-game content that wasn’t available in the Closed Beta, it’s just gonna take me a while longer to clamber through the leveling ladder.

Allison may not be a Daeva, but she sure has an awesome set of wings.

Allison may not be a Daeva, but she sure has an awesome set of wings.

In the free time I’m not spending in-game, I’ve been watching Allison & Lillia. It’s a curious show that has a lot of Steampunk themes running through it. I find it very endearing, though the obliviousness of the characters is occasionally frustrating. The mysteries and adventures aren’t quite as engaging as the adventures of Ghost Hunt, but I like the setting: the technology, the times, and the conflicts are more believable (perhaps because they aren’t hinged on phantoms…). Anyways, it’s worth a look for anime enthusiasts.

On the questions front: More Weaving!

Theladas is a Chanter, which means his melee skills are sub-par compared to Gladiators and Assassins. His ability to push out numbers is still vital, however; I don’t ever want to be carried in a group, and killing enemies faster leads to less downtime in the solo venue. So I did a lot of experimenting on what approach to skill use was most productive.

First, some information to scope the Weaving problem for Chanters:

Chanters operate on an 8-second rotation with a 2-second swing timer. I have four skills that I use in the current rotation. All of my blackout periods seem to align at lasting for only 1 second, though the animations often bleed over (The animations are irrelevant for game mechanics, of course). Auto Attacks hit for 60-120 damage, while Special Attacks hit for 160-260. Given these parameters, I tried a few approaches to weaving:

  • Skill Spam: I burn out my skillset in 4 seconds, give or take. Two swings go out, one at 5 seconds and one at 7 seconds. I can wait one second for a third attack to land at 9 seconds, or cut it off and return to the skillspam rotation.
  • Tight Weave: With a bit of prediction, I can land a special ability just as the animation for the auto attack triggers. The result is essentially a boosted special attack, with the auto-attack damage and the special skill damage landing at virtually the same time. With proper timing, four boosted attacks will land in just over 8 seconds.
  • Tight Weave Adaptations: On an 8-second rotation with 4 auto-attacks, there’s no break for throwing on a self-hot or using any more special abilities. But the solution is pretty simple, in principle: when faced with a new special ability, it will be concatenated into one of the two existing chains. I then adapt that half of the rotation to be three skill-spammed abilities, effectively cutting out one of the auto attacks in favor of a special attack. For off-chain abilities, such as an instant HoT, I slip the ability in between the two chains. Again, a single auto attack is sacrificed for the ability if proper timing is maintained.

So, what does this mean? Well, simply put I deal 120-240 additional damage every 8 seconds by using weaving over skillspam. At level 21. By planning ahead, I can prep a heal in between skill chains at the cost of only one auto-attack. When I finally acquire more attacks for the rotation, I can again drop a single auto attack to provide space for the special skill. Once I have 8 special attacks to use on every 8-second rotation, I will no longer be weaving; until that time, weaving provides better returns than skillspam.

Extensions to Gladiators, Rangers, and Assassins? You guys will have to test it out yourselves. I suspect that weaving will always have some benefit, if only to help you queue your abilities up consistently in PvE.

Bottom Line: Don’t be a carry, Chanters; unless assigned to main-heal a random farming group, there should be a cleric in charge of healing the team. Your mantras do part of your job, but only consistent and well-timed weaves will bring your DPS element up to par with the rest of the team.

Okay, back to work with me. It’s time to prep a robotic forklift for simulation.

Busy times sure do cut down on the ability to play the game. Unfortunately, this workload isn’t likely to let up anytime soon. That said, I have a bit of time now to check in with the snail’s progress report.

Theladas is slow. I find myself far too distracted by crafting and gathering to keep up with the grind-whoring masters. As such, I’ve only recently broken level 21 on my way to the top. To be honest, I’m really not too concerned about being behind. I won’t be the first of my class to get top-end gear, but there’s no way my schedule could support the necessary raiding times to get that stuff anyways. I’ll be more vulnerable in PvP to high-level enemies, but there’s not much I can do about that – only the first through the Abyss get to be on top, and they’ve easily had five times the gametime that I’ve had.

Theladas also has bad luck. When crafting a series of Handicrafting Jewelry pieces, I ended up with only one HQ proc out of the twelve attempts that I made. It’s demoralizing, really, when I had such good luck with these things in the Closed Betas. I suppose I wasted all of my luck back then – how foolish of me.

True to my word, I haven’t worked on Jerricah or the others yet. I’ve reserved the names and made initial cuts at their avatars (I may make a second pass some other time), but they’re all still stuck at level one. I really do want to see the middle and end-game content that wasn’t available in the Closed Beta, it’s just gonna take me a while longer to clamber through the leveling ladder.

In the free time I’m not spending in-game, I’ve been watching Allison & Lillia. It’s a curious show that has a lot of steampunk themes running through it. I find it very endearing, though the obliviousness of the characters is occasionally frustrating. The mysteries and adventures aren’t quite as engaging as the adventures of Ghost Hunt, but I like the setting: the technology, the times, and the conflicts are more believable (perhaps because they aren’t hinged on phantoms…). Anyways, it’s worth a look for anime enthusiasts.

On the questions front: More Weaving!

Theladas is a Chanter, which means his melee skills are sub-par compared to Gladiators and Assassins. His ability to push out numbers is still vital, however; I don’t ever want to be carried in a group, and killing enemies faster leads to less downtime in the solo venue. So I did a lot of experimenting on what approach to skill use was most productive.

First, Chanters operate on an 8-second rotation with a 2-second swing timer. I have four skills that I use in the current rotation. All of my blackout periods seem to align at lasting for only 1 second, though the animations often bleed over. Auto Attacks hit for 60-120 damage, while Special Attacks hit for 160-260. Given these parameters, I tried a few approaches to weaving:

Skill Spam: I burn out my skillset in 4 seconds, give or take. Two swings go out, one at 5 seconds and one at 7 seconds. I can wait one second for a third attack to land at 9 seconds, or cut it off and return to the skillspam rotation.

Tight Weave: With a bit of prediction, I can land a special ability just as the animation for the auto attack triggers. The result is essentially a boosted special attack, with the auto-attack damage and the special skill damage landing at virtually the same time. With proper timing, four boosted attacks will land in just over 8 seconds.

Tight Weave Adaptations: On an 8-second rotation with 4 auto-attacks, there’s no break for throwing on a self-hot or using any more special abilities. But the solution is pretty simple, in principle: when faced with a new special ability, it will be concatenated into one of the two existing chains. I then adapt that half of the rotation to be three skill-spammed abilities, effectively cutting out one of the auto attacks in favor of a special attack. For off-chain abilities, such as an instant HoT, I slip the ability in between the two chains. Again, a single auto attack is sacrificed for the ability if proper timing is maintained.

So, what does this mean? Well, simply put I get off 120-240 additional damage every 8 seconds by using weaving over skillspam. By planning ahead, I can prep a heal in between skill chains at the cost of only one auto-attack. When I finally acquire more attacks for the rotation, I can again drop a single auto attack to provide space for the special skill. Once I have 8 special attacks to use on every 8-second rotation, I will no longer be weaving; until that time, weaving provides better returns than skillspam.

Extensions to Gladiators, Rangers, and Assassins? You guys will have to test it out yourselves. I suspect that weaving will always have some benefit, if only to help you queue your abilities up consistently in PvE.

Bottom Line: Don’t be a carry, Chanters; unless assigned to main-heal a random farming group, there should be a cleric in charge of healing the team. Your mantras do part of your job, but only consistent and well-timed weaves will bring your DPS element up to par with the rest of the team.

Okay, back to work with me. It’s time to prep a robotic forklift for simulation.





The Social Threat to Aion’s Survival

2 10 2009

Anikka over at Sin Healing posted about the dangers in Aion’s community recently. I had been meaning to write on this topic, so I figure now’s as good a time as any.

I’m a big fan of positive communication
. I spend a lot of time giving presentations, so I’m always working to get information across to others in effective, concise ways. The majority of my research is on HRI (Human-Robot Interaction), and a big part of that is promoting various avenues of communication. This same effort for clear communication carries over into working here on my blog, and in Aion itself. I try to always be courteous, and I hope that nothing I present here ever comes across as condescending. I make assumptions, and I make estimations; I try to find answers to questions, and solutions to problems. I don’t want to attack people, and I certainly don’t want to present myself as some overbearing know-it-all: I don’t know it all. There’s a lot I don’t know, and that’s why I have so many questions. But right now, my mind’s fixated on one question in particular:

Why is it that Aion has such a high APR (Assholes to Players Ratio)? It seems like everywhere I go, there’s more assholes.

Sadly, I wouldnt be surprised if this guy was somewhere on my campus.

Sadly, I wouldn't be surprised if this guy was somewhere on my campus.

I’m consistently disappointed by reading any player-generated dialogue from just about anywhere in the game. Half of my own legion’s discussions and comments are either rude or offensive to various cultures. Reading anything in the region chat is like asking to jab burning pokers into my eyes. Maybe all the sensible people (like myself) just refrain from typing anything at all. That doesn’t really fix the problem, though: the apparent APR is what will hurt the game, even if it’s not an accurate representation.

And I’m referring only to legitimate players, here. Bots and goldspammers are obnoxious, but they’re easily ignorable. Bots will have to pass tests come patch 1.6 if they spam-gather. Goldspammers don’t really harass any one person: they just spread around a single obnoxious message to every player they can find and then wait for a while. People who find them to be the problem with the social scene in Aion should take a second look. Autonomous players may not help much, but they don’t do nearly so much damage as malicious players.

What is wrong, then? In a nutshell, it’s the overwhelming ignorance and cruelty with which all of the current gamers treat one another. Everyone’s already an expert in this game, and everyone already knows everything there is to know about this game (or so they think). So many players I’ve met already seem to think they know everything, and actually judge other players based on these facts they’ve accumulated so far; they know how to play the game best, and no one in their right ming would ever play any other way.

I’m not sure why people have to be so biased. I mean, doing what you enjoy is good, but it should never actively conflict with someone else enjoying his own thing. You could argue some semantics about PvP being a win-lose situation, but no person in their right mind plays PvP (or any competitive sport) with the delusion that they’ll win every match. There’s no fun in winning every match, after all – there’s no challenge, no struggle. People have an innate proclivity to seek out challenges. So PvP has give and take; it’s the challenge and risk that makes that kind of gameplay fun. But harassing other players in PvE settings, really? Or even worse, harassing other players for doing other things outside the game? Where does anyone get off thinking that’s okay?

The Internet Paradox

The Internet is a wonderful tool, allowing for direct communication betweent thousands of locations simultaneously. Talking with other people, independent of the physical distance between you and them, has never been so easy, openly accessible, and open source. And yet, the farther we move in the direction of using the Internet for communication, the worse our actual communication skills become. Mind you, I’m not talking about 1337 or “r u 4 reel?” stuff – those are degradations of language; I’m talking about communication skills.

This is best summed up by XKCD‘s “Internet Argument.” There’s no better way to state the problem: it’s far easier to be an asshole to a computer screen than to another human being. I think this is particularly relevant to the MMO scene: it’s so easy to get angry and frustrated when things don’t go exactly as you want, and the other people nearby (be they in your group or on similar solo quests) are easy targets. You can vent your frustrations out on them and no one will care; it’s just a game, after all.

Why do computer screens make us lose sight of what it is we’re actually doing? Whispering, “You’re a fucking retard. Why the hell are you using a Greatsword as a Gladiator? Get a fucking polearm!” to another player kinda disturbs me. It’s as if I were stopping a woman in the street and swearing at her for wearing a wide-brimmed hat on a cloudy day: “What the hell, lady? the sun’s not going to burn you, so take your fucking hat off.” Yet it happens in the game.

Whispering, “Fuck you, jackass, that was my Iron node,” is even more common. The act of stealing someone else’s gathering node is also common, and really underhanded. It’s the same as cutting in line at Starbucks; getting your coffee three minutes faster really is that crucial, is it? I’m glad your caffeine addiction takes precedence over your courtesy to other human beings.

Then there’s the personal attacks. “Why are you so slow? Grind more, bitch!” comments are pretty ubiquitous. “What kind of idiot does anything else with his free time? the game’s where it’s at, dude. Level now or just give up.

Everyone seems to hold the standard that if you aren’t playing for endgame Right Now, you aren’t playing at all. I don’t understand that. I don’t have the time to commit to the game for that kind of grind right now, and I’m really enjoying my pace as it is. And I’m obviously not spending all of my free time in-game: I am writing this, after all. I enjoy the variety. I enjoy having some changes in pace: group grinding on elites today, jogging around gathering the next, and writing up reflections on the next. Why on Earth would I force myself to get to the end of Aion, when there’s so much to be seen along the way? If I wanted to sit in the end-game lull, I’d still be playing WoW. I came to Aion for the full experience; Aion delivers an enriching game from the very first quests. I see no reason to skip all the content of the game simply to be “done with it already.” It’s not like I view the game as a chore – sheesh!

So there’s countless asinine comments flying across every communication thread I join. There are some decent conversations, too, to be fair. Some of my legion-mates are great, competent people with cool ideas to chat about. The problem is that now, so unlike my CB and OB experiences, the vast majority of players are no longer helpful, upbeat people. They’ve sunk into silence or frothing elitism.

Elitism

WoWs Elitist Jerks icon. I thought I left them with WoW.

WoW's Elitist Jerks icon. I thought I left the elitist jerks with WoW.

This is really a big thing ever since online communication forums were set up for multiplayer games. With the advent of theorycrafting, players who don’t have the time or interest to study their character class and stats can read the outcomes that someone else found. Whether these outcomes are accurate, or even within reason, is completely arbitrary unless cited with in-game screenshots. The theorycrafting is cool: I do a fair bit of it myself, obviously. I am thoroughly offended by anyone who takes this sort of information and uses it to hurt others, however.

Okay, so putting shield defense manastones in your leather armor is a bad idea: I hope that’s clear to every Scout class in the game. But if I mix HP and Attack and Accuracy on my Scout’s gear because Crit stones don’t drop and costs too much on the trading house, do you really feel good in calling me out on it? Optimal or no, it’s not a life-changing decision at level 18 – the gear will be replaced soon enough, anyways. I might as well get a little benefit from the stones I find while I can, right? Or, even if I go exclusively for Parry and dual-wield swords for the additional parry, is that really a decision that you have to insult me for?

Even looking at game mechanics: the Weaving debate. Do you realize just how opinionated some players are on the concept? I’ve heard even my own legion-mates say “Fuck weaving – just mash the buttons, noob.” Now, I’ll grant that weaving is open to debate: I don’t assert that it’s better in all conditions. It also takes more work. But, seeing as I can verify that I get an additional Auto-Attack (along with all of my special attacks) every 8 seconds on my Chanter if I weave my specials rather than spamming, I’m convinced that spamming is not the correct answer in all cases. Either way, it shouldn’t be a big deal: I don’t mind people who button mash, nor do I mind slow weaves that don’t actually gain anything. I do mind people who judge others on the decision, though; intolerance for anything that isn’t deemed “optimal” is a dangerous, destructive approach to gaming interactions. No one’s perfect at this stuff, and even minute details (like latency) can make a stellar weave fall apart. Thus, presuming to have omniscence on the weaving topic is just another way of being an asshole.

The PvP Inflammation

At its core, Aion is a competitive game. There’s tons of competition between Elyos and Asmodians, as well as between players on the same side. Named mobs, quest-dependant mobs, limited resource nodes, and so forth all contribute to the competition. This naturally contributes to the arguments and frustration: not everyone can win, yet everyone wants a chance to be on top.

Naturally, this increase in frustration is a primary fuel for all of the ill behavior in-game. If everything in the game went smoothly, showing off how every player has a good talent in some respect, then there’d be less anger and disappointment seething within some players. But now that everything’s in a competitive arena, there’s so many more moments of failure that players have to deal with. How do most players deal? At present, it seems that yelling at somebody else is the easiest solution.

  • Blaming teammates for not being competent enough to keep up.
  • Blaming game designers for letting one class have an advantage over another.
  • Telling off a new player for doing something slightly sub-optimal as an indirect vent.

There’s several outlets for blame, and a lot of that tends to stream over regional or legion chat. But then, all that anger leaves one player and offends the people on the receiving end. How do those players deal, now that they’re doubly stressed by their own game as well as the anger of some other player?

You can see a vicious cycle ensuing here. This is how divisions between people are made; this is what breaks couples up, starts fights, starts wars, and benefits no one. Even the original person doesn’t feel all that great: someone else is likely bitching at him about something else. It’s dangerous, horrible, and will rend Aion’s social structure apart if it persists.

A Solution

This isn’t a hard problem to fix, so long as people recognize that it needs to be fixed. The secondary killer of social atmospheres is apathy. Once players stop really caring about the garbage spewing through open chat channels, that avenue of communication is as good as dead. So, hopefully I’ve expressed the problem sufficiently above.

What’s the fix, then? There’s multiple solutions, to be sure, but I’ll focus on just one for now: Sportsmanship.

Aion is a competitive game, as I’ve said before. There’s all sorts of conflict and struggle and there can’t be as many winners as there are winners at any one time. This Shouldn’t Be News to Anyone. If you queued up for Aion, expect to have competition. Expect to even have unfair competition sometimes. If you aren’t comfortable with this, then I whole-heartedly recommend that you look for another game to play. There’s nothing wrong with not liking the competitive atmosphere here – it is harsh, even in the best of circumstances, and there will always be struggle and anger and disappointment to cope with. But Aion is a game, not a chore; it should be something that you enjoy doing. If you aren’t enjoying it, then don’t feel ashamed – just look for something else. It’s your free time, after all – you should spend it in a way that feels relaxing, fun, or entertaining (How can someone enjoy competition, you may ask? Well, weirder things have happened – I enjoy working with math, after all…).

Now, for those of you who do enjoy some, most, or even all of Aion’s game content, be prepared for the disappointment that is inherent in any competitive environment. The easiest way I find to do this: go in with an attitude of building others up. When you’re playing Aion, have the goal of supporting all other players you encounter, rather than pushing them down. This is the true essence of Sportsmanship: promoting the other players on your team, and even on the opposing team, rather than using scathing remarks or foul play to reach your goal.

You might be wondering how the hell this could possibly make sense, but I promise that it does. The key is to promote others without becoming a doormat yourself. Race for gathering nodes, race for mob kills, and fight as best you can in any PvP encounter. However, when one of those fights lands in someone else’s favor, don’t attack them verbally. Congratulate them on doing so well. Learn from what they do. Similarly, when you win, don’t sling insults on the injury. Try instead to suggest what might have turned the fight in their favor, or perhaps another spawn location for the same type of gatherable material. Sure, it sucks to lose, but you knew you were going to lose some fights when you logged in. If you can’t handle that with a smile, then you aren’t playing the right game. Whispering every single person you meet with some compliment is pretty awkward, to be sure, but sparingly-used encouraging comments are far more productive than any amount of insult.

Okay, so Aions world looks a little different...

Okay, so Aion's world looks a little different...

A good analog to this is the game of Baseball. Aion is a lot like Baseball: there are two distinct teams, each with many players, and each player has a moment to excel on an individual level – at bat. If a teammate strikes out, it sucks; if your near-home-run hit gets caught on the warning strip, it sucks. But MLB players get on the field knowing that not everything will work out perfectly. They don’t deride their teammates when they miss a pitch, and they don’t run to the outfield and punch the guy who caught their hit. They’re disappointed, snap their fingers, and wish they’d done better for sure. However, the truly good players will be impressed by the long-shot catch made on the warning strip, and will coach his fellow, batting-shy friend through the motions to improve his swing. Not every player on a Baseball team can be an all-star at once, but the other players on a team don’t ever let their disappointment at missing that opportunity show; they support their lucky teammate, and they smile.

I won’t lie, saying that good Sportsmanship is easy. It’s a pain in the ass, and it’s genuinely a struggle to be sincere sometimes. But the payoff is worth it. I can just imagine what an amazing community Aion could have, if only more of the players took the time to be supportive, rather than derisive. There’d be more group invitations floating around; there’d be so much less garbage on the regional channels that I could subscribe to them again; there’d be competition and struggle without the bitter aftertaste, regardless of who won the competition. There’d still likely be cheating and frustration, but players would be able to handle those infractions with poise: calmly report abuse of game mechanics to a GM, and carry on.

Naturally, this doesn’t get rid of anger and frustration. Outlets are always needed, to be sure. PvE content is one easy way to beat the living daylights out of something to make yourself relax. Maybe just jogging into town to do some solo crafting will take the edge off after a particularly painful Abyss experience. Ranting and raving on a blog is another way to get your frustrations off your chest. I fully understand that things won’t always be perfect, and that no amount of go-getter cheering and support will fix everything. But that’s not the point here. Rather, if we can just remedy the social interactions of the game, I think there will be marked improvement in the game experience across the board.

The first two letters in the MMORPG acronym stand for “Massively Multiplayer.” Aion is a multiplayer game. If you can’t play well with others, I recommend finding another game to play; there’s nothing wrong with this, I assure you. I just want you to enjoy your free time. If you think you can play well with others, then I challenge you to show this to the other players in Aion – lead by example with good Sportsmanship. The ORPG part of Aion is handled by the Aion devs, and they’re doing well so far. Keeping the MM part of Aion alive and enjoyable is the responsibility of the players. Can you help with that responsibility?





How can we Estimate Better?

23 09 2009

Here’s a fun, surprisingly relevant problem that Aion’s creators doubtless have been wrestling: how do we estimate, and how can we do it better?

You can look at it like this – Go, extended metaphor!

How many Jellybeans are in the jar?

How many Jellybeans are in the jar?

Imagine that you’re working at a summer camp, and today you’re in charge of distributing snacks. All that’s on hand is a large glass jar full of jellybeans. There’s no way that you can see all of the jellybeans from any one angle, and there’s too many to reasonably count out one-by-one if you poured them out. All of the kids in the camp will be heading out for snack in about fifteen minutes, and they will each have a dish into which you should put 10 jellybeans. Any leftover jellybeans are thrown away – all those grimy hands in the jar is just bad news.

Now, there are a couple things you can do in those fifteen minutes. You can run to the store and buy more jellybeans, if you think you’ll need more. You can also siphon off some of the jellybeans for safe-keeping, so they don’t have to be thrown away.

Your goal, then, is to balance the amount of jellybeans on hand to feed all of the kids in the camp with the least possible waste (all that spare money for more jellybeans comes out of your paycheck, by the way!). There’s nothing you can do to be sure that your ratio will 1:1 fit with the number of kids in the class – how best do you get close to it?

There’s a few approaches:

  • Better safe than sorry is a common answer. Buy extra beans, and no worries if they have to get canned. A typical conclusion, especially from the consumers of America: we have stuff to spare, and a feeling of infinite dump space. A little extra waste won’t hurt anyone, and we’ll guarantee that everyone gets something to eat. Not a bad approach when the resource is cheap, and excess material has no real consequence.
  • Or perhaps you’re more clever than that: buy the extra jellybeans, then siphon them off to clean storage. From storage, you only replenish the jar as necessary to meet the demand of the kids. This works well if the kids are patient enough for you to refill the jar. Hungry, screaming children are rarely willing to wait any longer than absolutely necessary for food – standing in line while staring at other kids eating their jellybeans just sucks from their perspective.
  • A third approach, if only to illustrate the multiple options: use a back-off handout system. Kids at the front of the line get the normal amount of jellybeans, but when the jar hits half-full, you ration it out a little more sparingly: 9 beans per kid instead of 10, for instance. Cut back more as your supply dwindles until you see the end in sight. This isn’t a fair distribution, but gets something to everyone with a constant supply of jellybeans.

There’s a lot of options, and each one tries to address the hard balance: how much supply do you put up front, given how many people are coming, when you don’t know how far a given amount will actually go?

The problem can get a lot harder, too. Imagine that, instead of working at a camp, you’re catering youth events at your local park: now you have no measure of how many people will show up today, and you can’t safely extrapolate how many people will come in the future based on today. Essentially, when you remove the constraint on how many people are coming, managing your jellybeans gets even harder. After all, you can’t hold enough jellybeans for everyone in the world, and getting as much as you can would be horrendously wasteful if only a handful of kids show up on a rainy Tuesday.

Talk about a negative edge on approximation, huh? The point I’m trying to illustrate is that estimation is hard. At the same time, estimation is an integral part of our lives, and we need to estimate several things every day. From supplying food for kids to tracking gas used in our cars to guessing how many groceries we need to get through the week, we have to make guesses about what’s going to happen in the future. Sometimes we use measurements to help us: our cars have gas meters to help us track our fuel consumption. Sometimes we use past history: I’ve only needed one gallon of milk each week for the past year, so I don’t think I should buy two this week.

But then, sometimes our easy comparators are unavailable. There’s no scale handy for my huge jar of jellybeans, and this is a new job. How can you hope to gain some intuition into feeding kids that you’ve never met, with an unknown amount of food? Intuition here is going to be crucial – with intuition, we can guess with more certainty, and know that our errors will be less drastic if they do occur.

  1. Know what you know. This may sound trivial, but it’s important. Let’s look at the youth events in a park example again: I said there’s no way to know how many kids are coming, right? We can at least place some of the limitations we know in effect, and that will give us some bounds for estimation. Say the city has only 50,000 inhabitants. The activity at the park is oriented for kids, and probably has some age restrictions; if the kids are all supposed to be within 9 to 14, that’s likely to be within 10% of the town’s population. So, that’s just 5,000 kids, at maximum. Another good question is “how big is the park itself?” if it’s small, you likely can’t fit all 5,000 kids in there at once. If there are sister events happening across town, you can divide your maximum attendance down accordingly. So, I don’t know how many people are coming, but I do know that it won’t be more than X, based on the parameters here.
  2. Ignore precision. I think this is fairly clear from all of my examples, though you might be a bit uneasy in doing it yourself. Just remember that the details in estimation are irrelevant: 38,475 people are the same as 10,000. The paradigm my suite-mate told me was “the only numbers you use in estimation are 1, a few, and 10. Multiply them together as necessary to get the estimates you need.” Even “a few” is extemporaneous. So, for jellybeans: we’ve got a jar, and it’s got some dimensions to it. We know that jellybeans have smaller dimensions, and we can use knowing what we know to figure out how many jellybeans could fit in the space presented (comparing volumes is fun, I promise). So, maybe we can fit 20,000 jellybeans into the space ideally: it’s now 10,000, as far as I’m concerned. How many kids in class? 84? Nah, it’s just 100. If those hold, I should be able to give 100 jellybeans to each kid with the supply in the jar. That’s not going to be accurate, but that’s why we’re estimating – all we want is a ballpark figure.
  3. Know the cost of over- and under-estimating. If you over-estimate and have way too many jellybeans, what happens? If you’re short, what happens to the kids that don’t get any? If failing one way or the other is going to have a substantially worse consequence, weight your estimation accordingly. For instance, starving the kids is bad; throwing away spares is less bad. I’d therefore overstock and expect to throw some away – at least no kid goes hungry. If I’m estimating my gas, however, under-estimating is the way to go; I don’t want to drive my car on fumes unless I absolutely have to.
  4. See, you can be cute AND comfortable with imprecision!

    See, you can be cute AND comfortable with imprecision!

    Be comfortable with the imprecision. This one is key. No matter what you do, estimations are never replacements for algorithms or equations. Algorithms and equations operate on known input formats, and produce known output formats. In contrast, estimation is about making a reasonable output for some loosely-bounded inputs. Do not expect accuracy. Just be comfortable with getting a decent guess. More often than not, that’s all you’ll need: do you really need to know how many feet you’re going to get on your tank of gas, or is three hundred miles, give or take, enough information for you? Your only goal is to get a good-enough result; if that’s not enough for you, then move on to fitting your system into an algorithm.

So, why not algorithm everything? Simply put, algorithm implementation takes longer and requires fairly strict bounds on input formats. Estimation sacrifices those bounds for a faster, less-accurate conclusion. If you can force strict bounds on your input, and care about accuracy, then you should take the time to implement the algorithm.

Okay, so we’ve gone over jellybeans a bit more than necessary – why does this stuff matter? Aion and I have both been doing a lot of estimation lately:

Aion:

The Aion team estimated the number of servers and population limitations per server for pre-release and release. This has led to countless complaints across forums and such about very long queues. Remember my second solution for feeding a summer camp? Yeah, all those people in the queue are whining because they’re staring at the other players who are already in the game. Turns out adults aren’t any more patient than little kids – we all feel entitled to have what other people get at the same time. Aion is pretty brilliant in their implementation of this, I have to admit, and yes I get to wait in a queue every day when I try to play. Sometimes I can’t play as a result (too much work). In fact, A lot of this was written while I was waiting in those queues!

So, why are the queues brilliant? Because Aion delivers a promise to their players of a reliable gaming experience. They could have taken the route of other MMOs and ignored server population caps, and watch the game degrade in many ways:

  • Players would have higher competition for materials because there would be a higher player density.
  • Players would have to handle more computation on their end to compensate for the player density, compromising any machines that aren’t well above the game’s recommended specifications.
  • Players would experience substantial connection latency from the server, as it would be operating beyond its own specified capacity (this one may be seen even as we are; those global lag spikes are a by-product of an overclocked server).

Aion: the new exclusive getaway

Aion: the new exclusive getaway

Aion circumvented these issues by implementing a queue. The game then becomes a fixed population-per-server environment, with transparent information for players in the queue (how long the line is, and an estimate of the queue time – look there, more estimation!). So there’s that benefit. They also knew the cost of over- and under-estimation. Over estimating and providing too many servers would have killed many of the servers. Under estimating simply creates queues, which – contrary to popular belief – actually builds suspense and makes players want to get in. Suddenly, the game world feels a bit like an exclusive party. Not everyone can be inside at once, but we’re willing to wait for half an hour or so to get a chance to hang out inside. Admittedly, the first couple of days were more than half an hour, but it’s gotten better for me with every day. That said, Aion is likely surprised that they underestimated the interest in the game.

Note that I didn’t put “check your history” as part of the intuition for estimation. This is because the past is very often misleading. Just because the past ten coin flips I’ve performed have come up “heads” doesn’t mean the next coin flip is any more likely to be “tails.” Likewise, kids that haven’t been hungry for jellybeans the past week may be really craving them this week, or may be genuinely sickened by the gooey things. Aion likely looked to other game releases and saw just how many pre-subscriptions went from CB to OB to Live, and expected those trends to carry over here. They then prepped for that level of decay; they didn’t expect such a high percentage of their subscribers to actually stay on. I think they shouldn’t have underestimated their potential, though: we kids were craving a new MMO experience more than even we realized.

My only critique is the exploitative nature of private shops. Once open, your character is not checked for inactivity, and is therefore never disconnected. 1.6 is bringing with it a catch for bots that are camping resource nodes; with any luck, they’ll bring a limiter on shop duration (say two or three hours) along with it. Don’t get me wrong – I do like the legit shops that are out on the frontier. They can save me a lot of travel time if they happen to have what I’m looking for, even if it is a little pricier. But then, the afk chumps aren’t adding anything to anyone’s game experience when they’re trying to sell bandages for one billion kinah each.

Me:

I did a lot of estimation in my first post on “What do the Numbers Mean,” and I’ve been doing some more for the second one (Coming soon!). For instance, I assume that Parry stops 50% of the damage on an incoming swing. It may be closer to 30% or 40%, given some reading I’ve done, but I’m not convinced. I estimated 50% based on the admittedly small in-game sample, and compared it to the other avoidance/mitigation stats. Parry is meant to be middle-of-the-road in terms of mitigation, so the amount mitigated fits very nicely at 50%. Again, it could be more or less, and it could even scale with weapon quality – just like the shields. However, 50% is enough of a ballpark for me.

Of course, I could work out algorithms for these things, and for some I’ve figured out the equations. Yet I don’t stress over those too much. Instead, I base my intuition here on the premise that Aion is a diverse game, so stats should likewise be diverse. I find it highly unlikely that any one stat will trump all other available attributes, but I guess time will prove that right or wrong.

Now, if you’ll excuse me, I have a game to go play. My queue time is finally expired, so I’m gonna get back to the game! In the meanwhile, for all of you whiners out there, I challenge you to present here a better solution for Aion’s release. To say “they’re doin it rong” is one thing, but if you can’t do it better, then who are you to judge? Show me that you can; I’m always curious to hear more solutions, and any truly valid solutions will doubtless be good to preserve for future game releases.





What’s a Weave?

17 09 2009

The following is presently an open problem in Aion. There are many people who will tell you they know the solution, but there is yet to be any conclusive evidence that convinces me of an actual solution. Moreover, most so-called solutions look at a particular case, rather than the general.

The basic problem is this:

Every character in Aion is capable of performing auto-attacks. Every physical damage dealer also has instant special abilities to deal damage. A character can only be performing one action at a time, however; instant special attacks and auto-attacks must happen in some form of interleaving structure. Every ability has an associated delay, implying a possible limit to the number of special abilities. Given this, what’s the best way to prioritize your auto-attacks and special abilities?

I don’t have a concrete solution to the problem myself. I believe it’s an open problem for a reason; each case depends on the number of special attacks available in a given time period and the strength of special attacks versus auto-attacks. The speed of the weapon in question is also an important component: faster weapons have identical special attack cooldowns, but shorter auto-attack cooldowns. Thus, each case is likely to have different results under optimization.

I would like to give some general intuition for solving this problem for a given particular case. That is, if you know the number of special attacks, their blackout periods, their cooldowns, and the speed of your weapons, you should be able to guess a good solution from the advice here. You can then tweak the information to fit your particular playstyle. Perhaps I can test out the general solution in the future, but I don’t really plan to test out Assassins, Gladiators, and Rangers that extensively.

First, let’s look at some key aspects of physical damage combat:

The Auto Attack:
Every character in Aion can perform these. based on the weapon equipped, and any Attack Speed modifiers, your auto-attacks will land at set intervals from one another in time. The time is listed on your character sheet. As a general rule, faster attack speeds lead to smaller damage values per swing for weapons of equal worth. The auto-attack swing timer is always running in the background once auto-attack is activated (though it is presently rather buggy because of an underlying implementation error).

Instant Special Attacks:
Most every special attack for physical damage dealers is instant; cast times are avoided so as to make the Concentration stat a non-issue for Warrior and Scout classes. When any special attack is executed, the auto-attack swing timer is allegedly reset. The reset in time occurs at the beginning of the animation period (as soon as your action bar blacks out), or what is sometimes referred to as the Global Cooldown.

Blackout Period / Global Cooldown:

Whenever a special ability is activated (completion of a spell cast or an instant ability is activated), your action bar will fade. During this period, no other action can be performed (though movement and jumping are sometimes preserved). The Blackout Period in Aion is not constant across abilities. For instance, a Priest’s buff spells can be cast within 1 second of each other, while many Gladiator special attacks have a blackout period nearing or exceeding 2 seconds (most are closer to 1 second, to be fair). This difference may not seem substantial, but it means that player reactions must revolve around individual skills, rather than a single Global time (turns out that this is harder to do optimally). Auto-attacks cannot occur during any Blackout Period.

Cooldowns:

Every special attack also has an associated Cooldown. Because most abilities are ridiculously cheap for Warriors and Scouts (remember from the Numbers post: MP is not a limiting resource for them), the cooldowns of the attacks become the limiting factor. Cooldowns vary from attack to attack, but most attacks used in a regular rotation require eight to twenty seconds of downtime before they can be used again.

Okay, that’s all elementary-school stuff, right? I just want to make sure Aion-specific traits of these terms are clear.

Now, some of the common solutions to the optimal interleaving of special attacks and auto-attacks:

Auto-Attack Only:

Auto-Attacks Only: damage is inflicted on every blue "A." 13 attacks in 12s.

Auto-Attacks Only: damage is inflicted on every blue "A." 7 attacks in 12s.

This one is rare, but important in a few key situations. Namely, when your weapons swing so quickly that even chaining special attacks is slower than your auto-attack speed. In such situations, the slower special attacks may hit a bit harder, but the lost speed could actually be a detriment to your damage output.

Burn Everything Early:

Special Attacks Only: damage is inflicted on every orange "S." The auto-attack swing timer continues to update, but there is never an opening for a blue "A." 8 attacks executed in 12s.

Special Attacks Only: damage is inflicted on every orange "S." The auto-attack swing timer continues to update, but there is never an opening for a blue "A." 8 attacks executed in 12s.

Many people claim (without evidence) that chaining together every special attack available as soon as it becomes available is the best way to deal damage. The intuition is that, because the abilities are special, they should take priority: they likely deal more damage and have important effects to get on the table (debuffs, stuns, etc.). Proper chaining of skills will lead to more attacks per second than generic auto-attacks for a slow weapon, with the added bonus of landing debuffs. Especially in late game, when your special attack list becomes long enough to fill a full 20-second rotation with no gaps, this becomes a very appealing option.

Weave Attacks:

Weaved Attacks: damage is inflicted on every blue "A" and orange "S." 13 attacks in 12s.

Weaved Attacks: damage is inflicted on every blue "A" and orange "S." 13 attacks in 12s.

The middle-of-the-road approach. The Weaving approach takes advantage of instant special attacks’ resetting of the auto-attack swing timer. That is, as soon as an auto-attack occurs, a special attack can be used without slowing down the auto-attack’s timer. Thus, a small pause is included after each special attack to allow for the next auto-attack to land. Remember that, in the Burn Everything Early approach, there should be no gaps in the rotation; as a result, no auto-attacks will land. By loosening the rotation correctly, one or two special attacks can be removed from a given 20-second rotation to allow for a number of auto-attacks (6 to 10, depending on your swing timer and tightness or rotation). This will give you more hits, but the auto-attacks are likely to be weaker than the special attacks on a one-to-one basis.

So, which approach is best? It’s all a matter of trade-offs. Each approach has its strengths, and the relative benefit to a player will vary with gear and available skills. As I said, it’s an open problem. Let me try to give some insight into some trends I’ve seen, though:

  • Filling a rotation with only special attacks removes the need for a fast weapon. The weapon simply becomes a stat stick; the one that best benefits your damage with special abilities subsequently becomes the best weapon overall. This means that attack speed bonuses on the weapon are irrelevant (unless the Blackout Time is affected by weapon speed – I don’t believe this to be true, but I haven’t encountered it yet so I can’t say for sure). It seems a little unusual that a stat of such relative worth would be useless to the highest level classes, simply because leaving no space for auto-attacks actually leads to more damage.
  • Filling a rotation with only special attacks only works once a rotation can be filled. What I mean is, you won’t have a full rotation at lower levels. When you can’t fill your rotation, you’ll have blank time no matter what you do. The auto-attacks here have, in my experience, come out to be roughly equal to the number of auto-attacks gained from a weaving approach at lower levels.
  • Weaving Attacks will perform better with a weapon speed that is closer to the Blackout Time of your special attacks than with a weapon that is really off from your Blackout Times. The closer they synch, the less time you have to wait for the next auto-attack. Therefore, there’s less blank space in your rotation not being devoted to special attacks.
  • Weaving inside a chain attack is almost always a bad idea; The chains tend to be tightly timed in and of themselves, so I find that they are best treated as a single, long-Blackout Time special attack.
  • Weaving around every attack may leave out too many critical abilities. In tandem with the note above, don’t let waiting for auto-attacks push important debuffing abilities or key high-damage abilities out of rotation. There are likely a couple filler abilities that can be lowered in priority – they are the best options to drop if your rotation is getting particularly tight.
  • Weaving will perform better under a lower latency. The closer you can time your special attack to the start of your auto-attack, the less swing-time you’ll end up clipping by restarting your swing timer. This is the best way to tighten a rotation, and some practice will allow you to predict when an auto-attack should land so you can pre-empt the server and have the two attacks land at nearly the same time.
  • Auto-Attacks are powerful. They miss out on the special effects and damage boosts of special attacks, but they do hit surprisingly hard. Their value should not be ignored.
  • Burst damage will behave very differently between approaches. A full chain-skill set will likely execute the most burst damage, but two single special abilities will likely benefit from having an auto-attack woven between them for three hits in the time of two-and-a-bit.

How would I approach the problem? I’ll give two case studies. First, I spent a lot of time on a Gladiator in the Closed Beta. I started out just chaining my abilities, then auto-attacking while the cooldowns spun. The performance felt a bit lack-luster. When I tried weaving in some auto-attacks between abilities, the cooldown timers suddenly started to synch more evenly: I had exactly the right special ability come up as soon as my auto-attack triggered. Suddenly, instead of the one auto-attack that fit in the open window at the end of my rotation, I was seeing three or four auto-attacks land in the exact same time-frame. No special attacks needed to be cut: I just got two extra swings every twelve seconds for exercising some patience. I subsequently stuck with weaving my attacks on my Gladiator.

Second approach, on my Chanter: I had fewer special abilities, so my intuition was to go with the approach that had worked on my Gladiator. I figured that this way, I’d be able to spread out my abilities and cut down on the downtime. It worked nicely. Then, curious as I was, I started trying to chain my abilities together as tightly as possible. I figured that if I could tighten my special attacks into one block of the rotation time, the other half of the rotation would be completely open. Turns out that I performed the same number of auto-attacks on a supertight rotation as I did on a nicely weaved rotation. Interesting. But, when I started getting lazy, I saw problems. When waiting between attacks because of inattention or some such, the little phases of open time cut into the block of blank time at the end of the rotation. As a result, a loose burn-all-specials-first approach yielded fewer auto-attacks in a given rotation.

As you can see, results change based on the situation. Either of those case studies may have behaved differently with more or less abilities to consider, or with differently timed weapons. I never had to choose between two auto-attacks and one special attack, for instance, which could have a whole range of trade-offs. I like that this is an open problem, though: if players can execute well-thought-out solutions, it will be a good indicator of how well they understand the game mechanics and, hopefully, the game itself. I look forward to hearing more about this subject, and in particular some thoughtful counter-examples to the boringly-easy “chain everything together immediately” approach.





Syndication Troubles

13 09 2009

So, What’s syndication you ask? It’s a form of direct link that, in present context, allows me to post up items and skills from the Aion Armory database into my blog. Hopefully I can get this trickster working – it’ll be handy to have items represented in-line, so you don’t have to go trolling through Aion Armory to know what I’m talking about.

Problem is, The ‘HTML editor’ built into the post isn’t providing me with the resources I need. I can link an item well enough:
Healing Light 1

But that’s as far as I can get without implementing a script, and the HTML editor won’t take scripts. Thus, I can’t get the in-line linking to work.

Alas, I don’t see an easy way to fiddle with the HTML Header of this page. I have a suspicion I’d need to pay for a subscription to actually enable the change. I’ll explore more in the future, but I guess dual moniters may be in order to track links and read at the same time. Or I could do the good-old Copy & Paste trick, if I can make it look streamlined enough…

Anyone had any luck incorporating AionArmory Syndication on WordPress? Or other methods of showing useful stats?