tag:blogger.com,1999:blog-28145910843441416562024-03-05T13:38:33.484-08:00Gamer By DesignThis blog is my musings on the games I play from both a player's perspective as well as a software developer's perspective. Some topics are technical, others just philosophical. A large focus on World of Warcraft, but other games (such as D&D, board games or other video games) make appearances as well.Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.comBlogger209125tag:blogger.com,1999:blog-2814591084344141656.post-87560421196103149802018-02-21T20:58:00.000-08:002018-02-21T20:58:57.734-08:00Developer Tales: Aggressively Moderating Aggression<span style="font-family: Arial, Helvetica, sans-serif;">One of the things that I loved about my work on Eon Altar is it taught me a lot of other skills and brought to me many different experiences that I didn't really get to experience at a larger company. On the other hand, sometimes those experiences weren't always positive.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Today I'm going to talk about forum moderation. How I attempted to build a community, and keep that community positive. I'm going to do that through a story of one time I had to banhammer someone with vengeance. Despite having receipts, you won't find names in here. The purpose of this story isn't to shame, but to illustrate. And maybe a small amount of catharsis.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">When you ban someone on the Steam forums you get a private thread between the banned person and the moderator, at which point you as the moderator can explain why you banned them, and they can reply, possibly to explain themselves or beg your forgiveness. Of course, in this case the banned got even more aggressive than they were on the forums, and accused me, the dev and moderator, of being biased towards long-term community members.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Tgm2siNBXApX5rCSt2Bp_WoUpJQK-HleQUbGcSTi1FU0-PvPPRT1HRVvgaAl5bbyfXu9y4TaGlzIT4KfdA8j8ESi2eHwQ3_fYeb3tt3hqCt7FFnrN3sM40QmJLugFPR4exGLPI40pMqH/s1600/tumblr_ns1npwL76W1uas68mo1_250.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="154" data-original-width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Tgm2siNBXApX5rCSt2Bp_WoUpJQK-HleQUbGcSTi1FU0-PvPPRT1HRVvgaAl5bbyfXu9y4TaGlzIT4KfdA8j8ESi2eHwQ3_fYeb3tt3hqCt7FFnrN3sM40QmJLugFPR4exGLPI40pMqH/s1600/tumblr_ns1npwL76W1uas68mo1_250.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;">Me, after dealing with someone aggressive on the forums.</span></td></tr>
</tbody></table>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><b>Let Me Tell You a Secret</b></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Surprise, yes, as a dev and moderator I am totally biased towards long-term community members in good standing. Now, caveat, if a long-term member had done what the banned person had done, I'd have similarly banned them, too. But there's really good reasons you as a developer and moderator would actually want to be biased towards long-term community members.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">First of all, part of the reason why forums exist is to develop said community. A group of people who identify and enjoy your game, want to help each other out, and communicate with the developers. It benefits us developers, because it lightens the workload with respect to helping customers out in a timely fashion, and it benefits the community members, because they get to have the developers' ears in terms of criticism and feedback.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">That's not to say I ignored feedback from people who weren't long-standing community members. Fresh eyes are always useful feedback. But at the same time, it was usually easier to understand where someone was coming from with feedback if I'm already familiar with them. History breeds context, and context increases communication throughput in my experience.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">And the other interesting part about said bias is that when a prominent community member brought me feedback to disseminate among the team, if it was hyper-critical, it was often done as a labour of love. They do enjoy our work, and they understand that we're people too, and so reading that hyper-critical feedback is easier on our feelings. That said, you can still tell--even with new community members--who's there to shit on your sandwich and who's there because they truly want to make the game better for them and others; by the language they use, and the specific approach to criticisms.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><b>How Do You Get Banned From a Community?</b></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">I know the previous section was a little vague, so here's some meat and potatoes to give some precise examples of the things you can do to get bushwhacked from forums.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwyPKPpcSG9WjY9sEnUQSV2re1aJEN6UOSj4mN3xbFqBV3Q8KdgLtj6ssx37N7ncIGtChvncBtM0MMeoTEeb6QbfKhOjBGqNSr_S_TZHOQSUfp1k_A0iVmcsDYl4B1yacnn1B7UgmukrEP/s1600/trexbed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="370" data-original-width="500" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwyPKPpcSG9WjY9sEnUQSV2re1aJEN6UOSj4mN3xbFqBV3Q8KdgLtj6ssx37N7ncIGtChvncBtM0MMeoTEeb6QbfKhOjBGqNSr_S_TZHOQSUfp1k_A0iVmcsDYl4B1yacnn1B7UgmukrEP/s320/trexbed.png" width="320" /></a></div>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><i>1) Accuse the Developers of lying about a specific feature. 7 times in 7 different threads.</i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">One morning I woke up to check the forums, as I was wont to do, and lo, we had like 7 new thread replies. Checking them, they were all by the same person, and they were all variants of, "Your Kickstarter said there'd be an online mode, and now there's no online mode, y'all are liars."</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Okay, first of all, that Kickstarter <i>failed</i>. It had failed 3 years before those posts, no less. Sorry, not sorry, but we can't be held accountable to promises made in a funding drive that didn't get us the funding. We had to radically alter the game after that failure to accommodate the fact that the game in it's Kickstarter format wasn't viable, so anything in the Kickstarter barely could be applied anyway.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">To top it off, after the ban, the poster accused us of being shady about it, keeping it behind the scenes. At which point I linked about 4 different interviews of us talking about the failed Kickstarter and what it meant.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">I mean, really, if you're going to accuse the developers of lying, make sure you've done your research, and make sure you're not making any unreasonable assumptions. And then on top of that, approaching it more diplomatically rather than aggressively spamming the forums would have left things more open to conversation. I don't have the time or lack of emotion to deal with someone who's going to argue with me in bad faith. Not going to happen. I've got video games to make.</span><br />
<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><i>2) Slag others on the forums with personal attacks.</i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">After being given a warning about forum spam and a warning (and post deletions) about unfounded attacks on the developer, attacking others on the forums is a Bad Idea™. Now, these attacks were on long-standing community members who were in great standing: they'd contributed significantly in a positive manner, including criticism. And to be fair, said community members didn't hold themselves perfectly in return.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">However, as mentioned in the section above, I'm willing to give said long-standing members some leeway. Yeah, it's blatant bias, but frankly I didn't give a damn. They were still a net positive to our forums, whereas this newcomer throwing shade and slagging people directly was a net negative. Each individual action by an individual doesn't get evaluated individually; it's all in aggregate. Eventually we decided it wasn't worth it.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR2iHjs_oDC7M4qJWtwiUzhTkcbSyzVQuYYXD7rQTtnogSU2-q6H8A68V53MK14S3ppeSceNhHSmCA4t3HeoifS-1U_oPRicrADxfekO8tI-sV5Bp5Hut79M6kijqx1WuS7DbHERM2TRrX/s1600/internetfight.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="329" data-original-width="443" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR2iHjs_oDC7M4qJWtwiUzhTkcbSyzVQuYYXD7rQTtnogSU2-q6H8A68V53MK14S3ppeSceNhHSmCA4t3HeoifS-1U_oPRicrADxfekO8tI-sV5Bp5Hut79M6kijqx1WuS7DbHERM2TRrX/s320/internetfight.jpg" width="320" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><i><br /></i></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><i>3) Continue to be aggressive in the ban thread.</i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">After we banned this person, they wrote an essay about why we were in the wrong for banning them, and how precisely we were liars, and how this other forum member wronged them so they should be banned too.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">The first essay I responded to, with the logic about the Kickstarter failing, the counter-evidence of us being "shady", and why the personal attacks were the last straw.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">A few days later <i>another</i> essay came through on the ban thread, conceding some of the points and then getting aggressive again. At which point I switched off and stopped reading the thread, and didn't return until said poster added a 3rd essay months after the fact. Which I also didn't read. Again, I don't have the time or emotional capacity to deal with someone who clearly has a smear agenda against us. I never heard from them again after that, and it was blissful.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;"> </span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_E5W7s7Xx4tNknjCDaq-KdjkWTnsumgFE9d6zHbskMimFjFhnobCJfzVfWZ8vbof7Ft0klSPqo823q_FAaqYOEXyCS5jdF0h6DbjKT1UI2sQqZtsn9eF1gUxqhslvS-__2cEwur5sYaK_/s1600/monitor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="450" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_E5W7s7Xx4tNknjCDaq-KdjkWTnsumgFE9d6zHbskMimFjFhnobCJfzVfWZ8vbof7Ft0klSPqo823q_FAaqYOEXyCS5jdF0h6DbjKT1UI2sQqZtsn9eF1gUxqhslvS-__2cEwur5sYaK_/s320/monitor.jpg" width="320" /></a></div>
<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><b>Consequences</b></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">At the end of the day, we as developers eventually decided this person's contributions were a net negative on our business.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">From a community building perspective, as they were being extremely negative and extremely mistaken about the accusations they were making. Something like that would turn our community into a bloodbath. The good thing is we had already done a decent job of cultivating a community that many of this person's posts were reported for moderation many times, and quickly, even as we were discussing what to do about the situation.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">From a morale perspective internally, it was a very stressful situation. It ate a lot of emotional energy dealing with this person, and time we could have been using to develop features. This is partly why bigger companies have community managers: that level of indirection is extremely helpful to reduce the negative effects of jerks on your development team. The cost of community managers is not being able to directly interact with customers in good faith. Direct interaction is <i>amazing</i> for getting unfiltered, honest feedback, and being able to ask follow-up questions and have a legit discussion is incredibly useful. But sometimes, eventually, it's just not worth it.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">From a monetary perspective, if they requested a refund of the $15 they paid, I'd have happily given it to them--who knows, maybe they did, it's all automated. Not every customer is a blessing, even in cases where we're desperate for customers. The customer isn't always right, and a customer holding your forums hostage isn't really a customer anymore. If you walked into the GAP and started yelling loudly about how you were promised cardigans because it's fall, and there's no cardigans this season, you would be escorted from the premises. Just because it's online doesn't make the scenario different.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">However, our quick and decisive response paid dividends, quickly. The negativity was quarantined, and our community got to go back to talking about the game, the good, the bad, suggestions, interests, ideas, and so on, instead of having to babysit someone who was slagging them. The total negative effect was quite muted. The ban thread was draining, however, and I regret putting so much time into it, honestly. While I wanted to make sure our butts were covered, it was an unnecessary shadow over our developer team.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">There are real world productivity and monetary consequences to trolls in your forums, and you need to deal with them quickly and decisively. Bias isn't always a bad thing when it comes to cultivating your community: there are very good business reasons to feed that bias. It was a lesson I had to learn that day, the hard way. </span><br /><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#IndieDev<span style="font-family: "arial" , "helvetica" , sans-serif;">, #EonAltar, #DeveloperTales</span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com2tag:blogger.com,1999:blog-2814591084344141656.post-45343791725576927472017-11-13T15:01:00.000-08:002017-11-13T15:01:13.494-08:00[IndieDev] Looking Back and Moving Forward<span style="font-family: Arial,Helvetica,sans-serif;">I'm starting a new job tomorrow, and am no longer the lead programmer for Eon Altar. For those who follow me on Twitter, this won't come as a surprise, but given I've been semi-documenting my indie dev journey, I figured I'd talk about it here.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">As to why, we completed and shipped the entirety of Eon Altar Season 1. From start to finish it was an incredibly ambitious project, and the fact that we finished and shipped it is, frankly, massive. Add to that a 92% positive rating on Steam, and I can say without equivocation that I am proud of what we shipped. That said, it was 4 years of my life, and, among other reasons, I figured it was time to get some other industry experience.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Looking Back</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">If someone tells you that they want to build an RPG in a year, then says it's also going to have a completely unique game mechanic/control style, laugh at them. Seriously, just shake your head and laugh. Our original schedule was stupid, for the lack of a better term. It left no room or time for iteration, and at the end of the process we used up over 3.5 years total to get it out the door in its entirety. That said, I don't regret it--at all. What it did mean, though, was going from a team of 25+ people to a team of 4-5 people for the latter 2 years, and that's hard.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh16VowSR-OOhojtV6dBZnDby98OA9a1l843359QcS6L0bQhZpYq17dv4W51uoYNw88mhQ1rIokbovUXpEJEWLp7SPgF0E3ifFfwo9M19lFeKqcmfop-yGs14s-QdNT8Ww0VstEISL4roEM/s1600/ss_95dcfa84c9f20b3ea22e8c0b3a63b08691d66c7b.1920x1080%255B1%255D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh16VowSR-OOhojtV6dBZnDby98OA9a1l843359QcS6L0bQhZpYq17dv4W51uoYNw88mhQ1rIokbovUXpEJEWLp7SPgF0E3ifFfwo9M19lFeKqcmfop-yGs14s-QdNT8Ww0VstEISL4roEM/s320/ss_95dcfa84c9f20b3ea22e8c0b3a63b08691d66c7b.1920x1080%255B1%255D.jpg" width="320" /></a></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The extra time was necessary. It allowed us to polish up a lot of features, add missing bits and pieces, and actually iterate on the combat and gameplay formulas. You'd be impressed at the amount of work so few people can do. It also helps that the core team was mostly on the same page as to the direction of the game, which meant very little communication overhead. Sure, diversity of viewpoints is super useful (and when our team was bigger, it WAS useful), but I found it was more useful early in the process rather than late. Once you're in the polish phase, it's mostly mechanical work. User feedback, bug fixes, small adjustments because you can't afford rewrites.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">But having so few people also meant we were stuck wearing a <i>lot</i> of hats. By the end, I was our tech support, forum moderator/community manager, lead programmer, project manager, QA Lead, QA Tester, copy writer, copy editor, IT administrator, build and deployment engineer. The list goes on. It was a little overwhelming at times, though I got an immense amount of experience doing it.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But even for just the engineering, working on Eon was an amazing process of learning something entirely different every day, and immediately applying it. One day I might be working on the combat engine. The next, code optimizations. On day 3, save games. Day 4, Steam integration. Day 5, animation bugs. I was never bored, because I was constantly learning. It was also exhausting, because I never got to revel in what I learned; I was always on the edge.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But damn, did we ever pull it out. Nobody--<i>nobody</i>--in the industry was doing what we did. Light role-playing meets local co-op video game was a unique mix, and the mobile controllers went far and beyond what JackBox did (though JackBox is amazing and I love it to bits), so we didn't have anyone to copy from. I even got to do a talk at PAX DEV about the process, which was fantastic. Such a great experience, and people apparently got some useful information out of the talk which was icing on the cake.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div align="center">
<span style="font-family: Arial,Helvetica,sans-serif;"><iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/8Hc1CnRx98s?rel=0" width="560"></iframe></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">And that gameplay resonated with a fair number of people. Our reviews are generally extremely positive about the unique play that Eon Altar brought to the table. We even had an unintended but amazing audience segment: spouses. The number of reviews that talk about people playing with their significant others--many of them non-gamers, no less--and how much fun they had was so mind-blowing. We had made an RPG-lite that was approachable and fun, with enough depth that even hardcore players could have some fun min-maxing.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">So what's next for Eon Altar? I can't say. That's up to the remaining team, and I wish them all the luck in the future. Eon is a fantastic project, a fascinating method of gameplay, and a great property. Yeah, we made mistakes, and the game itself is far from perfect, but I don't regret the project whatsoever. It will always be my dream project.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Moving Forward</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So what's next for me? I've been hired as a Senior Engineer for an independent studio here in Vancouver, BC. The studio is large enough that I'll be able to focus on engineering almost exclusively, and been around long enough that they have a stable business plan to support those employees. I can't talk about my next project within the studio, but I am excited to work in an office again, with other programmers.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">While I can learn a lot about gamedev on my own, improving one's programming and software engineering is difficult to in what's effectively a vacuum. Basically, when given a specific problem, it's relatively easy to learn or deduce how to solve it, but things like programming tools, style, practices, etc. are difficult to learn because you don't necessarily <i>need</i> them to complete your work. Your work becomes better with said knowledge, but it's not strictly necessary.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I'll be keeping an eye out for my former coworkers though, and see how Eon Altar fares moving forward. Eon Altar is a high bar to meet in terms of interesting engineering/design projects, and I'm not sure anything I work on in the near future will meet that bar, but that doesn't mean I won't be giving my new projects my all--I've far too much professional pride to do otherwise. But being able to focus primarily on engineering also frees up brain cycles for other things, like maybe blog posts? We'll see, I definitely miss blogging about game design stuff! But tomorrow, new job!</span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-15848320333571603312017-11-07T12:14:00.000-08:002017-11-07T13:04:39.663-08:00How Might Blizzard Engineer WoW Classic?<span style="font-family: "arial" , "helvetica" , sans-serif;">So, that happened. I'll be honest in that I definitely wasn't expecting Blizzard to actually work on a Vanilla server, <a href="http://talarian.blogspot.ca/2016/04/wow-classic-blizzard-run-servers-code.html">given the sheer engineering difficulties</a>. I'm also not convinced still that there's as much money in it as some folks posit, but some number cruncher at Blizzard must've decided that it was worth it. Perhaps even just as a marketing tool for WoW Current.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But that aside, it seems Blizzard is at least entertaining it seriously, given the BlizzCon announcement. The company's been gun-shy about announcing products that might not ship in more recent years (Titan vs. Ghost, Warcraft Adventures), so I expect this effort to come to fruition eventually.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"> So, as per my linked blog post above, there's a lot of engineering problems:</span><br />
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Old (possibly lost) Assets</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Old (possibly lost) Codebase</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Old Hardware Dependencies</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">OS Updates</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Security Fixes for both Client and Service</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Build Pipeline</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Battle Net Integration</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Authentication Updates</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Customer Computer Updates (Graphics APIs/Cards)</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Network Optimization</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Server Crash Fixes</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">etc.</span></li>
</ul>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The list is <i>extensive</i>. But there's a few hints laying about Twitter and the Engineering Panels, and a little shower thinking I came up with a potential solution that they may be working towards.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">In the <a href="https://blizzcon.com/en-us/watch?v=516b9cd-00d45109108">BlizzCon Opening Ceremony</a>, J Allen Brack said (around 1:02:00ish):</span><br />
<blockquote class="tr_bq">
<span style="font-family: "arial" , "helvetica" , sans-serif;">"This is a larger endeavor than you might imagine, but we are committed to making an authentic, Blizzard quality classic experience. We want to reproduce the game experience we all enjoyed from classic WoW, not the actual launch experience."</span></blockquote>
<span style="font-family: "arial" , "helvetica" , sans-serif;">They're couching this in careful language to suggest that the experience won't be identical, that they're not just shipping the old client. They're also suggesting that it's a huge engineering/design effort.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">With all that in mind I think their solution is not to use an old client and re-engineer the old servers, but <b>get the old content working in <i>current </i>server/client codebases</b>.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span style="font-size: large;">New Codebase</span></b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The neat thing about that conclusion is it handily solves nearly every single engineering issue that I brought up above. All the code for security, network protocols, database access, authentication, build pipelines, optimization, graphical display, server hardware-specific optimizations, and so on could be shared code. And what better way to handle shared code than a WoW Shared Infrastructure team?</span><br />
<br />
<div align="center">
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
Something exciting is happening: on Nov 20th I'm moving off the Server Team to the (newish) WoW Shared Technology team. (1/?)</div>
— Kurtis McCathern (@kurtismcc) <a href="https://twitter.com/kurtismcc/status/927734513441980416?ref_src=twsrc%5Etfw">November 7, 2017</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script></div>
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Kurtis McCathern, a prominent WoW Server dev, is moving to the "newish" WoW Shared Technology Team. Why bother making a shared tech team unless you were planning on versioning or forking your product? And of course, this shared tech will need client and server developers.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">In the <a href="https://blizzcon.com/en-us/watch?v=516b9cd-00d45b48a60">first engineering panel at BlizzCon</a> (link requires Virtual Ticket) the WoW engineer Omar Gonzalez talked about how much divide there was between the infrastructure code and the LUA scripting the designers do, and it's pretty stark how much feature work lives in scripting land. With that kind of divide, it makes it easier to envision a shared C++ codebase, and a much smaller subset of code for feature specific work that's almost entirely LUA with maybe some C++. Like reputations, weapon skills, etc.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Refactoring a current in-production codebase into smaller shared chunks is not a fast process, nor an easy one. I went through a similar process when I worked at Microsoft Office. It took 3-4 engineers over 3 years to get a bunch of the 30+ year old shared code into smaller shared libraries that could be built and modified independently. Now, Office is a (much) bigger, older codebase than WoW likely is (I can certainly guarantee older), so it's not quite the same. But the types of tasks are certainly parallel. I imagine that some of the work, especially around Battle.Net integration, has already been done though.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Old Content</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So what about the old content? Lost assets? Item drops? Boss fights?</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The WoW Client contains the assets for rendering the world, rendering enemies, quest text, music, etc. The WoW Servers contains the information for where to spawn things, AI scripts, instancing, item drops, quest triggers, etc. The WoW Servers also host the databases that contains the data for running the game and running player characters.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Recreating the Client assets is "simple". Assuming they don't just have a versioned set of assets laying around, they find the version they want in an old client, grab the MPQs, rewrite their MPQ-cracking algorithms (because the format has changed significantly over the years), and extract the data. They could then repackage it in current WoW formats such that the current Client could actually read them. That assumes the current tech can even render that data, it's possible that the data may need to be massaged to be renderable in today's technology.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Recreating the Server assets is harder. Much harder. Private servers have generally had to reverse engineer that data, from their personal memories, Thottbot data, etc. We don't know what kind of data Blizzard has in the backend--assuming they have a copy at all--and it's quite possible that they'd have to manually re-enter that data into a current-style database anyhow. But AI logic, instancing, quest tech, etc. can be shared with Current WoW, rather than be recreated.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The other aspect to all this is recreating old features and deprecating current ones. Weapon skills, hit cap, old talent trees, resistances, MP5, spell ranks, and much, much more will need to be recreated. I imagine a lot of this will be designer feature work in LUA, but it'll still require some code support. How much of that will be via memory, and how much will they be able to stare at old code for?</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">EDIT: There's a <a href="https://careers.blizzard.com/en-gb/openings/o1Nc6fwQ">Job Posting for a Senior Software Engineer</a> position for Classic WoW. The description is as follows:</span><br />
<blockquote class="tr_bq">
<span style="font-family: "arial" , "helvetica" , sans-serif;">"Responsibilities include building gameplay systems, transforming database data, building UI elements, repackaging binary distributions, and working closely with designers to revive the classic game elements."</span></blockquote>
<span style="font-family: Arial,Helvetica,sans-serif;">Transforming database data suggests they DO have the old server data and need to transform it into the newer database format. Repackaging binary distributions also suggests my thoughts about getting the old client data may be on the ball.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>A Massive Effort</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As Brack mentioned, this is a larger endeavor than you might imagine. I've probably missed things in my analysis. And I imagine the engineering teams are bigger than the 5 people I suggested for financial solvency in my <a href="http://talarian.blogspot.ca/2016/04/wow-classic-blizzard-run-servers-code.html">original blog post</a>, which suggested a layout of about $2M USD over a year. The cost and timeline is probably going to be bigger than that. Possibly significantly bigger.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But using current technology solves a <i>lot</i> of engineering hurdles and actually brings this into the realm of logistical possibility. However, it also means that Classic WoW will likely feel a lot more modern than Vanilla WoW did. I'm expecting Battle.Net integration, LFD, and phasing for overloaded servers, because those will "come for free" with a shared infrastructure team (it's not really free, but certainly a lot less work). We also may not see Vanilla-era bugs or system quirks like debuff limits. Depends on how faithful they want to be to the original game, and how much time they're willing to invest to get those details correct, and how many systems they want to diverge vs. utilizing the shared infrastructure.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">It's going to be fascinating from an engineering perspective, and what I would do to be a fly on those walls right now. </span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#WoWClassic, </span></span></span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#Engineering<span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-24110630237210283322017-09-11T16:13:00.000-07:002017-09-11T16:13:46.726-07:00[WoW|A:HotS] Infinite Progress Bars: Gear, Artifact Power, Vertical Advancement<span style="font-family: Arial,Helvetica,sans-serif;">One of the earliest blog posts I wrote was <a href="http://talarian.blogspot.ca/2013/12/the-zing-when-you-ding-leveling-and.html">on leveling and other advancement systems</a>. And with it comes a fairly uncontroversial statement:</span><br />
<blockquote class="tr_bq">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-family: Arial,Helvetica,sans-serif;">Leveling, among other advancement schemes, is at its most
basic a reward for time. Play a little longer, grind a few mobs, finish a few
quests, and ding! You get a level, and along with it things like new abilities,
better stats, talent/skill points, or any number of other things. Developers of
MMOs know intimately that if you want to keep players playing, you need to give
them rewards.</span></span></blockquote>
<span style="font-family: Arial,Helvetica,sans-serif;">RPGs definitely enjoy their progress bars. Progress bars are <i>so </i>good at player retention/engagement that pretty much every game genre has borrowed them. MMOs are arguably the royalty of progress bars--outside of clicker games of course. But what happens when your playerbase balks?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>I've Got The (Artifact) Power</b></span></span> <br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">In the latest expansion, World of Warcraft has created an alternate advancement scheme of sorts with Artifact Weapons. Starting at level 100, and well past the level cap of 110, you gain Artifact Power to level up your Artifact Weapon and gain traits to increase your character's power. Once you've gotten 51 traits, every point after goes into an "infinite" trait with an exponential increase in Artifact Power required for each point. To offset that, over time players automatically get more Artifact Power from each quest/boss kill/other activity as real world time goes on.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbV6zv08OUVMvMpfa6mZb3GZZ84Ogav6Q3LmhtF2BXdhlBleZAvH6NoZyxJPpU-qAYMbhmKHkESsQuL9-XyfdS2dIIDK3NGzchzzB4jibe9gp4tsL3mrbU07AC_p5iSZMwlaLMuVuO9RqF/s1600/Concordance.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="643" data-original-width="929" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbV6zv08OUVMvMpfa6mZb3GZZ84Ogav6Q3LmhtF2BXdhlBleZAvH6NoZyxJPpU-qAYMbhmKHkESsQuL9-XyfdS2dIIDK3NGzchzzB4jibe9gp4tsL3mrbU07AC_p5iSZMwlaLMuVuO9RqF/s320/Concordance.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">"Concordance" is the infinite trait in the upper right. In this screen I have 7 levels of Concordance. It takes about 3.8 Billion points of Artifact Power to get an 8th level.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">I'm glossing over the previous patches and focusing on the current implementation, as its more in line with their original vision based on their interviews. It's also important to note that WoW is far from the first game to have an alternate advancement system. Diablo III of course has Paragon levels, but much earlier there was the original Everquest with what they called "Alternate Advancement" (dun dun duuun! That's where the term was pretty well coined).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">What this does is ensures that players who don't play for a while can catch up, while preventing players who play a lot from getting <i>too</i> far ahead of the rest of the player base. But it also ensures that even if you play casually, you're never really too far behind. I pretty much only log on for raids and the occasional quest run once every couple weeks, and I'm within ~5 levels of more hardcore players.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Which kind of almost feels like it defeats the purpose of the alternate advancement. We're basically just moving forward on Blizzard's very defined schedule. Not that's a bad thing necessarily, given most designers will make spreadsheets trying to figure out advancement timing and schedule. Nor is it that different from gear drops from a raid, given those fall within a specific power level. It just feels really naked now.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But by creating this alternate advancement, it makes it easy for the designers to parcel out Artifact Power as partial rewards. Instead of dropping a big piece of gear, or giving a bump to a reputation that has no impact on your character's power levels, they can give you something in smaller, bite-sized pieces that allows you to continue progressing your character regardless of the activity you're doing. Filling that bar, which is industry-proven.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>The Gear Treadmill</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">While Artifact Power is new to WoW, the gear treadmill is not. Most MMOs with an endgame beyond leveling uses gear acquisition as a way to increase character power without bumping their levels. WoW extended this treadmill by allowing pieces of gear to roll higher stats (Titanforging) or different bonuses (Gem Sockets, bonus tertiary stats) randomly.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">What this meant is that there's no perfect set of gear anymore. Or at least, it's not attainable within a human's lifetime, let alone a raid tier's lifetime. Previously raiders could make a list of gear they wanted (called "Best in Slot" or BiS), and aim to get that gear. What it does for players who're never going to get the best gear in game anyways (which is at least 95% of the player base) is occasionally you get a nice surprise. Like my Paladin's bracers that should've been 910, but rolled 940 the other day (yay!).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>You're Never Finished</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But interestingly, the more hardcore contingent <i>really</i> dislikes these alternate advancements. If you're running for World First, you need every advantage you can get, which means busting your butt to stay on the forefront of that Artifact Power wave in the previous tier. An impressive amount of work, really, given the minute advantages it brings, also given if they were to just wait a couple weeks, they'd be in the same place numerically as they busted ass to get now. And similarly for the gear, because the gear can proc better variants at random, there's no end to the gear farming if you're aiming for the perfect (or at least best-ish) loadouts.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Really, the issue is that there's no endpoint. No finish. A large part of it indeed has to do with wanting to have a life outside the game and still be on the forefront, I don't doubt that. Logically it follows. But I wonder if that's really the only reason, especially since that reason only applies to a very small minority of the playerbase, and the complaints seem to be coming from far more than that minority. Maybe there's another reason that isn't recognized by players or the devs?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I've been playing another game, Alliance: Heroes of the Spire, where the developers pulled a similar design decision. At some point, nearly every hardcore player had a good chunk of the good heroes, and people were pulling duplicate heroes that were a disappointment--they were a waste if you had already "finished" that hero. The hardcore players were effectively done, so to ensure further engagement and to make it feel like dupes were a good thing, the developers created a Rank II where you could power up an existing hero by merging them with a maxed duplicated hero.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4c0uAKfox0y0AGTGKqvWUsG0c6OAnSHd7nqXFMsvcmrzcXezfiPyrECV8jayqpR9S3KgCFZSx8l2j8UxL3mB6axhnJfyhKuWDXspI4YYf1IueATRSKHsZd47Cj-Ab0ATVtkDG8kUACbLr/s1600/IMG_1331.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4c0uAKfox0y0AGTGKqvWUsG0c6OAnSHd7nqXFMsvcmrzcXezfiPyrECV8jayqpR9S3KgCFZSx8l2j8UxL3mB6axhnJfyhKuWDXspI4YYf1IueATRSKHsZd47Cj-Ab0ATVtkDG8kUACbLr/s320/IMG_1331.PNG" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Rank II heroes use a different advancement mechanism from 1 - 6 star heroes.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">The hardcore portion of the player base reacted <i>very </i>negatively to it. Part of it was the timing of how it was rolled out and the communication around it, but a lot of it was ostensibly based on the fact that there's suddenly more vertical power creep that players had to jump through when they thought they were done. More work.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">On the face of it, as a game dev myself, the extra vertical advancement complaint felt farcical in nature, given A:HotS is still relatively young, and every other game in its genre has a similar mechanic for vertical advancement. But the backlash felt similar to what I've seen in the hardcore WoW community.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Changing the Rules</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">What both WoW and A:HotS have in common is the devs changed the rules of advancement.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For a decade--literally a decade--WoW had a level cap, you got raid gear, then next expansion dropped, putting everyone on an even playing field, and the cycle repeated. Now with the gear changes and artifact power introduction, the rules of how to advance between patches has changed completely, and the playerbase hasn't yet figured out where the line sits between meaningful advancement for each individual player and cookie-clicker-esque busywork.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For A:HotS, the maximum a hero could be was 6*60 (6 star, level 60). That changed after people had already burned dupes, and had a stable of heroes at maximum. Similar to the Flying/Not Flying argument in WoW, many players in A:HotS felt those changes somehow invalidated their previous work and rewards. The system worked in a specific manner, and the system changed, and that can feel like a betrayal.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">As I mentioned earlier, I wouldn't attribute a fear of change being the only issue. Each advancement system mentioned so far has cons (and I've explored those cons), and they may likely be a bigger reason for certain players than a fear of change.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The gear BiS problem in WoW, for example, is an issue that only affects Mythic raiders who can finish the current tier in a reasonable amount of time before the next tier drops. For the rest of the playerbase who'd never have gotten Best in Slot anyhow, it's not an issue that should ever crop up outside of theory. But what makes <i>that</i> scenario different from an Artifact Power bar that can never be completely filled? At an abstract level, they really aren't, but I've noticed Artifact Power affecting casual players whereas the gear proc thing doesn't even register, which is <i>really</i> interesting from a player psychology perspective. Again, maybe it's because the mechanics of Artifact Power are far more naked than gear, or is it because it's new so it's subject to more scrutiny?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">And as I mentioned in my original post on advancement:</span><br />
<blockquote class="tr_bq">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-family: Arial,Helvetica,sans-serif;">But WoW and other
MMOs have the problem that they’re really two games rather than one: a
leveling game, and an end-game. And what system is good for one of those games isn’t really good for the other, as Blizzard’s experiments have proven.</span></span></blockquote>
<span style="font-family: Arial,Helvetica,sans-serif;">Except now I can identify a third game: the leveling game, end-game, and top 5% players who can actually finish the hardest content, and what's good for the end-game doesn't seem to be that good for the top 5%, and vice-versa. Can they be reconciled? And then there's the potentially blasphemous question: does it matter if they aren't? </span><br /><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#WoW<span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">AllianceHo<span style="font-family: "arial" , "helvetica" , sans-serif;">tS, #GameDesign</span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-23737543398593509722017-07-22T18:53:00.000-07:002017-07-22T18:53:12.752-07:00[Alliance:HotS] Gear Set Bonuses<span style="font-family: Arial,Helvetica,sans-serif;">One of the things that makes Alliance: Heroes of the Spire so deep is the serious amount of gear customization you can do. Six gear slots, with set bonuses for having matching pieces that can seriously change how you'd deploy that Hero, and then slotting in gems, as well.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Gear set bonuses come when you equip either 2 or 4 pieces of a given set. The 2 piece sets are generally raw stat bonuses, whereas the 4 piece sets are the interesting effects:</span><br />
<ul>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Bone; +20% HP</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Wraithbone; +25% HP</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Furyborn; +20% Power</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Dragonfury; +25% Power</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Coldsteel; +15% Armor</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Icesteel; +20% Armor</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Sharpthorn; +10% Crit</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Elderthorn; +20% Crit</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Brightshield; +15% Block, +5% Reflect on Block</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Sunshield; +25% Block, +7% Reflect on Block</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Nightleather; +20% Aim, +5% Armor Penetration</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Voidleather; +25% Aim, +10% Armor Penetration</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">2P Bloodstone; 15% Lifesteal, +10% Healing Received </span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">4P Ironclaw; 35% Counterattack Chance</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">4P Swiftsteel; 40% Chance of Bonus A1, +50% Crit (Damage Only)</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">4P Wartech; 50% of Crits will have +200% CritMult</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">4P Witchstone; Buffs/Debuffs can Crit</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">4P Lifesilk; +30% Healing Done, HoTs can Crit</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">4P Titanguard; 15% Less Direct damage taken, Redirects 30% of party damage to self</span></li>
</ul>
<span style="font-family: Arial,Helvetica,sans-serif;">That is seriously a <i>lot</i> of options. Today's post is going to be looking mostly at the 4 piece sets, though I may talk a bit about the 2 piece sets in relation. How much does each set help? When might you use each 4 piece set? Let's start with some of the easier to discuss sets.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Lifesilk</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: small;">+30% Healing Done, HoTs can Critical Strike</span></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Lifesilk is pretty straight forward: you want this unit to do more healing. The details are the +30% is multiplicative (so if your Pyrus heals for 30% health, with Lifesilk he'd heal for 39% health), and critical HoTs heal for 15% of maximum health instead of 10% for the basic version.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Since critical HoTs require critical strike, you may want to pair this set with things that increase your critical strike, but if the unit doesn't have any HoTs, then it'll go well with literally any 2P stat increase. On the other hand, for high-level arena, you may end up using a more defensive 2P for your healers to survive. My Anat, for example, runs Lifesilk and Sunshield so she can have the extra block.
</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Witchstone</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: small;">Buffs/Debuffs can Critical Strike</span></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Witchstone is possibly the most complex of the sets, because what does a buff or debuff critting even <i>mean</i>? You can find an exhaustive list on the Alliance website <a href="http://alliance-community.rumblegames.com/forums/threads/173">here</a>, but here's the rules of thumb to remember:</span><br />
<ul>
<li><span style="font-family: Arial,Helvetica,sans-serif;">If the buff/debuff has a number, crits increase it (ie: Armor Break goes from -50% armor to -75% armor)</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">If the buff/debuff doesn't have a number, crits make them unpurgeable (Stuns, Sleep, Silence, Debuff Immunity, etc.)</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Bombs are the odd one out, on a crit they stun when they explode</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Bar drains and Bar fills are affected multiplicatively </span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Witchstone cannot cause HoTs to crit </span></li>
</ul>
<span style="font-family: Arial,Helvetica,sans-serif;">Witchstone makes a good choice if you have buffs or debuffs you want to supercharge. Unpurgeable silence or stuns can do wonders in Path of the Ancients or some Lost Dungeons where one unit constantly cleanses their team. If the unit you're bringing is less about damage and more about control or support, Witchstone may make for a good choice.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">An example here is Sunslash, the Order Sabretooth. He doesn't do much damage, but making his AoE Mark a Critical Mark effectively increases your team's direct damage output by 15.4% (130% extra damage for basic Mark to 150% extra damage for critical Mark).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Titanguard</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: small;">15% Less Direct Damage taken, redirects 30% of party damage to self</span></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Titanguard is a fun one, and in high level arena you can often see it appear in what seems at first glance weird places. The first benefit of Titanguard is a straight-up 15% damage reduction on Direct Damage. The damage transfer effect is not direct damage, nor are DoTs or damage reflect, so they would not be affected by this damage reduction.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The other benefit is redirecting 30% of direct damage taken by other units to the Titanguard unit. Again, direct damage, so DoTs, damage reflect, or other Titanguard transfers do not count. This will often alow some of your squishier units to survive that much longer, even if you don't have a taunt up, or allow them to survive against AoEs.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">This does create a weakness in Titanguard units: it's often easier to kill them indirectly by piling on damage on other units, especially if said other unit has a lot of HP but not a lot of armor--Petra comes to mind here. Titanguard units may also be susceptible to teams that have a lot of high-power AoE attacks for a similar reason: 3 units' worth of damage redirects at once can drain the Titanguard unit's HP bar very quickly.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Finally, multiple Titanguard teams work interestingly: the 30% damage redirect is calculated first, then split among all available Titanguard units. So if you have 2 Titanguard units in your team, each one will take half (15%) of the redirected damage. You also cannot redirect damage to yourself, so if a Titanguard unit is one that's hit, they're not considered an available Titanguard unit in the damage transfer calculation.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Often you'll want to ensure Titanguard is on a unit that
has a lot of health to begin with, since the damage transfer cannot be mitigated. Shields will still absorb it, but nothing else reduces it. So units like Petra, Valorborn, or even the Mechanics are good choices for Titanguard.
</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Ironclaw</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: small;">35% Chance of A1 Counterattack</span></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Ironclaw and Swiftsteel are relatively similar in a mechanical sense. They both give you more (automatic) uses of your first ability. The difference largely lies in the trigger mechanism. Ironclaw requires you to be attacked in the first place. This makes Ironclaw a good fit for units that get attacked often: taunters, provokers, and guarders.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Ironclaw is effectively a DPS increase, but it can also be useful if the Hero has a debuff on their A1 you want to apply as often as possible. Gaius' A1 stuns, for example. Otto's A1 hits like a truck. Both good reasons to bring Ironclaw to the table. In the case where you want more debuffs, you'll likely want to pair it with a surplus of Aim. Especially for tanks, going mostly Aim instead of Block feels weird, but if the enemy team is mostly Stunned anyhow, it's not a big deal.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Ironclaw on farmer units that have self-healing (i.e.: Otto, Petra) is ridiculously effective since they're always getting attacked.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Note that you cannot Counter more than once per attack, so if your Hero already counters as part of their kit, Ironclaw is not likely a great choice.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">It's a pretty straightforward ability, but look lower in the post for an analysis of Ironclaw vs. Swiftsteel, because that's where things start to get muddy.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Swiftsteel</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: small;">40% Chance of a Bonus A1 followup, +50% Critical Strike for Damage</span></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Swiftsteel is a bit more complex than Ironclaw. Every time you use an ability, any ability, you have a 40% chance of following up with a Free Attack, which is a usage of your A1 against the target. If your target is friendly, or the ability has no target, the Free Attack will choose a random enemy, ignoring Taunt or Provoke.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Rallies and Counters count as ability usage for Swiftsteel procs, so you can get bonus A1 attacks on those. However, the Free Attack cannot proc another Free Attack--but a Free Attack proccing a Counter on the opponent to proc a Counter on yourself and then Proccing a Free Attack off that Counter can occur. It's rare, but when it happens you basically just watch the two units hit each other over and over until one of them dies or someone doesn't proc a Free Attack. It behaves like a bug, but it's permissable under the rules of Counters/Free Attacks.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Swiftsteel also provides a +50% Critical Strike, but for damage only. Heals do not benefit from this. This means you'll often pair a Swiftsteel set with either a +Power or +CritMult weapon, rather than the typical +Crit weapon many go with.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The reasons for going Swiftsteel are pretty well the same as going for Ironclaw: it's a DPS increase, and if your A1 has a great effect, you may want more of those. Midorimaru (or any Samurai Cat) is a great case for Swiftsteel to spread more DoTs, for example.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Look below for an analysis of Swiftsteel vs. Ironclaw, and Swiftsteel vs. Wartech.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Wartech</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: small;">Half Critical Strikes are Supercrits (+200% CritMult)</span></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Supercrits. The name sounds awesome, but what is a Supercrit? It's a Critical Strike that has an extra 200% CritMult applied to it. So for example, if you normally have 50% CritMult, a Supercrit will actually do 250% extra damage instead of 50% extra.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Unless you're rocking a surplus of Crit gem slots, you'll almost always want to pair this with a +Crit weapon.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">It's ridiculously straightforward, and basically, if you need burst damage, Wartech is pretty much the way to go. But you also can't rely on it. On average it's really only increasing your CritMult by 100%, since only half your Crits will have it applied. So big, bursty, swingy damage.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Often units with big AoEs will get Wartech applied. If you're not terribly enamored of your Hero's A1, Supercrit may be the way to go for a damage increase. But how does it compare versus just 2 Dragonfury sets (+50% Power)?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For the sake of simplicity, let's pretend everything else is the same: stat allocations, etc. 100% Crit, no extra CritMult.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">If we do 100 base damage, at 100% Crit with a 50% our base damage is 150.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">With +50% Power, our base damage changes to 150, which after a crit is 225.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">With Supercrits, our base damage is still 100, but a Supercrit is +250% damage, which is 350. But the floor half the time is 150. So an average damage of 250 instead.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So you can see that Wartech increases the average damage dealt a bit, even over +50% Power, but it's swingy. Sometimes you'll do way less, sometimes you'll do way more. If you have less than 100% Crit, the benefits of Wartech also go down. In this particular instance, you need 75% Crit to make Wartech do the same damage on average as 2 Dragonfury sets. Now, even if the average damage is lower on Wartech, it will still have a higher maximum. The maximum damage would still be 350. You'll just see it less often.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The above only holds for units that scale 1x with Power. If they have abilities that scale better with Power, then that 75% Crit inflection raises further. If their abilities scale worse with Power, then the Crit threshold goes down.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Enemy teams that have healers--Magitek Bards and Unicorns especially--basically have a HP reset button every few rounds, so burst becomes very important when fighting those teams, making Wartech attractive.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><u><b><span style="font-size: x-large;">Analysis</span></b></u></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Ironclaw vs. Swiftsteel</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Because they're so similar, Ironclaw and Swiftsteel may be an interesting question of which to use.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">To ensure the same number of potential A1 procs a round, an Ironclaw unit would have to be attacked 1.14 times a round. However, Ironclaw is always against the attacking unit, whereas Swiftsteel is against the unit being attacked (usually), or a random unit if none is targeted.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Swiftsteel, if you get really lucky on buff procs, can wreck backline units as it ignores taunts. It's not an effect you can count on however, as you'd have to proc it at 40%, and then randomly select the backline unit (25% chance if nothing else is dead), so basically, if you use a buff with Swiftsteel, you have a 10% chance to hit a given enemy unit. It can be deadly to the opposing team, but not something you can build around.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Every unit in the game has an A1 that will end up having to target a Taunter, so if you have an Ironclaw Taunt up, eventually they'll attack your taunter, and you have a little bit better than a 1/3 chance to hit them back.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So basically, Swiftsteel is great for focus fire, and Ironclaw is great for wrecking backline units.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">What makes this complicated is Swiftsteel's 50% Critical Strike for Damage bonus. What it means is you can effectively run a +Power or +CritMult weapon instead of a +Crit weapon, so an extra +51% Power or +67% CritMult for a maxed out 5* weapon (which, depending on what your scalars are for your abilites, and what your stats allocations are before that, could be a 50%+ damage increase, or even more, but more likely in the range of +25%ish).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">What that means is that the actual "must be attacked this often" value for Ironclaw to match Swiftsteel is:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh7HzbKyaePvsKPj3dBSdfjZ-1e_oOxEPBtaQXu1m83lnnGRAUlVfa7U0Sr-EbWgvP2TeeSrK8fAZishcrQxC_LuXQBKgTpRW-xL-5AJklIXMZIJ0EGkriPwKOBx0nfaKzJLTIVOJYaEQi/s1600/procchances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="104" data-original-width="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh7HzbKyaePvsKPj3dBSdfjZ-1e_oOxEPBtaQXu1m83lnnGRAUlVfa7U0Sr-EbWgvP2TeeSrK8fAZishcrQxC_LuXQBKgTpRW-xL-5AJklIXMZIJ0EGkriPwKOBx0nfaKzJLTIVOJYaEQi/s1600/procchances.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">So the upper bound of Swiftsteel's extra damage output to equal the average damage output of Ironclaw means the Ironclaw unit needs to be attacked an average of 1.71 times a round, which for most tanks is easily hit, even if they aren't tanking (given the prevalence of AoEs). So even with the Swiftsteel +Crit, Ironclaw is actually still fairly powerful in the Tank niche. However, if you have a Counter already built in (ie: Valorborn, or given by Diana), or Rallies, you may be better off going Swiftsteel because you'll have more than one chance to proc Swiftsteel a round, and you'll quickly outstrip Ironclaw with that.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b><br /></b></span></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Swiftsteel vs. Wartech</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Here's where comparisons get complicated. The two act so very differently, making direct comparisons don't quite work. I'll be making some assumptions/shortcuts to make them easier to compare as DPS increases, but what a Hero's A1 is, and what you're aiming for really dictate this decision.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For DPS purposes, though, Swiftsteel is effectively 40% of an A1 and 50% bonus crit, and Wartech is effectively +100% CritMult.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Let's make some other assumptions: 100% Crit regardless of set; frees up Swiftsteel for a +Power or +CritMult weapon. That assumption means that you'd be getting 2/3rds the CritMult that Wartech gives, which given the 40% extra A1 DPS on average means that if you're only using A1, you're going to do more damage with Swiftsteel. On average.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Average is a dangerous word here, however, because most arena fights are over in a couple rounds (or drag on forever). You might decide to go +Power for more consistent results instead, but similar to the calculations we did for Wartech alone, on both cases Wartech will still burst higher than Swiftsteel.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The other thing that makes "average" dangerous is that Wartech favours AoEs heavily. A single AoE can only proc Swiftsteel once, however, you get the potential benefit of Wartech for all the hits of your AoE.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So once again, if you want consistent output, Swiftsteel may be better, but Wartech will give you better burst capability. And of course, if your A1 is an attack you want going off a lot, Swiftsteel is probably the way to go. If most of your damage is AoE, you probably want to go Wartech still. Anything that gives you extra potential Swiftsteel procs will favour Swiftsteel as well (Counters, Rallies).</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>The Future of Swiftsteel </b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The Swiftsteel changes effectively made Wartech niche (where before Wartech was the "best" and Swiftsteel was niche). There's a rumour that Swiftsteel proc rate will be reduced, which will bring it more in line with Ironclaw and Wartech so it's not quite so overwhelmingly powerful, but honestly, it's not the proc rate so much as it's the +50% Crit bonus that allows it to be such a great DPS tool. +51% Power on your weapon is potentially a massive DPS bonus--+67% CritMult is potentially less of a huge bonus unless your Hero doesn't scale well with Power, or you've already got a lot of +Power as the two scale off each other.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">As long as that Crit bonus exists, or exists at that level, Swiftsteel will likely be the go to 4P for DPS. To balance it, the Swiftsteel proc rate would have to be reduced to the point where you'd rarely see it proc, defeating the original purpose of the set. +30% Crit would've been more reasonable, as then you could have the question, do I Elderthorn for my 2P? Do I Weapon for +35% Crit? Do I do both? Can I get Jewel slots to make up the deficit of one or the other? Right now it's basically, Swiftsteel, 7 Crit Jewels, go. Or Swiftsteel, Elderthorn, 3 Crit Jewels, go. Swiftsteel makes it way too easy to hit the Crit cap.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">With that in mind, I forsee a nerf to Swiftsteel's Crit bonus one day (after the designers try the proc reduction), or a buff to Ironclaw/Wartech, although in the right situation Ironclaw will crush Swiftsteel's output today so I'm not sure about buffing it too much. Similarly, Wartech's upper bound already hits so hard today that buffing it the wrong way could be dangerous to game balance--part of why just buffs only doesn't really work as a game balancing tool despite people constantly suggesting it. The math breaks down eventually. Sometimes you just have to nerf.</span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">Theoryc<span style="font-family: "arial" , "helvetica" , sans-serif;">raft</span></span><span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">AllianceHo<span style="font-family: "arial" , "helvetica" , sans-serif;">tS</span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-21722315695641421342017-07-05T13:13:00.000-07:002017-07-05T13:13:07.149-07:00[IndieDev] Checkpoint Saves: Ugh, Why? And How, Part 2<span style="font-family: Arial,Helvetica,sans-serif;">Last week I chatted about the start of <a href="http://talarian.blogspot.com/2017/06/indiedev-nitty-gritty-on-save-files.html">Eon Altar's save system</a>, why it didn't work, and how we fixed it. This week I'll go in-depth about Eon Altar's Checkpoint Save system. </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Fast forward nearly a year from our new save system implemention--Aug/Sept 2015--when we finally entered Early
Access. The game was probably about 80% functionally complete and 60%
content complete. As I like to say, the last 20% of your game will take
about 80% of your time, and Eon Altar was no different. We spent 10
months in Early Access, and initially, the biggest point of feedback we
got was, "How can I save my game mid-session?". Our sessions were about
30 minutes to 4 hours depending on the players, and in 2015 shipping an
RPG without the ability to save mid-session was, well, pretty bad. So
began the process to create a checkpoint save system, and retrofit our
levels to save data correctly.</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Checkpoint Saves: Less Complex?</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Why checkpoint saves, though? Why not save anywhere the player wanted? The answer to that is largely to reduce potential complexity. If a player can save anywhere and anytime they want, it means you have effectively an infinite number of states, and good luck testing that. A specific example of this would be Myrth's Court in Episode 1: The Prelude.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWkVraBjWnFt25tDrIPk_zdC1AgDaIXUDG-nRh7hWeuJHTjAGOHomxfTzIqYiJd5GlBghiFwXIeYYODz43pHE43_27w1IKVRovDvBNagZPhb0Zhgi6fSn6p8wxN8v6Hs-j-vRjFzMR0Cx6/s1600/ss_ed83b8a342aa66a2375a965abc3a61dcbd956454.1920x1080%255B1%255D.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWkVraBjWnFt25tDrIPk_zdC1AgDaIXUDG-nRh7hWeuJHTjAGOHomxfTzIqYiJd5GlBghiFwXIeYYODz43pHE43_27w1IKVRovDvBNagZPhb0Zhgi6fSn6p8wxN8v6Hs-j-vRjFzMR0Cx6/s320/ss_ed83b8a342aa66a2375a965abc3a61dcbd956454.1920x1080%255B1%255D.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Myrth's Court</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">That "moment" as a whole had the following:</span><br />
<ul>
<li><span style="font-family: Arial,Helvetica,sans-serif;">A check to see which player characters were available.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">A dialogue based on that to posit a vote.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">A vote to decide which character's solution to use.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">The actual moment where the party implements aforementioned solution.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Potentially a combat as a result of the solution.</span></li>
</ul>
<span style="font-family: Arial,Helvetica,sans-serif;">If players could save at any point in that process, that would significantly increase the testing complexity around that moment. What happens if you reload with different characters mid-moment? What happens if you have fewer characters? More characters? By only allowing saves to occur at specific points in the level, we can avoid having to test those mid-moment saves.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">By using checkpoint saves, we could tie them to an existing checkpoint mechanic we had in the game already--Destiny Markers/Stones. Again, not having to worry about partial encounters is a huge complexity save, but also not worrying about how to turn on/off saving in certain locations. What if we had a bug that prevented save from being turned back on? Or a bug that allowed saving in the midst of a complex moment? Also, how do we communicate if we can save or not to players? And what would the save UI look like? By tying it to an existing checkpoint mechanic, it made it very easy to communicate and very easy for players to grok. No special rules or explanations necessary. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">So while checkpoint saves aren't as convenient for players, the reduced complexity was enough to make checkpoint saves doable with our small team and budget.</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">How to Train Your Save System</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">We already had a method to quickly save data to disk, and the checkpoint save system would continue using it. The questions then became, where do we store that information at runtime so designers could access it, and how do we design it in such a way that required as little designer input/time as possible?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">First we had to determine what we would have to save:</span><br />
<ol>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Enemy spawner state: were they dead or alive?</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Game object state: was it enabled or disabled?</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">"Usable" object state: was it waiting or already used?</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Finite State Machine (FSM) state: what state was it left in?</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Specialized game object state: what is the game object's transform (position, rotation)?</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Specialized spawner state: what is the enemy's transform (position, rotation)? What is the enemy's AI settings (aggressive, passive, patrolling; allied to players, or enemies; patrol state)</span></li>
</ol>
<span style="font-family: Arial,Helvetica,sans-serif;">With those 6 items, we could literally save anything and everything in our levels.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">I created specialized game components that could track those states and report them to the save subsystem as they changed, so we wouldn't have to trawl through level data to extract information--remember, we wanted to ensure the save system was fast. All the designers had to do was add them to an object they wanted to save that particular state out for, and give it a unique ID (well, my code autopopulated the ID based on a random GUID and the name of the object in the hierarchy, but the designers could override that if they chose).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">This worked extremely well. Design quickly retrofitted our existing levels. The vast majority of our save data is items 1, 2, and 3. FSM save data is rarely used unless the FSM is long-lived (our Destiny Markers are the primary users of this tech). Most FSMs would trigger and finish in one go, or at least in one encounter so we'd not have to worry about partial FSM execution by the time we got to hit a save point (yay checkpoint saves!). 5 was almost never used outside of redirecting patrol nodes for NPCs, and 6 was generally only used on super special NPCs: ones that changed their AI based on designer scripts, or NPCs that were used for escort quests.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_CHq4av8CTd3v5dFVsJe2dQFN4I8PuYyuVURQufqXCf3uK6ZfJq6ZpVc4KdRTVZ88vwyJkzne2xby2oDZ-CMgNTFVv355vBSK0ZCLB-HmbTlQWJ_BXKflOcxTVediSLznRLPsvLiGGJSE/s1600/checkpointsavedata.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="722" data-original-width="778" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_CHq4av8CTd3v5dFVsJe2dQFN4I8PuYyuVURQufqXCf3uK6ZfJq6ZpVc4KdRTVZ88vwyJkzne2xby2oDZ-CMgNTFVv355vBSK0ZCLB-HmbTlQWJ_BXKflOcxTVediSLznRLPsvLiGGJSE/s320/checkpointsavedata.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Wild Checkpoint Data draws near!</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">The code took about a week to create/test/deploy for design. The lion's
share of the time (and bugs) was designers retrofitting levels. I think
it was easily a full man-month of time to get the levels up to snuff,
and the amount of testing required was still absolutely immense, despite the reduced complexity of checkpoints.</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>The Bugs</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"> </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">A pitfall of this--and I'm not sure there's an easy way to solve this pitfall, I don't believe it's specific to this solution--is when designers forgot to put save components in levels, or they chained components in such a way that would create a problem on game load.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">A specific example of this is a door in Episode 2, Session 1. Level design logic had the door with the following states: unopenable, locked, unlocked, open. Depending on the quests you did in the level, it could become locked, unlocked, or open. However, if you saved and quit and reloaded later, then the door would be unopenable because the door wasn't actually saving its state out, and players would become blocked.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Now, when we ran into those issues, we would add the save component in the level data, and then use code that ran on save data load to modify the data before it got applied to the level itself. Basically, we could determine based on what other quests were complete and save object states if the door should be locked, unlocked, or open, and set that state in the upgrade code.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Today we have 10 such save file upgrades that potentially run on a save file to give you an idea of how often we've had to use this, and the lion's share of them are for Episode 2 Session 1. Enough to make me glad we implemented it, but just how different E2S1 was from the rest of the levels really showed how easy it is to screw up save state if you're not careful thinking about it holistically.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b><br /></b></span></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>The Future: SPARK: Resistance</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">SPARK won't have need of checkpoint saves, as sessions won't last more than 10-15 minutes at a maximum. Rather, any save data will be related to your "character". Unlocks, experience, statistics, etc. Thankfully, I'll be able to take our save system nearly wholesale from Eon Altar and apply it here, minus the checkpoint stuff.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOY1EDtAeMvBFu5U1rY5PfiMfOTp4b2EHylSFvWaCahQn0NbEPXKRyiXYz1cW3a8jR5QairBZrRnH5HFxTSN1BajjNRVmlv8ZVzYc_POtcfdNGCIJ4poTZJZeEo1nJWu7j8U9YIAoskVxd/s1600/GeneratedMap.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1103" data-original-width="999" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOY1EDtAeMvBFu5U1rY5PfiMfOTp4b2EHylSFvWaCahQn0NbEPXKRyiXYz1cW3a8jR5QairBZrRnH5HFxTSN1BajjNRVmlv8ZVzYc_POtcfdNGCIJ4poTZJZeEo1nJWu7j8U9YIAoskVxd/s320/GeneratedMap.png" width="289" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">A Randomly Generated Map and Associated Data</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">The in-level checkpoint stuff wouldn't work in SPARK anyhow, as the level structures are fairly different to start with thanks to both the procedural nature of the levels as opposed to hand-crafted, and the fact that the levels are networked right from the start, which is very different from a local multiplayer game.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Conclusion</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The current save system in Eon Altar is robust, extremely fast, legible, easy to modify, and minimalistic in data requirements aside from the fact that it is XML, but the actual data output is all essential. It requires as little designer input as I could possibly get away with (even most checkpoint save data is attached to prefabs and autopopulates all IDs in the scene at the click of a single button). </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Yes, it took a fair amount of engineering work altogether, but I think that's a result of you just cannot skimp on engineering for a system like this. You get what you pay for, and if you're not willing to put the engineering time in, you're not going to get a great system on the other end. And as mentioned at the beginning, persistence is extremely important to games. A game can't afford to skimp on their persistence systems in my personal opinion. </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#IndieDev<span style="font-family: "arial" , "helvetica" , sans-serif;">, #EonAltar</span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-53659696195345975972017-06-28T10:08:00.000-07:002017-06-28T10:08:38.957-07:00[IndieDev] The Nitty Gritty on Save Files, Part 1<span style="font-family: "arial" , "helvetica" , sans-serif;">Persistence is possibly one of the largest drivers of repeated and extended interaction a game can have. RPGs persist campaign data between sessions; puzzle games persist how far you've been in the game and how well you beat each puzzle; even ye olde arcade games persisted high scores for all to see (until someone rebooted the arcade machine, anyhow). With that in mind, creating a robust save system is one of the most important tasks you could have when developing a video game. For us developing Eon Altar and now SPARK: Resistance, this is no different.<br /><br />However, even the task of gathering some data, throwing it on disk, and then loading it later comes with a bunch of potential issues, caveats, and work. I'll talk today about our initial attempts at a save system in Eon Altar, why we went that route, why it didn't work, and what the eventual solution came to be.<br /><br /><br /><b><span style="font-size: large;">A Rough Start</span></b><br /><br />When we first created our save system, the primary goal of it was to save character data and what session the players were on. We had a secondary goal of utilizing the same system as our controller reconnect technology, as the character data was originally mirrored on the controllers as it was on the main game: down to character model and everything. We weren't originally planning on having mid-session saves (those came later), so really we only had to worry about saving between levels.<br /><br />The "easiest" way of doing this, without having to think of any special logic is to copy/paste the state from the main game into the save file, as well as the controllers over the network. In programmer terms, serialize the state, and deserialize it on the other end. Given our time/budget constraints, we thought this was a pretty good idea. Turned out in practice this had some pretty gnarly problems:</span><br />
<ol>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">The first issue
was simply time. The time it took to save out a file or load up a file
was in the order of tens of seconds. Serializing character objects and
transferring that across the network was measured in minutes, if it
succeeded at all.</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"></span><span style="font-family: "arial" , "helvetica" , sans-serif;">The second was
coupling to code. Since we were serializing objects directly, it meant
that any changes to the code could break a save file. If we changed how
the object hierarchy worked, or if some fields were deleted and others
created, then existing save files would potentially be broken.</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"></span><span style="font-family: "arial" , "helvetica" , sans-serif;">The third issue
was complexity. The resulting save file was an illegible, uneditable
mess. Debugging a broken or corrupt save file was a near impossible
task. Editing a broken save file was also quite difficult, if not
impossible. Because of this, we couldn't (easily) write save upgrade
code to mitigate issue 2. We'd have been locked into some code
structures forever.</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"></span><span style="font-family: "arial" , "helvetica" , sans-serif;">The fourth was
just far too much extraneous data. Because we were performing raw
serialization, we were also getting data about textures, character
models, what were supposed to be ephemeral objects, hierarchy
maintenance objects, and so on</span></li>
</ol>
<span style="font-family: "arial" , "helvetica" , sans-serif;">While we had a save system that did what we wanted on the tin, it was untenable. Shipping it would've relegated our small engineering department to an immense amount of time trying to fix or work around those issues. So while this approach was "simple" and "cheap" in terms of up-front engineering cost, it was the wrong solution. We went back to the drawing board.<br /><br /><br /><span style="font-size: large;"><b>The Reimagining</b></span><br /><br />About a year after we started development, the team shrank pretty substantially. We'd lost 1/3rd of our engineering team and my time became even more contested as I became the new Lead Programmer. I had to contend with the responsibilities that came with that title, as well as continuing to deliver features and fixes.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">However, I had already been noodling on the save and reconnect systems, and had a new plan. The first step was to fix the controller reconnect, which you can read more about <a href="http://talarian.blogspot.ca/2015/09/eon-altar-bottled-awesome-reconnecting.html">here</a>. </span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Given reconnect was taking 8 minutes each time we had to reconnect a controller, it didn't take upper management much convincing that something needed to be done. And since reconnect and save were intimately connected </span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">at the time</span>, making a convincing argument to fix save shortly after also wasn't a hard sell. So even though I had to disappear for 2 weeks to fix reconnect, and then another 2 weeks later to fix save files, I think everyone involved believes it was the correct decision.<br /><br />To fix our 4 issues, it wasn't sufficient that we just be able to save and load character data in any which manner. It needed to be quick, it needed to be decoupled from the code, it needed to be easy to read/edit/maintain, and it needed to be deliberate about what it saved out.</span><br />
<br />
<br />
<b><span style="font-size: large;"><span style="font-family: "arial" , "helvetica" , sans-serif;">The Reimplementing</span></span></b><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">For humans, text is easier to read over binary, and a semantic hierarchy is more legible than raw object data. So I knew pretty early on that my save file data was going to be in XML and in plaintext.<br /><br />Plaintext was important. We often get asked why do not encrypt our save files, and it comes down to maintenance. Human-legible files are easier to read and easier to fix. As an indie studio with extremely limited resources, this was a higher priority for us than preventing people from cheating their save files in a local multiplayer game. If your friend is going to give themselves infinite resources and you catch him, you can dump your coke in his lap. </span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Plaintext has saved our bacon multiple times: if there is a bug that is blocking our playerbase, more enterprising players have been able to repair their own save files with careful instructions from us (and a lot of WARNING caveats) until we can get around to fixing it. Also, being able to just quickly get information from broken save files without having to decrypt them.<br /><br />The benefit of using XML is we could serialize to and deserialize from programmatically without any extra work on our part: tools to do so already existed. In fact, we were already using those tools to do the old save files. The difference was instead of serializing the character object instances directly, I created an intermediate set of data that was decoupled from the objects that made up the character data instances in-game, and this data was going to be organized according to game-play semantics rather than raw object hierarchy.<br /><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9LM2gSpG1ity5fVNcYIuzTBpAwL7q0gjXKGi3gIc90Kl_owt_b0zRLUY05mQ2IirHS8T8GNTTJXIR4lG1-7dQHAii9Sz5RyyuNZCXskPWthgwwPyIZdjyqWA_CsfCt_lrdccx-fbt3Gbr/s1600/savedatacombo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="972" data-original-width="1232" height="504" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9LM2gSpG1ity5fVNcYIuzTBpAwL7q0gjXKGi3gIc90Kl_owt_b0zRLUY05mQ2IirHS8T8GNTTJXIR4lG1-7dQHAii9Sz5RyyuNZCXskPWthgwwPyIZdjyqWA_CsfCt_lrdccx-fbt3Gbr/s640/savedatacombo.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">An example of a simple data class, and the resultant XML.</span></td></tr>
</tbody></table>
Having actual data classes meant we could lean on the compiler to ensure data types matched up, and that we could just use existing serialization tools to spit out the save data. It did mean a fair bit of manual work to determine what goes into the save file and where, but the benefits of that work more than made up for the upfront time. Adding new fields to save data is trivial, and populating new fields via upgrade code isn't terribly difficult. Editing existing save files became super easy because the save file format was now extremely legible. Legible enough that we've had users edit their own save files easily. And good news, because the data was decoupled we could actually write save upgrade code!<br /><br />Collating the data into the data classes at runtime is a super speedy process. Less than 1ms on even the slowest machines. We're only serializing the simplest of objects--data classes are generally only made up of value types, other data classes, or generic Lists of other data classes or value types. And since we weren't serializing a ton of extraneous objects that only were supposed to exist at runtime, the amount of data we'd save out was significantly reduced: 29KB for a file with 2 characters, instead of multiple MBs. We put the actual writing of the save file to disk on a background thread; once we had the data collated, there was no reason to stall the main thread any longer, and disk writes are notoriously slow.<br /><br />The difficult part was going from the data classes to instanced data. Previously it would get hydrated automatically because that's what deserializing does. However, in this case we hydrated data classes, I had to write a bunch of code that recreated the instanced runtime character data based on those data classes. This required a lot of combing over how we normally generated these object instances, and basically trying to "edit" a base character by programmatically adding abilities, inventory, etc. based on the save data. It wasn't particularly hard, but it was time consuming, and potentially where most of our bugs were going to lie. But by using the same methods we call when adding these things normally at runtime allowed me to reuse a lot of existing code.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b><br /></b></span></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Part 2: Checkpoint Saves</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: small;"> </span><br />We had our new save system, and it was pretty awesome. The original
save system was done in approximately a week, if my memory serves, maybe
a little longer. The new system took a month to implement after
research, programming, and testing. Basically, you get what you invest
in. Skimping on engineering time on this feature was a bad decision in
my 20/20 hindsight, but we fixed it, so all is well today!</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Next blog post I'll discuss the next step we took for Eon Altar: Checkpoint saves. Why checkpoints? What did we need to do to retrofit the game to handle checkpoint saves? What implementation? What pitfalls we ran into? And then, what can we reuse for SPARK: Resistance?</span> <span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#IndieDev<span style="font-family: "arial" , "helvetica" , sans-serif;">, #EonAltar<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-31745062651427380762017-05-08T05:36:00.000-07:002017-07-22T19:07:05.996-07:00[Alliance:HotS] Stats and Stat Relationships<span style="font-family: "arial" , "helvetica" , sans-serif;">Alliance: Heroes of the Spire--like many RPG-derived systems--has a number of statistic on each hero, and they're not really explained in-game. I've had the luck to chat with the developers (they're quite available, which is super cool), and have gotten a few formulas out of them instead of having to reverse-engineer everything on my own, which is <i>fantastic</i>. So here I'll talk about a couple of the major formulas, then talk about what those formulas mean for numeric relationships.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">WARNING: SO MUCH MATH AHEAD </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Aim vs. Block</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Possibly the most asked about, and one of those more misunderstood. Aim and Block affect how often your debuffs land, or how often debuffs land on you. They're directly opposed. The formula is as follows:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxy9HvZMVJU9yXcibsWkPFWks4M7T8zIGxZsoPsSKi0B-2OGrduXxI9_wWdogF2Rx2pJIR7sEChCIlc1mDWQxJMykYWcBpNrWAN0JNOhJYxkBLqNdaz5i1K35xBawoq1Geopd5lxXkBY22/s1600/AimVsBlock.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxy9HvZMVJU9yXcibsWkPFWks4M7T8zIGxZsoPsSKi0B-2OGrduXxI9_wWdogF2Rx2pJIR7sEChCIlc1mDWQxJMykYWcBpNrWAN0JNOhJYxkBLqNdaz5i1K35xBawoq1Geopd5lxXkBY22/s1600/AimVsBlock.png" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Noting that Aim and Block are both percentages, so divide the value you see in the UI by 100.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So an example might be Caelia, who has a 50% base rate to proc a Heal Block debuff on her target with her A1. If she has 73% Aim, and the target has 25% block, the result is:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw6v5wXCTNVREvDlp7R_sGT0Up1KGMnIUZCn6Zbbes_KDtXWkEJGmRqQXc9XDd3vIvJXHOTCwwlBADnMlmRM-F-9q0TfTSIk6q3ne_MsycmhBXHtaRNHCzPbqYcC75DE-SWeUL1Ffsxvxb/s1600/AimVsBlockExample.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw6v5wXCTNVREvDlp7R_sGT0Up1KGMnIUZCn6Zbbes_KDtXWkEJGmRqQXc9XDd3vIvJXHOTCwwlBADnMlmRM-F-9q0TfTSIk6q3ne_MsycmhBXHtaRNHCzPbqYcC75DE-SWeUL1Ffsxvxb/s1600/AimVsBlockExample.png" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So the two are <i>linearly</i> opposed, but <i>multiplicative</i> to the base proc rate. If the base rate is low, it'll still likely be low even with oodles of Aim. i.e.: a base 20% would only be 40% with 100 Aim against 0 Block, which is twice as high but no where near a guaranteed proc, but that Aim will prevent a high Block enemy from dumping your proc rate into the toilet, as 100 Block but 0 Aim means multiplying your proc rate by 0.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Basically, if Aim and Block are close, it'll be about your base proc rate. The further apart they are, the greater the effect but the base proc rate is still the biggest factor.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Power vs. Armor</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Okay, so let's do some damage. The things to remember about damage rolls is that the only "roll" that occurs is the crit roll. Aim has nothing to do with your "accuracy" in the traditional sense (only for debuffs), and the damage itself is a static number based on your stats; there's no random variation.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The damage formula is just a string of multipliers:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNLSO_DPN4g-1Zv24V6fkhOVSKkhGEXWjtJHgCPttJM-5E2Yj3w0pDsanD1IqX3nGD4De0m4bQTMgakWFDv8FXK0T6v6BCLDZygTEpPLJcSm37iRjntryetpiFrxVL8Tfqr23GEqYLw8T/s1600/Damage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNLSO_DPN4g-1Zv24V6fkhOVSKkhGEXWjtJHgCPttJM-5E2Yj3w0pDsanD1IqX3nGD4De0m4bQTMgakWFDv8FXK0T6v6BCLDZygTEpPLJcSm37iRjntryetpiFrxVL8Tfqr23GEqYLw8T/s1600/Damage.png" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Each individual factor is a little more complex, but not by much.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxx1oOiaU7uIw8ZKLGioXW3P3LZqlu6yyyxH4lWkqihD6L1k0O9cfYOQdY2YnjDoFTJTIfZi_65TylvRZ8vPFnUlgxJ8VIbTv_EG-0VbPgKcHHZPLk_e8QSg9Qn0fCjI1bhX5hMzIxMieg/s1600/DamageRaw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxx1oOiaU7uIw8ZKLGioXW3P3LZqlu6yyyxH4lWkqihD6L1k0O9cfYOQdY2YnjDoFTJTIfZi_65TylvRZ8vPFnUlgxJ8VIbTv_EG-0VbPgKcHHZPLk_e8QSg9Qn0fCjI1bhX5hMzIxMieg/s1600/DamageRaw.png" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Raw damage is simply your power multiplied by the scale factor of the ability. In cases where the ability does bonus damage, that bonus damage is generally the stat multiplied by a different scale factor. You can find scale factors on <a href="https://spirebarracks-dev.herokuapp.com/">https://spirebarracks-dev.herokuapp.com/</a> for each hero ability, though I'm unsure how up to date it is.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">For example, <a href="https://spirebarracks-dev.herokuapp.com/heroes?hero=Akamian">Akamin</a>'s A1, Magic Bolt, has a scale factor of 1, so it's simply just Power in base damage. His Spray of Flame, however, has a scale factor of 1.15, so it does more base damage.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">In the case of "bonus damage" such as <a href="https://spirebarracks-dev.herokuapp.com/heroes?hero=Otto">Otto</a>'s A1, Backhand, you have 0.2 * Power + 0.44 * Armor as the RawDamage factor.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEfKrj1NcLk2ZH_BCqKI1Urvz6umt4GEkR2mMT9APEFY9I2a8goxh7JJ929jTa5QBH73bQNIvmGJZ-8jF1yaEJ_mb9FIfsjqcQQ-IvTwNFRvpw4CxAk4VcgQoK_zXKj_kxSzbbQ0ztAysc/s1600/DamageArmor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEfKrj1NcLk2ZH_BCqKI1Urvz6umt4GEkR2mMT9APEFY9I2a8goxh7JJ929jTa5QBH73bQNIvmGJZ-8jF1yaEJ_mb9FIfsjqcQQ-IvTwNFRvpw4CxAk4VcgQoK_zXKj_kxSzbbQ0ztAysc/s1600/DamageArmor.png" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The Armor Factor is based on your opponent's armor. All attacks are affected by this factor--unless they penetrate armor, but I'm not covering that today. The relationship ensures what is known as diminishing returns. Basically, after a certain point, each extra 1% mitigation becomes more expensive than the last.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy6Yms_WlduH5Lw2TFovsQtlYFVKPD0WNMWAGaa4P38OvA0yBr8Jz3mSB_prZDvXnvWJtsQ9lzaUZeiAGKwFYGZpyoYtXhYP74WA1Szt9aFdiywT4U3O4ZMMOqpr9ODhfFAZ7NNjyLZ5kM/s1600/armorscale.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy6Yms_WlduH5Lw2TFovsQtlYFVKPD0WNMWAGaa4P38OvA0yBr8Jz3mSB_prZDvXnvWJtsQ9lzaUZeiAGKwFYGZpyoYtXhYP74WA1Szt9aFdiywT4U3O4ZMMOqpr9ODhfFAZ7NNjyLZ5kM/s1600/armorscale.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Armor Value vs. Percentage Mitigation</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">For example, to get 20% mitigation, you need 260 armor. 60% mitigation, you need 1560 armor. 80% mitigation, 4160 armor. 90% mitigation, 9360 armor.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">That sounds pretty excessive, but each interval I chose was half the damage taken of the previous interval. However, armor does start to lose a lot of luster after 4000ish unless you can easily net those armor points.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Finally CritFactor:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgATGa3LWei2p-SeWNq8sy4QKqzzoUcFS2RLsBrYzx3vWWUEoNZ4BDSh9uHDQ0Zb9Xq-4AuKcYkLWBZF6TuQlPzG-mbQyk1qxMLVDZgxr3AsyLmIEoNaz8ZOJXSyLSn9031TrnP-M5_fHjj/s1600/DamageCrit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgATGa3LWei2p-SeWNq8sy4QKqzzoUcFS2RLsBrYzx3vWWUEoNZ4BDSh9uHDQ0Zb9Xq-4AuKcYkLWBZF6TuQlPzG-mbQyk1qxMLVDZgxr3AsyLmIEoNaz8ZOJXSyLSn9031TrnP-M5_fHjj/s1600/DamageCrit.png" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Pretty simple, don't affect the calc if you don't crit. Increase damage by your Crit Multiplier if you do crit. Edit: Picture should say 1 + CritMult%, not <complete id="goog_1220218398">+Crit%. Thanks Packo!</complete></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Crit% vs. CritMult%</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Critical Strike Rate increases your damage, as does Critical Multiple Factor. However, the two are symbiotic. The more Crit% you have, the more you benefit from CritMult%, and vice versa. The good thing is that since this relationship is static, we can math out the optimal numbers for best performance.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The graphs compare the two look like the following:</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFmRYyDDv1Labsla1s49eF-1TpnghqupFcBNJz01W66bZV9S_reJFDIQAo8i_qpFp-sG4XTl3N45_mYXJ4pg4zXCAKTF9cd65X_xPUVUFsp4xAhEIQ64MKL6sHvda0cQSqhDCPQaTdOPjO/s1600/CritvsCritMult.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFmRYyDDv1Labsla1s49eF-1TpnghqupFcBNJz01W66bZV9S_reJFDIQAo8i_qpFp-sG4XTl3N45_mYXJ4pg4zXCAKTF9cd65X_xPUVUFsp4xAhEIQ64MKL6sHvda0cQSqhDCPQaTdOPjO/s1600/CritvsCritMult.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Crit% on bottom left X axis, CritMult% on right, Z axis. Ultimate average damage multiplier on the Y axis.</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">That's a little hard to read, so here's a contour graph instead:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPGgRg-y-v7535EsgUlMo18URYvC2Tt0w21fsi0-T8KPBXZpM8-SQYv2P1ICsIn5YhfpZPFY1vMSinCz1o-pgKu__QVaInTVA-Gdt-ztf3kwNuZg9hbwpQllLYL_yp6zEoM-Vx2wup3Gli/s1600/CritvsCritMultContour.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPGgRg-y-v7535EsgUlMo18URYvC2Tt0w21fsi0-T8KPBXZpM8-SQYv2P1ICsIn5YhfpZPFY1vMSinCz1o-pgKu__QVaInTVA-Gdt-ztf3kwNuZg9hbwpQllLYL_yp6zEoM-Vx2wup3Gli/s1600/CritvsCritMultContour.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">X axis is Crit%; Y axis is CritMult%. Contours from left to right are +0.2 damage multiplier</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The darkest blue section represents an average damage increase of 0% - 20% over time. Then we have 20% - 40% in the mid-blue, 40% - 60% damage increase average in the blue-orange, and so on.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">From this graph we can easily see that Crit% has the bigger effect on our average overall damage until we start getting close to maximum Crit%. At the 60% Crit% to 80% Crit%, we may actually be better off starting in on CritMult% (assuming you're going for damage, and not say, Witchstone, which cares naught about CritMult%).</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">A level 25 Weapon gives 35% Crit% or 67% CritMult%, whereas jewels are 5% each making Crit% jewels far more powerful than CritMult% to a certain point. The Crit% weapon is still more powerful than CritMult% unless you're rocking enough Crit% jewels to hit ~60% Crit without the weapon (which is 9 5% Crit% jewels. Attainable, but good luck).</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Crit%/CritMult% vs. Power</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">This is going to be the most complex relationship, and depends entirely on what scale factors your abilities have. However, if we assume a scale factor of 1x your power, life gets a little easier. Then the amount of extra damage you do depends entirely on your percent increase to Power.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">If we look at the contour plot in the section above, with the base level of CritMult, we'd need 80% Crit% to maintain a +40% damage for an A1 with a scale factor of 1, whereas a level 20 Power weapon will give you +40% damage by itself. This benefit gets even better for abilities that have better than 1x scaling for Power. Basically, if you go all in on Power, it should be numerically comparable to going all in on Crit% and CritMult%, if not better.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">9 5* Power jewels is +99% Power, and Weapon and Gloves at 5* would be another 102%, meaning you'd do triple base damage, versus 9 5* Crit% jewels for +45% Crit% (60% total) and +134% Crit Mult (for a total of 184%), which only sits around double average damage.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Crit% jewels seem to be far more abundant than Power%
jewels, though. I'm swimming in 5* Crit% jewels and have...0 Power% 5*
jewels. Not sure they even exist. 4* give 8%, which is +72% Power. Which is still better on average than the Crit% route.</span> </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But barring Supercrits or mechanics that play off Crit% or Crits, Power seems to be the mathematically superior option here, especially at lower ends of gear. At least for average damage over time. For PvP, especially with Magitek Bards than can reset the health bars of their party every 3 turns, burst is the name of the game and Crit%/CritMult% will give you far better burst than just Power will.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Basically, Crit%/CritMult% makes your DPS swingier but a higher upper bound at low gear levels, whereas Power is good for solid, dependable DPS but not as swingy. But enough Power gems, and even Power can reach the upper bounds of what Crit%/CritMult% can manage.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">And again, this goes entirely out the door if your abilities scale poorly off Power. So most tanks or multiattack abilities, like Pistoleers or Free Blades' A1. Or if you have things that proc off Crits, or you're using Supercrit (which I'm not going to do the math on today).</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>HP vs. Armor</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Often people consider something called "Effective Health", which is a combination of factors that basically say: you have effectively this much health. For example, if you have 1000 HP, and 50% mitigation, your "effective health" is 2000.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Think of it this way: if an attack does 500 damage a shot, and you have 50% mitigation, each actually only does 250 damage, and it'll take 4 shots to kill you. Or if you have 2000 health and no mitigation, it'll take you 4 shots to kill you at 500 damage a shot if you have 2000 health. Hence an effective health of 2000.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Armor and HP tend to be diametrically opposed on gear, you either have armor, or HP, and HP generally comes in percentages (I'm ignoring raw value jewels for this), so you can directly compare how much effective health your armor gives you versus how much health your HP gear gives you. But note that Effective Health scales off both HP <i>and </i>armor, so it's not a strictly 1:1 relationship.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Add to that the fact that the majority of healing is done via percentage heals, there's literally no reason to have more actual HP. Effective health is king here. What complicates this is that armor isn't a linear value. Diminishing returns makes this a lot harder to determine the relationship, and the hero's base armor will play a huge role here.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvdPYLiNio1l7hDWNmHBzN5zoc0bbUNaB1JqMHafVIdJ-oliOyH_0IJKN5p3gokkFG9hfJl2SbhbNaSdJSk_3JAB7haWKt9PCV5e7zLGZWKQopVaqLFliQJkABlpgyaYITFGRNc6JkIK8/s1600/HPVsMitigation.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvdPYLiNio1l7hDWNmHBzN5zoc0bbUNaB1JqMHafVIdJ-oliOyH_0IJKN5p3gokkFG9hfJl2SbhbNaSdJSk_3JAB7haWKt9PCV5e7zLGZWKQopVaqLFliQJkABlpgyaYITFGRNc6JkIK8/s1600/HPVsMitigation.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">+HP% on bottom left X axis, Mitigation% on right, Z axis. Effective Health multiplier on the Y axis.</span></td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21k1Tac9E0PLDY-oPzFJ4cEiVzK6u8NRV9Bnc_NM5C7dv48L1tPS2_ZgNBbvrg9hcrcbi5pEbLEFv_riLfyQE5p37drIEZrg1Ybs6koPlPqe-nHGIv9Y0HTXY_jxZe8JfnV7rzxaPnsfK/s1600/HPVsMitigationContour.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21k1Tac9E0PLDY-oPzFJ4cEiVzK6u8NRV9Bnc_NM5C7dv48L1tPS2_ZgNBbvrg9hcrcbi5pEbLEFv_riLfyQE5p37drIEZrg1Ybs6koPlPqe-nHGIv9Y0HTXY_jxZe8JfnV7rzxaPnsfK/s1600/HPVsMitigationContour.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">+HP% on the X Axis, Mitigation% on the Y Axis, every contour is +1x Effective Health, starting at +2x</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As you can see in the plot graph, mitigation as it approaches 80% increases effective health significantly. 90% even more so. I actually had to cut it off at 80% or the graphs would be barely legible. 90% mitigation is basically 10x effective health, for example, vs. 80% mitigation which is only 5x effective health.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Which is to say, armor has a much larger effect on effective health than raw HP does. And remember that 1560 armor total is enough for 60% mitigation. But since mitigation is static, let's sub in the Armor formula for y in our contour graph:</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9DQkBphsPDds-04QQHi_qSwlEO5sHsUXrcIOvDf5UbYEcWdhbQjLnZaj9qBNA-nZDF6VMq4lnYJuIvmIjY4AysEHyijuPhXB1eHzLH7DOd0WFiQOGv7educaZqLFhqAFwePbkjczkpHw/s1600/ArmorVsHealthContours.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9DQkBphsPDds-04QQHi_qSwlEO5sHsUXrcIOvDf5UbYEcWdhbQjLnZaj9qBNA-nZDF6VMq4lnYJuIvmIjY4AysEHyijuPhXB1eHzLH7DOd0WFiQOGv7educaZqLFhqAFwePbkjczkpHw/s1600/ArmorVsHealthContours.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">+HP% on the X Axis, Armor on the Y Axis, every contour is +2x Effective Health</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">There's no easy off the cuff answer here, unfortunately. Some combination of health and armor is likely to be the best. Here's a closeup of the bottom half of the graph with a higher contour fidelity:</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6uC_Tx3Qu90iHeIDBrszZPymQHQuY2GFVA7eNV6jmeWp-ZBSR2fOXBEQ6L-JZ5sA2pVfuDHaeOZOKcIG57Of2X0WO19K64TjZSn86mjR6XMj9Ws7u7YD1szibOkotiX86391jV0HVEw9c/s1600/ArmorVsHealthContoursCloseup.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6uC_Tx3Qu90iHeIDBrszZPymQHQuY2GFVA7eNV6jmeWp-ZBSR2fOXBEQ6L-JZ5sA2pVfuDHaeOZOKcIG57Of2X0WO19K64TjZSn86mjR6XMj9Ws7u7YD1szibOkotiX86391jV0HVEw9c/s1600/ArmorVsHealthContoursCloseup.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">+HP% on the X Axis, Armor on the Y Axis, every contour is +1x Effective Health, starting at +2x</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So ~2100 armor but no health is about x3 Effective Health, which is about the same as +200% HP and 0 armor. But if you could manage ~2100 Armor and +50% HP, you're looking at nearly x4.5 Effective Health.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">No easy answers, but unless Rumble decides to put in attacks that do static HP in damage instead of percentages, or start converting heals from percentage to amounts that are static, your actual HP doesn't matter. It's all about the Effective Health. The one exception currently is Armor Penetration. This fact makes stacking armor penetration potentially extremely powerful against Tanks, but I haven't run the numbers yet. That's just a hunch.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Edit: There is one other thing: Armor Break. Normal is 50% armor reduction, Witchstone is 75%. For a tank with the</span><span style="font-family: "arial" , "helvetica" , sans-serif;"> 4160 armor for 80% mitigation, that means 2080/1040 Armor after the debuff, which amounts to 66%/50% mitigation. So basically, 70%/150% more damage taken. So HP is a buffer in case of Armor Break.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b><br /></b></span></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Conclusion</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I don't know how speed works precisely, so that's the one stat I'm missing, but otherwise this is a pretty comprehensive mathematical look at the stats in Alliance. Power in general seems to be undervalued by the community and Crit% overvalued. Armor vs. HP has a correct optimal answer, but depends on how much armor your character can get. Crit% vs. CritMult% also has a correct optimal answer, and Aim vs. Block is pretty straightforward. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The wrinkles that get thrown in these are basically individual ability power scalars, "bonus damage" scalars like armor for some tanks, or Aim/HP/Whatever, or abilities that proc off crits, including armor sets such as Witchstone and Wartech. A lot depends on the individual hero still. </span><span style="font-family: "arial" , "helvetica" , sans-serif;">And none of this takes into account buffs/debuffs.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">Theoryc<span style="font-family: "arial" , "helvetica" , sans-serif;">raft</span></span><span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">AllianceHo<span style="font-family: "arial" , "helvetica" , sans-serif;">tS</span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com6tag:blogger.com,1999:blog-2814591084344141656.post-50938007486726169712017-04-23T02:17:00.000-07:002017-04-23T02:17:01.131-07:00[Alliance:HotS] Theorycrafting Critical DoTs<span style="font-family: Arial,Helvetica,sans-serif;">I've been playing a lot of Alliance: Heroes of the Spire the past couple of months. It's a nifty Summoners War clone made by a North American company, which has been pretty cool because we get to talk to the devs relatively often--as a dev myself, I'm pretty appreciative of that access.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So, you summon heroes, level them up, gear them up with up to 6 pieces of gear, and let them loose on other teams and dungeons. The thing about gear is you can wear x number of a type of gear to get a benefit. For example, Bone gear will increase your hero's Health by an extra 20% for every 2 pieces of Bone gear you have on. Some more powerful sets require 4 pieces, making them mutually exclusive with other 4 piece sets--such as Swiftsteel (25% chance of performing an extra ability 1 attack every time you attack), or Titanguard (Transfer 30% of damage done to your party to you, reduce incoming damage by 15%).</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ3FhyphenhyphenGQjL3bgUOVke003C9KIhrhZoqoW7zJnFIPn6ktnaWag1Qzpppn4vOtmRvsIxcVG5jNv9msppcPoN3bToa95fSDzd6bycjyNCa3dg9GPUrUVeYLIb79GqdukFpSsHfyqVEg4L_Mri/s1600/IMG_0398.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ3FhyphenhyphenGQjL3bgUOVke003C9KIhrhZoqoW7zJnFIPn6ktnaWag1Qzpppn4vOtmRvsIxcVG5jNv9msppcPoN3bToa95fSDzd6bycjyNCa3dg9GPUrUVeYLIb79GqdukFpSsHfyqVEg4L_Mri/s320/IMG_0398.PNG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">My Sunslash's Gear Screen, wear 4-Piece Witchstone and 2-Piece Sharpthorn</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">However, one of the more interesting mechanics I've found in the game is that using a specific item set--Witchstone--your buffs/debuffs can critical strike, making them either 40% ~ 66%ish more powerful depending on the buff/debuff, or undispellable if it's not a numeric buff.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">A prime example of this are Damage Over Time debuffs, aka DoTs. The regular DoT always does 5% of the target's max health in damage each round, but a critical DoT does 7% per round (an increase of 40% total damage). DoTs are great at shredding most PvE bosses, as they tend to be a big target with lots of Armor (damage reduction), and DoTs ignore Armor.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHw-U2u_ny5oG1Ri1BvLaGBFfZkSGfOy4WoDRXQE2bGlMs-FBNVcvtn_LXkC-i9pZk07CY_-JZhGKvmeNFUYR3lUB3l6KZ80IcdBbYxApsk7qp3ytg94uPh7yoIvSmiJGOANz4zf6goNnU/s1600/IMG_0397.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHw-U2u_ny5oG1Ri1BvLaGBFfZkSGfOy4WoDRXQE2bGlMs-FBNVcvtn_LXkC-i9pZk07CY_-JZhGKvmeNFUYR3lUB3l6KZ80IcdBbYxApsk7qp3ytg94uPh7yoIvSmiJGOANz4zf6goNnU/s320/IMG_0397.PNG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Razormane, Flameclaw, and Icefang are plentiful and, against the right targets, powerful.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">As such, lots of people like to use Razormane or Flameclaw to take out bosses. The benefit of these cats is that they're quite common--they're available from the worst pull you can make, and even drop from some dungeons, and their main attack has a 30% chance to apply a DoT (and can apply a second DoT if they were stealthed when they attacked).</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Where this becomes <i>really</i> interesting is Swiftsteel (25% chance of an extra attack) vs. Witchstone (If your DoT crits, it'll be 7% DoT). Are the extra attacks better than the critical DoT? Let's do some math.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Making this all slightly more complex is the fact that debuffs may not always land. The to-hit of a debuff is Base Chance + (Aim - Enemy Block). Pretty close to everything has a base 15% to block (Bosses actually hit 25% at the highest floor you can fight them at).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So we have two possible stats for our DoT to scale from: Aim (Hit%), and Crit%. To make this easier, we'll ignore stealth for Flameclaw, and just assume spamming the first ability over and over.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Varying over Crit%</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Let's assume we have a 100% chance to apply a DoT (125% Aim against a Floor 6 boss), and vary the critical strike percentage.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For Witchstone, we have an Crit%, aka x, chance to apply a 7% DoT, otherwise it's a 5% DoT:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiN7P03FY-uNSc5xTWXAyDx5owVT4Mx1DO2IiwLsXhODHQV2EQNY9Mdr8JD28ZJEYZCqMsM6lBXxPY1OwS1mv3zigFdjQN9CH5dzTs5PLoFtqMQHHD7q5vdhJQ9Iz0b9Fz0nvxYZ0hgHuZ/s1600/WitchstoneCrit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiN7P03FY-uNSc5xTWXAyDx5owVT4Mx1DO2IiwLsXhODHQV2EQNY9Mdr8JD28ZJEYZCqMsM6lBXxPY1OwS1mv3zigFdjQN9CH5dzTs5PLoFtqMQHHD7q5vdhJQ9Iz0b9Fz0nvxYZ0hgHuZ/s1600/WitchstoneCrit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">For Swiftsteel, it never crits, so the amount of damage we can apply is based on the Swiftsteel proc rate:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXIF4DAgpQSQbWhyqGEgCn3hJTqdjgKHwQWAdr-uGapGsDVMx7DOjz4ViVRk5ZKgWgxdmvwkp8-oCn37EjJtevDFo1Plo-aFeT0oaDXNfKUAlYJfruDJNLZ7DgS9dlzsr9ocBva7bcW2up/s1600/SwiftsteelCrit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXIF4DAgpQSQbWhyqGEgCn3hJTqdjgKHwQWAdr-uGapGsDVMx7DOjz4ViVRk5ZKgWgxdmvwkp8-oCn37EjJtevDFo1Plo-aFeT0oaDXNfKUAlYJfruDJNLZ7DgS9dlzsr9ocBva7bcW2up/s1600/SwiftsteelCrit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Now, there's a small flaw in this math that I'm going to glaze over, which is that these expected health percentage damage values are an average over a lot of samples. In a single fight where you might get 5 - 10 turns, the variation is going to be much higher, so take this with a grain of salt. But over a lot of fights, we can work without dealing with that flaw.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">In any case, since Witchstone's damage is varying over Crit%, but Swiftsteel doesn't, that suggests there should be a solid inflection point where Witchstone will generally outperform Swiftsteel for DoT damage:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9uJAqeLRcd67KNrsOH7ervIesubPVgo3o5ApgDXORJXpw-axITy0vSGGkeGt2Iw5G11Gm6WOq5FAdFvYc4ax24367DE9AfZaPa7jV4CxZl2tzOnINoujpyjyLkc-Ve65lbYwichX1CujI/s1600/witchstoneSwifsteelCrit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9uJAqeLRcd67KNrsOH7ervIesubPVgo3o5ApgDXORJXpw-axITy0vSGGkeGt2Iw5G11Gm6WOq5FAdFvYc4ax24367DE9AfZaPa7jV4CxZl2tzOnINoujpyjyLkc-Ve65lbYwichX1CujI/s1600/witchstoneSwifsteelCrit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">So, assuming we'll always apply a DoT, Witchstone will usually outperform Swiftsteel once you reach 62.5% chance to critical strike your DoT.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Varying over Hit%</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Let's assume we have a 100% chance to critical strike, and vary over Hit%, aka y. I'll ignore the Block/Aim/Base Chance portion, and work with the Hit% directly to make life a little easier.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For Witchstone, this is simply, since it always crits:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7Wd1Xitk5UqejTNA0rkfC_fAQfUxExwzLInk5sY083Vt9yE8y90pXXixTJlt1cBGSJoCeRxWEixIdw95OIsG2dR74MMB02dck-UFbu7SREupxSh6jpLdeDJkTQscNIEjS5gyCG9zUFmt1/s1600/WitchstoneHit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7Wd1Xitk5UqejTNA0rkfC_fAQfUxExwzLInk5sY083Vt9yE8y90pXXixTJlt1cBGSJoCeRxWEixIdw95OIsG2dR74MMB02dck-UFbu7SREupxSh6jpLdeDJkTQscNIEjS5gyCG9zUFmt1/s1600/WitchstoneHit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For Swiftsteel, this means we scaled both the regular attack and the 25% proc attack by Hit%:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4quurmA8oIwbM1tchdcrGbfPUwkc4Cm3o4kEfz36t8dX4gQLiLvDf7KN-XsLtTCmhZW4TI5WskIjKr6b8y1wHfmim_CzPN64j_mFOjszf58k_EJ5gO-6_8YoCs8E2U9-6oEN4UHv9iWu/s1600/SwiftsteelHit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4quurmA8oIwbM1tchdcrGbfPUwkc4Cm3o4kEfz36t8dX4gQLiLvDf7KN-XsLtTCmhZW4TI5WskIjKr6b8y1wHfmim_CzPN64j_mFOjszf58k_EJ5gO-6_8YoCs8E2U9-6oEN4UHv9iWu/s1600/SwiftsteelHit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Comparing the two, we actually find out that Witchstone simply scales faster than Swiftsteel with Hit%. The only value of y where an inflection point can exist is y = 0:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlqcSvUoBHcQe26cfkjHjlAz8GN2hWUqTiM3l744EYaW7BbzPlu3dAwRLkvMauY45a2qVegIISVnyKXNPrh0jzu-iZoryZX413Sg_O1fv5DE_B7TlsRGNpNUMrv1bq7MY9gTo8r2zHFdPD/s1600/witchstoneSwifsteelHit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlqcSvUoBHcQe26cfkjHjlAz8GN2hWUqTiM3l744EYaW7BbzPlu3dAwRLkvMauY45a2qVegIISVnyKXNPrh0jzu-iZoryZX413Sg_O1fv5DE_B7TlsRGNpNUMrv1bq7MY9gTo8r2zHFdPD/s1600/witchstoneSwifsteelHit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">We'll see this fact crop up again when we try to vary over both Crit% and Hit%.</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Varying over both Crit% and Hit%</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Remember, x is Crit%, y is Hit%</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Witchstone:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioqn-UghftrBQctKFFC2sZMpy-6OyCZfnlUOPgS9dK4DqOKco4VF5EDVjxK_9aTQHQi8zmKjnsdOu3R4_2NgEoeiRb0ccy2aHUi1HQjZ9jurB-wcrqXcqheA30tieBChMxPeEKyRVUpYe6/s1600/WitchstoneHitCrit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioqn-UghftrBQctKFFC2sZMpy-6OyCZfnlUOPgS9dK4DqOKco4VF5EDVjxK_9aTQHQi8zmKjnsdOu3R4_2NgEoeiRb0ccy2aHUi1HQjZ9jurB-wcrqXcqheA30tieBChMxPeEKyRVUpYe6/s1600/WitchstoneHitCrit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Swiftsteel:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMxqt2iXwZgGVQ5gE1TGXgpymIF0pdfcDm_sNflCHpCf1OL7fsWPJSaPaJlw3LQrNN34E62wd9W8gJExXz0lbtrlO2KWboR-hU16QqhViaDWoEC6IRPa2lRIZpou7NoaUywPNLK17dm0AL/s1600/SwiftsteelHitCrit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMxqt2iXwZgGVQ5gE1TGXgpymIF0pdfcDm_sNflCHpCf1OL7fsWPJSaPaJlw3LQrNN34E62wd9W8gJExXz0lbtrlO2KWboR-hU16QqhViaDWoEC6IRPa2lRIZpou7NoaUywPNLK17dm0AL/s1600/SwiftsteelHitCrit.png" /></a></span></div>
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Equating the two:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGJaQX3yLntxTaYq8NLJbdNXR9G6XvN7OQWMSEJwmXXo9WYdMSiEaSaQhgjYrNlgfADVLIp2wdfLVxKfcB7B49xkK7Q1OYrMU1Od-d1m-kwIijYwSzcpNCD1iYI6t_uPQO2y0VasJlfqy-/s1600/WitchstoneSwiftsteelCritHit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGJaQX3yLntxTaYq8NLJbdNXR9G6XvN7OQWMSEJwmXXo9WYdMSiEaSaQhgjYrNlgfADVLIp2wdfLVxKfcB7B49xkK7Q1OYrMU1Od-d1m-kwIijYwSzcpNCD1iYI6t_uPQO2y0VasJlfqy-/s1600/WitchstoneSwiftsteelCritHit.png" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">Almost immediately we notice we can divide the entire equation by y, removing the variable. Basically, Hit% is meaningless to how they scale relatively to each other. Which means that 62.5% Crit% is the magic number where the two become equivalent for a really basic scenario.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>How Reality Completely Breaks My Model</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Of course, Swiftsteel is more interesting than I've allowed for in my modeling. It can actually proc off <i>any</i> attack, meaning that if you use Prowl, you could end up making an extra attack, where the Witchstone build might not get anything except an undispellable Stealth buff. But on the other hand, if you're using Swiftsteel and it procs on a move that has no target, I believe it picks a target at random, so it might be a wash depending on who it targets (unless you only have one target).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">This actually makes Swiftsteel significantly more valuable than that 62.5% Crit% inflection point would have you believe, as a fully skilled up cat on auto-battle will only use it's A1 ability every other round based on cooldown rotation, which if you squint kinda makes it like a 50%ish proc rate instead of 25% proc rate--if we count each A1 usage as a double chance to proc instead, which is a small fallacy but close enough for demonstrable purposes--which would actually make the inflection point 130% Crit%, which is absurd as anything above 100% is wasted (also, good luck hitting that much Crit%). It also doesn't take into account the extra initial damage that each Swiftsteel attack would grant as well, though in the case of the cats, it's usually small enough to be negligible.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But Witchstone has other benefits. For example, Sunslash, the Order cat, has an A3 that Marks all targets for 3 rounds, increasing the amount of damage <i>anybody</i> does to that target by 30%; 50% on a critical strike if you have Witchstone, which means a significant chunk of extra damage overall to potentially the <i>entire</i> enemy party, which makes Witchstone a better bet for Sunslash for overall DPS (assuming you can stick those debuffs). He'll likely have fewer DoTs, but critical DoTs will help make up that difference a little.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">However, the 62.5% Crit% inflection is something to remember if we run into other DoT classes. Enough Crit%, and Witchstone will outstrip Swiftsteel's performance. But at the end of the day, it also comes down to what other abilities your hero is rocking, and what you need that hero for.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But if you're just using Flameclaw/Razormane for Boss Shredding DoT application, Swiftsteel is the way to go. </span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">Theoryc<span style="font-family: "arial" , "helvetica" , sans-serif;">raft</span></span><span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">AllianceHo<span style="font-family: "arial" , "helvetica" , sans-serif;">tS</span></span></span></span></span></span></span><br />
Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-47544385393128964772017-04-12T12:59:00.000-07:002017-04-12T12:59:10.880-07:00[WoW] Invading on a Schedule<span style="font-family: Arial,Helvetica,sans-serif;">7.2 (re)introduced the concept of Legion Invasions, and all-in-all the one that I did was enjoyable enough. A smattering of world quests in phased zones that gives the impression the Legion is legit invading was pretty cool, and the wrap-up scenario felt somewhat like the scenarios back in Mists of Pandaria, which is a huge plus for me.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">However, said Legion Invasions appear once per day, at a pseudo-random time during the day, and only persist for 6 hours. Which for those of us who have a job and who need to sleep is a bit vexing. Ironically, I am too busy <i>making</i> video games to play them much these days. I get to play WoW about two times a week, and half of that is running a raid, so hoping that a Legion invasion is up on the day that I get to play and not raid is frustrating.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLTOrGpPuPLMnX2-_2MyjE8TvWOBPeuBrtei28S0QMS5gZyCO7I3lDJU1KzDTxohWo28M3a8aW-9QIml37ufwhalF1juU_hETaqjr9sTNWW4pio7-eHZQ4nmlmUYm5mgApLdx71YD2UudP/s1600/IMG_0385.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLTOrGpPuPLMnX2-_2MyjE8TvWOBPeuBrtei28S0QMS5gZyCO7I3lDJU1KzDTxohWo28M3a8aW-9QIml37ufwhalF1juU_hETaqjr9sTNWW4pio7-eHZQ4nmlmUYm5mgApLdx71YD2UudP/s320/IMG_0385.PNG" width="180" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">You will not be fighting the Legion today.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Which leads me to the question of scheduled gaming versus random limited-time events. Ostensibly, to make the world feel like a world, things should happen with or without your intervention. MMOs have been doing this to a basic degree since close to the dawn of time with rare spawns, holiday events, and launch events. Time-limited things that you have to be in the right place at the right time to experience.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">World of Warcraft over the past few expansions hasn't really gone beyond the above-mentioned "scheduling", allowing players to largely set their own schedules in game. You can raid when you want to, run dungeons when you want to, run dailies when you want to, and so on. Sure, there's weekly or daily lockouts on a lot of content, but Blizzard doesn't dictate <i>when</i> during the day (or week) you must perform these activities.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Time-Limited Content</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Last expansion, Blizzard introduced Timewalking dungeons. Unlike FFXIV's implementation, Blizzard originally only allowed you to do Timewalking over a single weekend for a given expansion. Folks complained--rightly so, too. Not everyone's "weekend" falls on Saturday/Sunday. Now Blizzard makes these events a whole week long, splitting the difference between gaming on Blizzard's schedule versus gaming on your own.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">In 7.2, we have two major pieces of time-restricted content: Legion Invasions, and Broken Shore Buildings. The buildings are up for 3 days, then get blown to bits until the community rebuilds it (in the same place, no less, because we are not very bright defenders, apparently). 3 days is a bit short still for some schedules, but you're more likely to have at least a little while overlapping in that time period. Compare that to the 6 random contiguous hours every 24, which I've yet to ever have more than 1 overlap with my playtime in two weeks.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Now, the issue around invasions being "required" has largely been mitigated, thanks to the removal of that content from the requirements for flight. It's really just a matter of occasional optional content--extremely lucrative content, mind you--that you may hit or miss. Which isn't unlike many mobile games these days, except mobile games I can load up in less than 30 seconds, tap a few things, and deal with the limited-time content. WoW takes me over 5 minutes to load (including from Order Hall to Dalaran, assuming the game doesn't stall on the loading screen forcing me to restart the process all over again) before I can actually start doing anything, and I have to be at home, and on my computer. It takes significantly more effort for me to go after time-limited content in WoW than in a mobile game.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">On the other hand, if they allowed the Legion invasions to stretch longer (say, 12 hours instead of 6), they'd probably need to make them less lucrative, as more people would be able to do them. Making them time-limited is a method of gating those resources for the vast majority of the population, and one that feels more natural than just saying, "You've already done this today, you are locked out."</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Preferred Playstyle</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I'll fully admit this is probably just me and my preferences, but when I play WoW, I expect largely to play on my schedule, and content that's billed as something you're expected to do semi-regularly but unavailable on my schedule rankles. It makes me feel like despite putting in the same time I was before the patch, I'm falling behind because my game time doesn't line up with rando-events. There's a fuzzy fidelity line somewhere in the "acceptable time limit to do this thing you're expected to do by the designers," that feels like it should be greater than 6 hours, but almost definitely okay in the 1 week time limit range.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">But to be fair to me, WoW over the past 12.5 years has largely allowed us to play on our own schedules for the vast majority of content, so there is an expectation there built into the game that the WoW developers are intentionally breaking. We can't expect them to never try anything new--that would be far too stifling--but if they're going to break convention, they should ensure they're doing so for good reason. For me as a player, as far as I can see as an outsider, it doesn't feel like a good enough reason and made me annoyed (and again, that annoyance has been largely mitigated by the removal of the requirement to do that content).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I feel the buildings are in a strange place, because 3 days feels borderline too short, but at least I can say, "Oh, building is up, I can adjust my schedule to play an hour in 2 days", versus Legion Invasions which might be another 2 weeks before I can play another just because it doesn't line up with my play time. Versus other World Quests which are, <a href="https://us.battle.net/forums/en/wow/topic/20753876528">as Ornyx put it</a>, "largely interchangeable". Missing a couple World Quests is no big deal, because there's always like 30 more available at any given moment.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So overall, while I like the content well enough, I'm really not a fan of the current time gating on Legion Invasions. But I don't like it enough to go out of my way to drop other things in my life and screw up my IRL schedule to go do a Legion Invasion when it is up. </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">WoW</span><span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDesign</span><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-11544134459045388222016-12-12T19:47:00.000-08:002016-12-12T19:47:34.827-08:00[CivVI] Warmongering over the Ages<span style="font-family: Arial,Helvetica,sans-serif;">I've rather enjoyed Civilization VI for the most part. There's a few things here and there that are a little annoying, or just things I have to get used to, but overall I quite like a lot of the more streamlined and changed systems. Districts in particular is fun, because now I'm looking at the terrain and city placement a lot more thinking about the future. Cities become more about planning than they were previously, and even late game you're thinking about it more than just setting a queue of 30 buildings and leaving the city for the rest of the game.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">However, there is something that is distinctly <i>unfun</i>. Specifically, Diplomacy and Warmongering.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Defensive Warmongering</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">In a recent game, America (AI)--my formally declared best friend--started a Surprise War on me in 3000 BC. By 2000 BC I had wiped America off the face of the planet because I mean, really, if I didn't they were just going to backstab me again and again. Now, I turned down them suing for peace because well, backstabbers, so I got a huge warmongering penalty because captured cities/capital. Meh.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Everybody denounced me (or course), and I checked my diplomacy values. I had netted -112 to my reputation due to Warmongering! For a war that America started and I finished. Now the thing to keep in mind is that's not a static value. Those numbers? They represent how far your relationship meter moves <i>per turn</i>. So I was getting +3 per turn because we had open borders, and -112 per turn due to Warmongering.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicToYUiDlLLnwMWENrX22V32cIfodlidDdTcUOx4kYD0jC-MNhV_JwI26Oda3J-RFY9TRFiOaEM25R4OuQIMjpFW31sctDJ_HnlLtJwqflyfFqac8eTpGrfcpq7UT-41KbzWcqqG9RSS8W/s1600/kongo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicToYUiDlLLnwMWENrX22V32cIfodlidDdTcUOx4kYD0jC-MNhV_JwI26Oda3J-RFY9TRFiOaEM25R4OuQIMjpFW31sctDJ_HnlLtJwqflyfFqac8eTpGrfcpq7UT-41KbzWcqqG9RSS8W/s320/kongo.png" width="216" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">-74 basically outweighs everything else ever for the rest of time. </span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">All right, everyone hates me, great. Even worse, though, is the fact that number basically compounds over time because it's a per turn value. And that negative tapers off <i>really</i> slowly, regardless of time scale. What this means is that 3500 years later, my civilization still had a -74 Warmongering penalty to all civs, meaning any attempts at diplomacy were useless for the rest of the game. I still got denounced like clockwork every time their previous denunciations expired.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Yeah, okay, wiping somebody else out? That deserves some serious shrift from the other civs. Absolutely. But 3500 years and that's only halfway decayed? I mean, you look at a modern day example, Germany and World War II. They've basically managed to remove a real-world "warmongering" penalty in 80 years--so in Civ terms, given the time period, 80 turns, which in ancient times is 1600 years equivalent, so it's not even "realistic", let alone fun.</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>The Solution</b></span></span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Basically, the issue at hand is the <b>warmongering penalty needs to decay based on time passed, not turns passed</b>. A war in 2000 BC should have nearly 0 effect on diplomacy in 1500 AD. The Civ team tried to mimic that by reducing warmongering penalties in early history, but that's insufficient in my opinion.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">It's also extremely unfun to be attacked and punished for defending myself. Yes, I could've just defended my territory and left America alone, but the issue is that I know the AI is just going to break their promises (again) and declare a surprise war (again) later. If I didn't nip them in the bud, I'd be in for a very rough game. So basically, I'm being punished by the AI for playing their game.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">If this is some sort of punishment to get around the fact that the AI is <i>very</i> bad at waging war, so therefore they can't put up a decent fight, so therefore limit the player in some other fashion, well, I dislike it greatly. If it's just a way to get AIs to treat war more seriously, I still think it's extremely lopsided in favour of just shutting down diplomacy in general. Not having diplomacy as an option for 3500 years of game time is, frankly, silly.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">I think my proposed tweak would be sufficient to make warmongering something people will still have to weigh--even if they keep the penalties skyhigh, it would take centuries to rebuild them from rock bottom--but this would still allow early wars to be devastating and history-altering without the silliness that is effectively infinite memory. </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDesign</span><span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">CivVI</span><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com1tag:blogger.com,1999:blog-2814591084344141656.post-38613908517219388512016-12-02T09:00:00.000-08:002016-12-02T09:00:15.955-08:00Innocence and Game Development<span style="font-family: "arial" , "helvetica" , sans-serif;">Last weekend I was up in Vancouver hanging with some of my friends and coworkers. Some of these friends I've known literally since high school, and some of us work tightly together to create a game that we're all very passionate about. It's really awesome that I get to hang out with these folks, and I love 'em all to bits. We got together one evening after I had finished (successfully) apartment hunting, and out came the Jackbox Party Pack 3, and specifically, a game called <i>Fakin' It</i>.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The premise of <i>Fakin' It</i> is quite interesting. The game will send questions to everyone's phones, and depending on the type of game, at the buzzer everyone puts up either a number of fingers, raises their hand (or not), or points to another player. For example, a question we got was "How many times did you shower in the past week?" When the buzzer rang, everyone threw up as many fingers as showers they had.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The trick comes in that one player didn't get the question: the faker just got told to try to fit in. Then everyone votes and asks questions to try to figure out as a group which player is the faker. If the group guesses correctly, then the group gets points, otherwise if the faker escapes they get points.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span style="font-size: large;">Fun and Games Until Someone Loses...</span></b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">It was all fun and games until suddenly the question, "Have you ever donated blood?" came up. Now, many of you are probably thinking, that's a pretty innocent question. Most people donate blood unless they can't for some reason. And there's the rub.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">You see, in North America, gay/bisexual men cannot donate blood. Specifically, men who've had intercourse with another male in the past year--it used to be since 1977, but was recently relaxed. Also included <a href="http://www.redcrossblood.org/donating-blood/eligibility-requirements/eligibility-criteria-alphabetical-listing">on the list</a> are intravenous drug use, being HIV positive, or if you've recently gotten a tattoo, for example.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So I'm expected to justify my lowered hand or be outed as the faker (I wasn't, for the record). I could've lied about it, but I'm a terrible liar. Now, for me, the justification was pretty easy: I've been out for nearly 15 years, and the group all knew I was gay. So having another opportunity to complain that my dirty, gay blood wasn't allowed to be donated wasn't that bad. But there was a moment when everyone was looking at me with suspicion because I was an odd person out, thinking, why is his hand down, he must be the faker because <i>most people donate blood. </i>The only people accused in that round were folks with their hands down.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Suddenly the video game variant of "Never have I ever" became <i>very</i> political, regardless of whether we wanted it to be or not. I doubt the developer who added the question to the pile thought about any of that. I mean, many tech companies have the blood bus roll up outside every once in a while and everyone goes down to donate as groups, gathering people up and giving you questioning looks when you say, "I can't." I've been in that precise situation before. But for many, donating blood is an innocent, unquestionably morally good task.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">That innocence--likely borne of the privilege of not being in one of the banned groups--allowed the question to slip through the QA and turned our game just a little awkward.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Consequence</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">For me, that question wasn't the end of the world. I had my discomfort. My friends got a little uncomfortable because I had to remind them that yes, gay and bisexual men cannot donate blood. We moved on and the rest of the game was a blast. But the incident--this story--was a good reminder to me that what some people perceive as innocent can sometimes be pernicious, and that even simple video games can be political without the game developers realizing it.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">My friends will read this and probably be super apologetic--they'd be really upset that they may have hurt me in any way, because they're awesome, empathetic people. To them I'd say don't worry too much about it aside from just using the opportunity to reflect. This is a prime example of privilege making someone blind to another's experiences. Privilege isn't evil and it doesn't make you a bad person. It's just a lens from which we experience our world.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Heck, I make goofs about women from time to time because I'm not a woman and don't have the insight of living as a woman day to day. </span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">In a prior age, I
think we'd categorize privilege as "innocence". Innocent of how the
wider world works and ignorant of the painful experiences of others. </span>The important part of recognizing it is expanding one's empathy to others' situations. Learn and move forward.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">For the game developers, I know as a game dev myself I'd be horrified if my game hurt someone. I don't think anyone threw in the question to deliberately make anyone feel bad about themselves.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">But when people try to tell me that video games are (or should be!) apolitical, my first reaction is to laugh at them. Even the most minor of decisions and scenarios have identity and circumstances tied to them. From deciding if your femme fatale should be wearing pumps or flats, to how beefy your male hero should be, to how rich is the neighbourhood your GTA character is running around in and the behaviours of various NPCs in said neighbourhood, to asking how often someone showers or donates blood; everything is a comment or consequence of the--sometimes very different--worlds we live in and the lenses in which we view those worlds.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Nobody really can be cognizant of every permutation of those worlds and lenses, and I'm not even necessarily sayi<span style="font-family: "arial" , "helvetica" , sans-serif;">ng <span style="font-family: "arial" , "helvetica" , sans-serif;">don't</span> put certain things in games. I'm just saying that every decision about content and mechanics has consequences and <span style="font-family: "arial" , "helvetica" , sans-serif;">should be deliberate</span></span>. <span style="font-family: "arial" , "helvetica" , sans-serif;">But also,</span> by incorporating more people from different viewpoints into our craft and becoming more aware ourselves, we can include those points of view into our games and make them more varied, strong, interesting, and empathetic. </span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDesign</span><span style="font-family: "arial" , "helvetica" , sans-serif;">, #<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDev, #IndieDev</span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-86950506498962728342016-11-24T14:06:00.000-08:002016-11-24T15:03:07.251-08:00[WoW] When is an Upgrade not an Upgrade?<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="http://blessingofkings.blogspot.com/2016/11/personal-loot-is-corrupted-system.html">Rohan at Blessing of Kings</a> had a good post recently on what happens when you start piling on extra rules onto a system until they start contradicting each other. In his example, the personal loot system--which was introduced to reduce social friction--got subverted by adding trading if you don't need the item anymore, as addons can be used to call others out to hand over their loot to folks who could use the upgrade.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">A different example in WoW is the Protection Paladin's <a href="http://www.wowhead.com/spell=31935">Avenger's Shield</a> ability. The base variant of the spell is a multi-target holy damage that chains up to 3 enemies, and interrupts any spellcasts of the initial target. Now, the thing that's not mentioned in the tooltip is that this jump is a "smart" targeting system: it won't target enemies that have been CC'd at the time you cast the ability, which makes it an extremely effective AoE pulling tool for the Paladin.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br />In the Paladin's artifact weapon, one of the gold traits--<a href="http://www.wowhead.com/spell=209474">Tyr's Enforcer</a>--upgrades the power such that it explodes for damage within 5 yards upon every impact. This is a pretty awesome upgrade in a lot of cases, like extra DPS or snap threat on large groups. But it also suddenly makes Avenger's Shield useless for AoE pulling if you have to use CC. Like on Moroes in Karazahn.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The explosions work at cross purposes with the smart nature of the base ability, and for Moroes specifically I spent a lot of the fight cursing the upgrade because it also is my ranged interrupt. So in the Moroes fight I can't use it as an AoE pull and I can't use it as my ranged interrupt, because if I do, the explosions on impact will clear the CC on the other enemies. Basically, the upgrade rendered the original purposes of my ability moot, and turned it into primarily a DPS ability.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">This is an example of adding <a href="http://talarian.blogspot.com/2014/04/complexity-and-depth-or-why-wow-devs.html">complexity eventually reducing the situations that a tactic is useful</a> in. Enough rules on the ability, and it makes it such that it's not really an upgrade anymore, but something that just alters the ability entirely, which suddenly makes me want to either have the ability to turn that upgrade on or off, or just be an entirely different ability, since the "upgrade" removed one of my tanking tools.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Then to add insult to injury, it's not smart enough to jump to enemies hit by my Blinding Light since that CC isn't affected by Holy damage, but that's a separate issue.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">In Eon Altar, we actually had a slightly different scenario. In one case, an upgrade to an ability increased the range of the damage of the ability, both the minimum and the maximum. For an example, Rank 1 did 14 - 16 damage. Rank 2 did 13 - 18 damage. While the average damage went up, because many enemies at low levels had 14 health, the upgrade actually created situations where you'd sometimes not one-shot those enemies. So it became optimal to wait until you had enough resources to skip directly to Rank 3. To fix it, we just didn't decrease the lower bound, and that made the issue go away entirely.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Which is to say that when an upgrade isn't an actual upgrade and makes the ability worse in some situations, it feels bad as a player. If I, as a player, am performing what should be a direct upgrade--one that I don't really have a choice on, it's literally just direct progression--it should actually be an upgrade, or it should be obvious it's radically altering my ability. But losing tools feels bad, man. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">WoW</span>,<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> <span style="font-family: "arial" , "helvetica" , sans-serif;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDesign</span><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com2tag:blogger.com,1999:blog-2814591084344141656.post-23163241183734304812016-10-24T15:01:00.001-07:002016-10-24T15:01:33.962-07:00PAX DEV 2016 Talk: Mobile Enhanced--Designing for Multiple Simultaneous Screens<span style="font-family: Arial,Helvetica,sans-serif;">So I've been away from my blog for a while. We've been super busy with Eon Altar, including PAX West, shipping Episode 2, and I gave a talk at PAX DEV, which was super awesome (and well received).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">So while I am still crazy busy (Episode 3's gotta get made!), I'm dropping by to let folks know hey, I have a legit game design talk that I wrote/hosted.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div align="center">
<span style="font-family: Arial,Helvetica,sans-serif;"><iframe allowfullscreen="" frameborder="0" height="225" src="https://www.youtube.com/embed/8Hc1CnRx98s" width="400"></iframe></span></div>
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Sorry about the sound quality. I had recorded this with the thanks of OutOfBeta using my Lumia 1020 in a LEGO setup and it didn't pick the sound up super well :( So you'll have to crank the volume.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_rp2SUgPxjKTNbryMuOPbJke0oPCmj2AFEPrv_dVZFGApB1fKO_H7y1G-DvoSPF4HfQzXHGq-Xeh_KvozO7KEc9rYvDsTkIlYyue1cbVlYVcpgo3ay-oOh1p7FqjlMOQDguiLXRAJAPsr/s1600/CrNwib1UMAAHkV-.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_rp2SUgPxjKTNbryMuOPbJke0oPCmj2AFEPrv_dVZFGApB1fKO_H7y1G-DvoSPF4HfQzXHGq-Xeh_KvozO7KEc9rYvDsTkIlYyue1cbVlYVcpgo3ay-oOh1p7FqjlMOQDguiLXRAJAPsr/s320/CrNwib1UMAAHkV-.jpg" width="240" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">High Tech Recording Setup</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev, #EonAlta<span style="font-family: "arial" , "helvetica" , sans-serif;">r</span> </span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-46520993974673773202016-08-25T23:09:00.000-07:002016-08-25T23:09:47.169-07:00[IndieDev] The Aftermath of Launching Our Game<span style="font-family: Arial,Helvetica,sans-serif;">Okay, so it's been like 2 months since I've done a blog post, and it's not for the lack of wanting so much as the lack of time. But let's talk about the launch of Eon Altar, and where we're at today.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Launch and Beyond</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Launch itself went relatively smoothly, if a little disappointingly quietly.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Only one major game breaking bug at launch that I had to hunt down, which actually only repro'd on specific devices on Android 4.4. It was bizarre to say the least, and I ended up buying two phones via Craigslist, and our Studio Manager drove down from Vancouver, BC to Seattle, WA to get a device that could repro the issue into my hands. It would've cost $300 to ship, apparently, so he and his fiancé made a day trip out of it. But I managed to use that to get a fix within 2 days of the bug being reported, so our customers really appreciated the responsiveness especially since the fix got pushed out on a Sunday evening. Instead of going to Seattle Pride I got to stay in and debug. Fun times, that. But such is the life of a developer.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8fB7GDsZT2b6VCr8E3UQui9tOT_ZC6AH18hXsg504up8Rl23rIwlT33Pba26cRL4EF9kb_GRVVsAtDT_MvrN9woZpZ1rpS-iivlk1F1PCbkqdYwwPv7WRJc4lycQSW6Erz9Q2rx6gHdRQ/s1600/CllDMY9UsAA7t4L.jpg+large.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8fB7GDsZT2b6VCr8E3UQui9tOT_ZC6AH18hXsg504up8Rl23rIwlT33Pba26cRL4EF9kb_GRVVsAtDT_MvrN9woZpZ1rpS-iivlk1F1PCbkqdYwwPv7WRJc4lycQSW6Erz9Q2rx6gHdRQ/s320/CllDMY9UsAA7t4L.jpg+large.jpg" width="252" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">We were in the Top Sellers for Newly Released Games on Steam for over a week, though, and even made #1 in the Popular New Releases for a brief period of time, which was pretty cool. Sadly we haven't been able to keep that many eyeballs on the game since, which is a little worrying. However, hopefully with PAX West upcoming we'll be able to remedy that a bit!</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirPEWRdlK2X8YC8Nk40GmrqdMFfC_UCFEv5J5uQYxRABFpLyf-A_N5t3q6izxcoapswNxnjtEJj4ypoOKU7vCuZFfSmquofh6-Oj5FrayYTpg8n1N3LH3CR6EZwu7YrfWuS3EAzJGHKYcd/s1600/200.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirPEWRdlK2X8YC8Nk40GmrqdMFfC_UCFEv5J5uQYxRABFpLyf-A_N5t3q6izxcoapswNxnjtEJj4ypoOKU7vCuZFfSmquofh6-Oj5FrayYTpg8n1N3LH3CR6EZwu7YrfWuS3EAzJGHKYcd/s320/200.png" width="254" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Taken August 23rd, 2016</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">The game itself has been absolutely gangbusters as far as Steam reviews go. We're at 92% lifetime, and 95% recent. At one point we were at 100% recent, but someone left a negative review because our game won't work on a publicly-run network that blocks UDP and P2P network traffic, which I mean, yeah, that sucks and is true, but feels bad that there's pretty close to nothing I can do about it. That said, given at launch we started at 88% lifetime from Early Access, our review score going <i>up</i> is frankly massive success as far as I'm concerned.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Post-Launch Development and Marketing</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">We've managed to put out an update at least once a month since a few months before launch, and even the past couple months as well post-launch, which is great for players. Content fixes and bug squashing continue apace!</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div align="center">
<span style="font-family: Arial,Helvetica,sans-serif;"><iframe allowfullscreen="" frameborder="0" height="225" src="https://www.youtube.com/embed/zuL6KJofHUs" width="400"></iframe></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">But even more, we've been extremely hard at work on Episode 2: Whispers in the Catacombs. Our teaser trailer for that launched just a few hours ago, which you can see above. We're hard at work on a new Combat Arena of sorts for Episode 2, which is less an arena and more just a standalone scenario that takes shades of the Arkham Horror board game mechanically. We've done plenty of <a href="https://www.twitch.tv/flyinghelmetgames">streaming every Thursday at 1 PM PST</a> showing off us in active development, including design work, programming, and testing. And of course, can't forget the next part of the campaign, either!</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Add to that what we call "dev confessionals", which is basically a micro-vlog of sorts where we talk about what we did that week and what we're excited about. These have proven moderately popular, though we missed last week's because PAX madness upcoming.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div align="center">
<span style="font-family: Arial,Helvetica,sans-serif;"><iframe allowfullscreen="" frameborder="0" height="225" src="https://www.youtube.com/embed/OKy9jwjgHkg" width="400"></iframe></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>PAX West 2016</b></span></span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Speaking of PAX, once again we'll have a booth, and it's going to be our biggest booth yet. This is it, we've launched, we're well on our way to delivering our first piece of DLC, so we'll have lots to show (including a working Combat Arena from Episode 2!), and lots of folks at the booth to show off the game and answer questions (and give out sweet buttons). If you're going to PAX West this year, check us out on the 6th floor of the Expo Hall, booth 6909.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I'll be doing a panel at PAX Dev as well: "Mobile Enhanced: Designing for Multiple Simultaneous Screens". The talk is basically what it says on the tin, but I'm super excited. Our Lead Designer/Art guy also made me a cool social media poster, so come check that out if you're interested. I'm hoping to have it recorded, but logistics have eluded me so far.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ94P_pDEi5I_wIvQbb4bxEkBOEd7bu_jT5CEa9dLVYHJ6DgOJFXozvz82hqwhnLpeK2DblsvCdNfqXIgmp5zzxbPBv0XcUlMkEDnRnBW3E2IZtyuL4STAxMjeMeVsj3XWX3IcM7mulTE/s1600/PAXDev_Joey_social.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ94P_pDEi5I_wIvQbb4bxEkBOEd7bu_jT5CEa9dLVYHJ6DgOJFXozvz82hqwhnLpeK2DblsvCdNfqXIgmp5zzxbPBv0XcUlMkEDnRnBW3E2IZtyuL4STAxMjeMeVsj3XWX3IcM7mulTE/s320/PAXDev_Joey_social.jpg" width="263" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">We'll also have some folks on another panel during the convention proper, "AAA to Indie; The Struggle is Real" which will be pretty awesome. Sadly I'll be at the booth so I won't get to watch it, but it should be great, so check that out too!</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj9MzL5CvsL9J8TWLqCrgXY6omaL30aits2eZlzjwPkj4n6K6-tdMzOU4edXoH2kjXbvfVTikBfg-DVKo-QEEfWKc2cc1BEE2bnhnp9UEf1vmi6lu53kgL3N0mtOcWGq61Vujx8aFy3igh/s1600/PAXPanel_finalSocial.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj9MzL5CvsL9J8TWLqCrgXY6omaL30aits2eZlzjwPkj4n6K6-tdMzOU4edXoH2kjXbvfVTikBfg-DVKo-QEEfWKc2cc1BEE2bnhnp9UEf1vmi6lu53kgL3N0mtOcWGq61Vujx8aFy3igh/s320/PAXPanel_finalSocial.jpg" width="302" /></a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Full Steam Ahead</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Last year PAX West was absolutely exhausting, and frankly, I expect this one will be as well. We're going to miss the boat on an August update to the live game because PAX and marketing is pretty much all-encompassing as far as developer time goes right now. The perils of a tiny team, unfortunately.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Immediately after we're back to the grindstone to get Episode 2 done and dusted and out the door, so no rest for the wicked. I'll fully admit I'm going to need a vacation, and probably soon. My blogging will likely also continue to take a backseat until I have a few more hours in the day to myself. We're definitely crunching, and crunching hard, but there's little we can do about that. We don't have infinite money to take the extra time we'd like.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">But at the same time, I'm extremely excited that we're doing as well as we are, and I can only hope that we get the eyeballs we need so we can continue doing this post Season 1, because I think we have something pretty amazing here, and based on our reviews, the folks who've played it think so too. </span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev, #EonAlta<span style="font-family: "arial" , "helvetica" , sans-serif;">r</span> </span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-22460706143075408202016-07-06T23:28:00.001-07:002016-07-06T23:28:29.899-07:005 Beginner Pokémon GO Tips<span style="font-family: Arial,Helvetica,sans-serif;">Okay, so you're playing Pokémon GO, and the game just throws you into the deep end of the pool with almost no explanations, and the UI is basically a whole lot of symbols that could mean just about anything. What do?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I've played about 4 hours of the game today now that it's out in the US, and here's some info I've gleaned from playing that isn't obvious. At all. But should help folks get started.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-size: large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">1. Random Encounters are Based on Trainer Level</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Like actual Pokémon games, to find an encounter you'll want to go searching for those blasts of leaves and grass, but note that if the Pokémon is too high level for you, nothing will appear. At Trainer Level 1, you're pretty much relegated to Pidgey and Rattata, and there's not actually that many out there. At least, not in Downtown Seattle. You'll more likely get to Level 3ish using mostly Pokéstops if you're in a dense urban core. The higher your Trainer level, the more varieties of Pokémon you will encounter.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">If you see a Pokémon on your screen, get it inside your trainer's circle, and then tap it to engage. </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-size: large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">2. Capture By Flicking Your Pokéball</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Once in "combat", you actually capture the Pokémon by pressing the Pokéball at the bottom of the screen and flicking it towards the critter. I've found lining the creature up near the bottom of your screen helps with the capture. It's hard to judge because there's no real angle you can view to get a good notion of depth.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">When you press and hold the pokéball, you'll see a coloured circle that slowly shrinks. The colour indicates the difficulty of the capture--green is easy, yellow is mid-level, red is difficult. Godspeed to those who are red/green colourblind. If you time your capture for when the circle is at its largest, you seem to get a "Nice!" capture bonus more often.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU2BAfUYEYsVYKQxM6v9baXJT6tfgpzU1Qdl_HhUKM50SlHVN7x3hJESLYBKAlP3S_mxMlTg2dIh_KHG4DNEbgan8wSWSRoUK5N5y0Ni4JeuwkzdRVujil63WvX4JnjhkyF2MjIxjQylFt/s1600/IMG_0434.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU2BAfUYEYsVYKQxM6v9baXJT6tfgpzU1Qdl_HhUKM50SlHVN7x3hJESLYBKAlP3S_mxMlTg2dIh_KHG4DNEbgan8wSWSRoUK5N5y0Ni4JeuwkzdRVujil63WvX4JnjhkyF2MjIxjQylFt/s320/IMG_0434.PNG" width="240" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Zubat in my room, the green concentric circle shrinks then reappears. Time your throw to start when the circle is at its largest</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-size: large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">3. Pokéstops Give You Stuff</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Pokéstops, like portals in Ingress, are generally based on popular locations or pieces of art. A fancy manhole cover; a local park bench with a plaque; a church bell. Those sorts of things. They tend to be dense in urban areas, and apparently suburban areas they're few and far between, leaving you with few options except to purchase pokéballs and other items with cold hard cash.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">For the uninitiated, Pokéstops look like blue squares from afar, and when you're close enough to interact with one, it unfurls into a pokéball shape.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLQUIWsTz6WGxX845uHnK7ZqFgb2aqo4y2kH_rMeMpUu-UXf9r7qDlTb-UDUoC3N31FpKyfjhx86MozyVqpgZHxIuKJMBQQ8HFf3Jn1PvBLrljGnImAFxTpskVhKPdZSMGV8eEyZKpKNpC/s1600/pokestops.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLQUIWsTz6WGxX845uHnK7ZqFgb2aqo4y2kH_rMeMpUu-UXf9r7qDlTb-UDUoC3N31FpKyfjhx86MozyVqpgZHxIuKJMBQQ8HFf3Jn1PvBLrljGnImAFxTpskVhKPdZSMGV8eEyZKpKNpC/s320/pokestops.jpg" width="240" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Blue squares are Pokéstops. The circle to the lower right if my character is a Pokéstop I can interact with.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-size: large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">4. Capture Everything</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Even if you already have a specific Pokémon, capturing more will net you more Trainer XP, more Stardust (for upgrading Pokémon), and more Candies (for upgrading and for evolving). If you have like 30 Zubat, keep the highest CP (Combat Point) version, and then Transfer (using the button at the very bottom of the Pokémon's status screen) the rest to Professor Willow. You'll get an extra Candy for each one you transfer.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-size: large;"><b><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></b></span>
<span style="font-size: large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">5. Pokémon Availability is Location and Time of Day</span></b></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The inner core of Seattle seems to have a lot of Poison types. Down by the beach/park on the piers I found more variety, including grass, fire, and flying types. Zubat started appearing after 7PM local time, and I didn't see a Ghastly until about 10 PM local time.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Basically, Pokémon have similar "habits" to real life animals in terms of when and where they are active.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2dhHLjR3VkI7KhIiXu_pZ12o6SX8q82hhv3GdItTQnMbwbDjFeiDVG3CI2UkJI81rL5Ruwqe2vuqHs-VkQZnaPA7qf688Qibf3eY69P-0RVq2WAjWjyzFP2fQ0U_SA0va1iAq8yfamMPF/s1600/taconidoran.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2dhHLjR3VkI7KhIiXu_pZ12o6SX8q82hhv3GdItTQnMbwbDjFeiDVG3CI2UkJI81rL5Ruwqe2vuqHs-VkQZnaPA7qf688Qibf3eY69P-0RVq2WAjWjyzFP2fQ0U_SA0va1iAq8yfamMPF/s320/taconidoran.jpg" width="240" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">This Nidoran really wanted some Taco Bell.</span></td></tr>
</tbody></table>
<br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">PokemonGO</span><span style="font-family: "arial" , "helvetica" , sans-serif;"></span> </span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com1tag:blogger.com,1999:blog-2814591084344141656.post-51815583078339135322016-06-14T00:25:00.001-07:002016-06-14T00:28:54.839-07:00[IndieDev] My Game Eon Altar Gets a Release Date!<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8A9rbv8zWlVfPuqkzZGGYhokQDt3wnqtboiS2lnQlQb2dPc25-sxyb8sGmZjHVLTotisLj671sNBXkafaXeh69jltNZptaLlXOn9jaJNco9bK1JVrISlU-Dmw2zaXMPH6HGbIjFKeCMtj/s1600/34547d03b6273900f5166fdb2dca854d4587f497.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8A9rbv8zWlVfPuqkzZGGYhokQDt3wnqtboiS2lnQlQb2dPc25-sxyb8sGmZjHVLTotisLj671sNBXkafaXeh69jltNZptaLlXOn9jaJNco9bK1JVrISlU-Dmw2zaXMPH6HGbIjFKeCMtj/s320/34547d03b6273900f5166fdb2dca854d4587f497.jpg" width="320" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So for folks who've been following my blog, I've been doing the indie dev thing for nearly 2 years now--will be 2 years as of July 1st. Eon Altar has been my baby, and what a baby it's been! But eventually children leave the nest, and we'll be pushing Eon Altar into the light, blinking and disoriented, Thursday, June 23rd.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Our announcement is <a href="http://steamcommunity.com/games/382050/announcements/detail/813278488676118481">here</a>, but I wanted to talk a little about our decision making process on my blog. Some behind the scenes, if you will.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Early Access</b></span></span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">First of all, let's chat Early Access. We've been in Early Access since August 29th, 2015. Just under 10 months. That's a decent chunk of time, but we've also had to contend with folks having other full time jobs, contract work, and losing some employees because indie and keeping the lights on is hard.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">But that being said, I think slowing down a bit and getting a lot of feedback and bake time has been amazing for the game. We were nowhere near ready for release on our original launch trajectory, which would've been around May of 2015. We needed that extra year. Turns out making an RPG is hard! Who knew?</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">But our Early Access response has been amazing. Not as many folks as we may have hoped, but the folks who helped us out were absolutely fantastic, going the extra mile to help us narrow down bug repros, get us logs, and be patient with some of our quirks and issues. Being candid about the state of the game, what's working, and what wasn't also helped. Without their feedback, our game would be in a much worse state today.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Which led to the discussion of somehow rewarding our Early Access customers. Luke--our financial dude/lore guy/streamer/tester/other things because I'm bad at titles and indie is a lot of hats--had this really cool idea. We ran with it, of course.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhumhJq-juFJqt2lNI-kFrKEFcFXZ6ZppCufSLyU_4-5V6W90n2lOBS_8PHEiX8GOqvwM7AfbZ52iA5VOn4qElGE1k5ll5u3c7ToJxC8lLxqQF0t1k3t37PYvGenAFgZVbW3Suq5Q7eb5Hl/s1600/IMG_3522.GIF" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhumhJq-juFJqt2lNI-kFrKEFcFXZ6ZppCufSLyU_4-5V6W90n2lOBS_8PHEiX8GOqvwM7AfbZ52iA5VOn4qElGE1k5ll5u3c7ToJxC8lLxqQF0t1k3t37PYvGenAFgZVbW3Suq5Q7eb5Hl/s1600/IMG_3522.GIF" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Intense Tactical Discussion</span></td></tr>
</tbody></table>
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Pricing</b></span></span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Early Access was priced extremely cheap because for us, getting our name and game out there was more important at the time than trying to wring dollars out of our (relatively few) customers. $4.99 USD is a steal for what we delivered in Early Access--Combat Arena plus about 4 hours of quality co-op RPG game play. We've had a number of reviews mention price seemed really low for what we delivered.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But for our Early Access customers we decided that we'd give them the entirety of Season 1 (Episodes 1-3) for their $4.99 USD they already gave us. It was a great way to reward them for helping us and supporting us. Folks who come in to buy Season 1 now will pay $14.99 USD (or $6.99 USD per episode if you want piecemeal).</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Still damn cheap given the entirety of Season 1 runs about 12 - 15 hours of game play, plus Combat Arenas which are technically endless (a massive hit at Dreamhack and PAX East), and you can play with up to 4 players at the same time on a single copy. But we're also an unknown company, so we're cognizant that if we price ourselves too high, people won't want to take the risk. On the other hand, if we don't make money soon, continuing development becomes an issue.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span style="font-size: large;">Quality</span></b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">We're polished enough that I'm confident in our game, even if we have a few issues remaining. Pro-tip, you'll never actually hit zero bugs in software development. Ever. Seriously.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I had 120 bugs on my plate as of two months ago, half of those blockers or criticals (versus major or minor). I've bounced between 30 and 45 I think six times now over the past three weeks? Mind you, I'm down to a total of 8 criticals and 0 blockers, so the quality is still going up; many of the bugs being logged now are major at worst, which for our definitions is not great, but shippable.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">My point being is we could be here <i>forever</i> fixing bugs. Perfection is unattainable, despite the fact that I really, really, really, really want it to be perfect. Like the child analogy earlier, eventually you need to let them out into the daylight and hope you gave them the skills and qualities to survive and thrive.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">That's not to say we won't continue releasing fixes and patches. The reality of software development--especially games--is that you're never really done. Look at Stardew Valley, continuing to make major additions and fixes after ship. But the base game is awesome and still totally worth the $15 I paid for it. But again, need to eat and keep the lights on, and our build is in fact very stable, so to release we go.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<div align="center">
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
I finally get a <a href="https://twitter.com/hashtag/BlameTalarian?src=hash">#BlameTalarian</a> hastag. I'm a real dev now.<a href="https://t.co/5HQKgo6uj7">https://t.co/5HQKgo6uj7</a></div>
— Talarian (@Talarianjs) <a href="https://twitter.com/Talarianjs/status/742575576674750465">June 14, 2016</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Timing</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">A few months back we pegged June 1st, 2016 as our release date. Thankfully we were bright enough (this time) not to promise anything too early, so when we realized we had a few more things to do, and timing-wise it was kind of crappy, so we could push the date. E3 of course is a huge blackout period. Other timings I can't discuss also nudged the date here or there, until we settled on June 23rd. Unfortunately, it's Luke's anniversary with his fiancé, but turns out our tertiary date would've been his birthday, so he couldn't win either way.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Summer in general also keeps us out of harm's way of major blockbusters, at the risk of yeah, it's summer. But being a local co-op game, maybe being summer will work for us as people want to hang out? I'm not so certain of my reasoning there.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Ideally we'll have Episode 2 out soonish after. I won't commit to a timing,but I will say if it's like 6 months after Episode 1, I will be an extremely sad panda.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b><br /></b></span></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Excitement and Terror</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I am beyond excited for our release. Eon Altar has been my life basically for 2 years. My dream job of making a game, an RPG, and making a game that plays like no other video game that exists today. We're pushing game<span style="font-family: "arial" , "helvetica" , sans-serif;"> play, </span>UI, and form factor boundaries that very few developers have even tried, let alone shipped.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">And yeah, I've had my doubts along the way; I've had total imposter syndrome moments. Other times I've had moments where I'm like, "this is crazy, it'll never fly." But watching people play our game on Twitch, on YouTube, at PAX, Dreamhack, Casual Connect, and even in person at play tests in my apartment, I know, empirically, that we have something unique and awesome.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I'm also terrified. What if we hit it big and something horrible happens and things break? What if we never get the eyeballs we need and we fade into obscurity--which, to be brutally honest, is the more likely of the two scenarios because marketing budget and indie dev. What if, despite all evidence so far to the contrary, people just don't get it? What if people don't read my troubleshooting instructions and I just drown in debugging people's networks over forum post?</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Putting the game out there to be judged on its own merits as a shipped product is a lot of pressure. And when I look at it from an analytical perspective, I'm confident we're ready for this. But that visceral, emotional reaction is still there.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">9 days.</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev, #EonAlta<span style="font-family: "arial" , "helvetica" , sans-serif;">r</span> </span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com4tag:blogger.com,1999:blog-2814591084344141656.post-30392263455745135142016-05-27T07:59:00.000-07:002016-05-27T07:59:44.271-07:00[IndieDev] Eon Altar's Combat Loop and Power Designs<span style="font-family: Arial,Helvetica,sans-serif;">Welcome to Part 2 of my posts on Eon Altar's combat design. You can find <a href="http://talarian.blogspot.com/2016/05/indiedev-eon-altars-team-turn-based.html">Part 1 here</a>. Today I'll be talking about the myriad combat loops that we've built into the game and talk about the designs that support each.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Eon Altar has what I would call about 3.5 different combat loops. 3.5 is a strange number, and you'll see why I sort of call out two combat loops that are really a single loop, but when watching players, there's a distinct progression in terms of thoughts and planning. The loops would be classified as follows:</span><br />
<ol>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Your Turn--Look for a target, use a power, wait for your next turn.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Your Turn and Enemies' Turn--Use powers that position you to an advantage for or alter your opponents' turn.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Multiple Turns--Plan your energy, fortitude, cooldowns, and gear usage over multiple turns. Planning multiple character combos (or even self-combos) can fall under here as well.</span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;">Multiple Combats--Plan your progression and gear crafting/choices over multiple combats.</span></li>
</ol>
<span style="font-family: Arial,Helvetica,sans-serif;">1 and 2 are pretty well a single loop (given combat is alternating turns), but there's a definite skill difference between players who understand loop 1, and players who understand loop 2. It's not a huge jump mind, but a discrete one.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Last time we talked a lot about loop 1, and hinted at loop 2 with talk about positioning. I'll break down some specifics about each system supporting the loops as we designed them, and how each evolved over the course of development.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Contextual Powers</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAmLm1QZDpAy_jwgUmSIJhypuHtLbEAmJtYcJUeLJbIlojv5H6uOyq4c95X8JdrvrL0HTsLAf_r2mLAfcn3K5ZAHrVic2IksmXko1f0tmsEvDMtf04HmABEH9vl_5ow3x4qNjIUaBBCbdS/s1600/CoreInteractionLoop.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAmLm1QZDpAy_jwgUmSIJhypuHtLbEAmJtYcJUeLJbIlojv5H6uOyq4c95X8JdrvrL0HTsLAf_r2mLAfcn3K5ZAHrVic2IksmXko1f0tmsEvDMtf04HmABEH9vl_5ow3x4qNjIUaBBCbdS/s320/CoreInteractionLoop.png" width="320" /></a></span></div>
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">The basic turn flow is pretty, well, basic. You look at the battlefield, figure out who or what you want to target, and then you're presented with an array of different powers. Once you've decided on your power, you execute it.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The trick here is the powers we present to you are based on context from combat: what is your status and where are you in relation to your target.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">When we designed combat, we wanted to ensure that there was a feedback loop between your actions now (and your opponents' actions) and the powers that would be available to you next. Examples of this would be Silent Thorn gaining Assassin powers when she's Concealed; Shasek gaining Berserker powers when he's Bloodied; ranged attacks becoming unavailable when you get Engaged (locked down by a tank). Your range in relation to the target is also important, as some attacks become unavailable if the target is too far.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Earlier on in development, we also had powers that only showed up if you were Engaged. Other powers also only showed up if you were at range and not in melee. Like positioning requirements, later in development we decided these were too restrictive. Part of it was depending on context you might only have a single power available to you which is no fun at all because you literally have no choices, and part of it was just player confusion. It's easy to justify gaining new powers for a special status, and the no-ranged-when-engaged is pretty easy to grok, but a lot of cases where powers you thought you should have (like a big melee attack) only appearing when you're engaged or at a specific distance was difficult to communicate effectively, and felt arbitrarily restrictive in play testing.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_gGh0ZufqpoToRdT9hzxiGq4wtLz8l0UtWYWu3dnwMjzCwMCGEEB0UusQGeLdSj-fNnPyYeigmKSIrn-t7E-iZv1pRtExCTYlzshFyL6I6NLyiOTz37ECXp2ruqcVWhHM9aOF0mGJbuez/s1600/marcusengaged.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_gGh0ZufqpoToRdT9hzxiGq4wtLz8l0UtWYWu3dnwMjzCwMCGEEB0UusQGeLdSj-fNnPyYeigmKSIrn-t7E-iZv1pRtExCTYlzshFyL6I6NLyiOTz37ECXp2ruqcVWhHM9aOF0mGJbuez/s320/marcusengaged.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Marcus Engaged with a Sellsword</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">Another change related to this was Engagement itself. Originally, all melee attacks Engaged the other party. When you're Engaged, you're locked in 1v1 combat with another party and can't escape without either killing the other party, or using a special Disengage power (which usually felt like wasting your turn). Engagement was extremely restrictive--by design--but play testing showed that it wasn't a fun restriction, especially given our penchant for battles where the players are outnumbered two-to-one. It was far too easy for ranged characters to get locked down and become basically useless.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Later on we changed Engagement to be something only tank characters used. Some enemies can engage, like the Bloodguard, and all three melee PCs can engage--though Shasek is less likely to want to unless the situation is dire or you really want him to take some damage to activate his Berserker powers. This made the status dangerous and a lot more uncommon, but in this case less is more: engagement is now an extremely powerful tool when used judiciously and deliberately. But those strategies are encroaching on Loop 2.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Combat Resource Economy</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">I'm jumping ahead to Loop 3 here a bit first, because the resource economy we built informs the design of Loop 2 to a certain extent. So while it may make sense to discuss each loop in ever-broadening order, that's not really how things worked when building the system.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">In the first couple iterations, we had two primary resources: energy, and cooldowns. Attacks generated energy, and the harder you hit, the more energy you'd get returned. This created a bit of a runaway virtuous cycle where Fireballing a large group would generate so much energy that you could basically just spam the spell over and over again, so we introduced cooldowns on some of the more powerful abilities.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Every character had a couple of "Farmer" powers--that is, powers that cost 0 energy. Their primary purpose was to generate energy to use on some of your bigger attacks, the Mighty and Mythic powers.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">We decided we needed to cut off that runaway virtuous cycle. Despite cooldowns, you could still alternate Mythic attacks and still generate enough energy to spam big powers all combat long once you were rolling. The first step was cutting down energy rewards from every hit to only the best hit if the attack was an AoE. Later on, we actually stopped granting energy on non-Farmer powers entirely. We beefed up the amount of energy Farmer powers granted (including on a miss so they never felt like a total waste), and the current energy economy was completed.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDDZ_fznT51SJr78IKqZx6gRwjDE19ZJe1i9BlPekDGafWD7RRAbt_KKff1potjxH9ji8Vi_YpjBNRr2Ol9hxjlEP4pltu23cWTmMCzWQsbSnQnih6bb2aPspGRFE_rGFjKKICKj3ipfTW/s1600/MuranEnergy.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDDZ_fznT51SJr78IKqZx6gRwjDE19ZJe1i9BlPekDGafWD7RRAbt_KKff1potjxH9ji8Vi_YpjBNRr2Ol9hxjlEP4pltu23cWTmMCzWQsbSnQnih6bb2aPspGRFE_rGFjKKICKj3ipfTW/s320/MuranEnergy.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Muran gaining energy from a Stone Strike</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">As far as numbers are concerned, a miss is 3 energy, a hit is 3 or 5 energy, and a critical is 8 energy. We wanted to have that fist-pump moment where crits felt better than normal hits, especially since a crit in Eon Altar just guarantees you roll maximum damage rather than doing extra. The other aspect to this is we standardized energy costs to 5 and 12 energy for Mighty and Mythic attacks respectively. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">With energy costs set, it became really easy to map out what an expected energy curve would look like. You could alternate a hit (+5 energy) with a Mighty power (-5 energy), or if you were saving energy, you knew it would take 3 - 4 attacks for a Mythic attack, or 2 if you're lucky with a crit or two. Crits in general just allowed you to slowly bank extra energy over a medium period of time, especially given crit rates generally fall in the 25% to 40% range.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">With energy gains under control, we decided we could remove the cooldowns off most powers. If you had 24 energy banked, Fireball with Muran two turns in a row if you'd like, or if you have 15 energy banked, Shield Slam on Marcus 3 times in a single turn to build up for a giant final strike. The only powers that have cooldowns remaining are Shadowstep for Silent Thorn so she can't sit in Concealment forever, and Revive to prevent players from spamming it to zerg the encounter until they get lucky. Some gear have cooldowns as well, but they're usually massive boosts or extremely powerful to compensate.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Basically, cooldowns are no longer a "resource" per se and more a balancing mechanism. A subtle distinction, but an important one as it means players have far more options at their disposal on a turn-to-turn basis.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Gaining An Advantage</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Once we decided to ditch Engagement as a thing all the time, and removed some of the more restrictive contextual requirements for powers, it often meant that you had anywhere from 3 to 7 (or more!) actions available to you at any given time. This meant we needed differentiation.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMEJKgGZ-p5pM-BIAkhNjf6jhVidmRUC-qZrjXyNTamcdRwsfQrTLW01fwHg06cudky1PcNRlbknUTRi6Wr3D1f0DZlrDvOTHpukEAvd1ygRyf4OMYLdBVIftcoTFKZOJHR3FhX7ureLnO/s1600/MuranPowers.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMEJKgGZ-p5pM-BIAkhNjf6jhVidmRUC-qZrjXyNTamcdRwsfQrTLW01fwHg06cudky1PcNRlbknUTRi6Wr3D1f0DZlrDvOTHpukEAvd1ygRyf4OMYLdBVIftcoTFKZOJHR3FhX7ureLnO/s320/MuranPowers.png" width="238" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Muran has a lot of options at her disposal. The two slots on the lower right could also contain equippable items like arrows or potions, meaning she could have up to 9 powers total in this context.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">It's not sufficient to just have Swing Your Sword, and then a more powerful Swing Your Sword Harder. We wanted to make sure that even your "worst" least expensive powers had some tactical advantage to using. Since every character has two power archetypes, even within a single character we needed to ensure that your two Farmer powers were unique. We also wanted to ensure that using a Farmer power <i>instead</i> of a Mighty or Mythic power was a valid tactical decision aside from saving energy.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">We have three mechanisms to realize this vision: stances, power bonuses, and status effects.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Stances and power bonuses are probably the more subtle effects, but they're also the most prevalent. They're also the hardest to communicate to players (we still don't communicate them well).</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">All powers activate a stance when used. Fireball and Flame Aura, for example, share Muran's Fire stance, whereas Shatter and Stone Strike share her Earth stance. Muran's Earth stance often comes with defensive bonuses, versus her Fire stance which is more damage at the expense of defense. This makes choosing Earth powers a better decision if you're going to be in melee a lot, but if you can get safely at range, you can unload with Fire powers to scorch the enemy without having to worry about the relatively lowered defenses.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">On top of that, many powers have bonuses on top of the stance. Marcus' Lunge III, for example, activates his Phalanx stance for some physical resistances, but the power itself adds a +4 Defense bonus that other Phalanx powers would not, making it a natural choice if you need to turtle up.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Finally, status effects. Many powers give you buffs, or the enemy debuffs. Again, this helps differentiate powers. To use Marcus as an example again, Lunge gives Marcus the Protected status (+25% Defense) whereas Sunder causes the enemy to be Sundered as the name suggests (-25% Defense). Both are Farmer powers, and while Lunge is more accurate and Sunder does more damage, the status effects are powerful enough to perhaps use one of those instead of a more expensive power if the situation calls for it.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Silent Thorn has a good example with her Void Arrow versus her Quick Shot. Despite Quick Shot being free and weaker, since it slows the enemy (-50% Movement), it's the better attack to use if you're kiting a melee enemy. Void Arrow, however, does a fair bit more damage for 5 energy, but it also Blinds (-25% Accuracy, -50% Range), so it becomes a great decision to use against a ranged sniper or if there's nowhere for you to kite.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">And then of course utilizing these effects with your allies allows you to really boost your party's power. Sunder with Marcus to allow others to hit more easily then Slay with Shasek to Weaken the enemy and get a second turn. Muran's Flame Aura reduces Radiant resistance, then use Baryson's Blade of Glory to do Radiant damage and leave a Radiant DoT to tick for even more damage. Or use Marcus' Shield Slam to knock an enemy backwards into another opponent so Silent Thorn can Volley both of them.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><b>Part 3 Coming Soon</b></span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Loops 1, 2, and 3 often aren't quite as neat and tidy as I first laid them out. There's lots of overlap between them, and even when we were designing, different aspects of the system came online and iterated at different rates. What we have today is a pretty well-oiled machine, and we have loads of evidence from our play tests and demos at conventions such as PAX East and PAX West that we've created a very tactical game that rewards players who're aware of and plan around the different combat loops. But it definitely took a lot of iteration, thought, and play testing to get where we are now.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Next time I'll discuss progression, archetype design, and the role of gear and craftable items as the 4th and final broader combat loop. </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev, #EonAltar, #GameDesign</span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-71990244664702345222016-05-20T10:35:00.001-07:002016-05-20T14:30:57.417-07:00[IndieDev] Eon Altar's Team Turn Based TRPG Combat Design<span style="font-family: "arial" , "helvetica" , sans-serif;">Eon Altar's combat systems have been iterated on over the past 2 years pretty significantly, but the core tenets have stayed pretty constant. When we first set out to make this version of Eon Altar, combat came out of the gate relatively early in the process with a very strong design vision set by Christoph Sapin<span style="font-family: "arial" , "helvetica" , sans-serif;">sk</span>y (@XophRA on Twitter). Later on after Christoph moved on from the team Scott Penner (@AltheusStone on Twitter), our lead designer, continued iterating on the system. Throughout the entire process, I've definitely made opinions and suggestions known.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Combat today is a team turn-based affair, with each player having a strong class identity and an array of unique-to-the-character powers they can pick and choose from each turn. Being able to take your turns simultaneously or in any order you choose allows for fast paced combat that you can slow down and plan at your choice. A clear energy economy for spending on bigger powers gives an ebb and flow over the course of a single fight. Many powers have secondary effects that make each one worthwhile in different situations. Outside of combat itself, character progression in the form of upgrading existing and unlocking new powers, stat boosts, weapon/armour upgrades, and consumable items help round out the longer planning game.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-dUee1picCNsQpDMY0uIU8fYsALoYeMo7vliguUi7_sT5zd6dM1vIaO29vNuZ6oHdCrjwnUFxel84NCp3dJF3z-x2HA4XXV6U25_H8FDm7RqSSf77MeOIhpBTqtrrxKemBmNgLwSCv3-K/s1600/interpidtrio.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-dUee1picCNsQpDMY0uIU8fYsALoYeMo7vliguUi7_sT5zd6dM1vIaO29vNuZ6oHdCrjwnUFxel84NCp3dJF3z-x2HA4XXV6U25_H8FDm7RqSSf77MeOIhpBTqtrrxKemBmNgLwSCv3-K/s320/interpidtrio.jpg" width="320" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As evidenced by watching people play at PAX East, we've certainly succeeded in making an engaging, tactical combat system. But where did we start from, and why have we made some of the decisions we have along the way?</span><br />
<br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Original Vision</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">We had a few design goals we needed to keep in mind as we created combat and evolved it. The current system bears many of these out--though to a lesser degree than we'd like for some, admittedly. Some of the vision we've had to leave due to just not being able to build the tech, or as we built the game, that aspect of the vision came into conflict with providing good game play.</span><br />
<blockquote class="tr_bq">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Tactical</i></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Letting smart player decisions really maximize their results in battle, including proper physical placement, equipment management, using and progressing individual abilities, and cooperation with other players. Epic battles should engage players with strategy that requires group discussion.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Fast Paced</i></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Not every battle needs to be epic; most fights will be fast and brutal and serve to contrast the fewer, more strategic fights. Players should feel that once they've committed to an action that the result is quick. Turns will be team-based, so turns go by quickly and players won't have to wait long to make their next decision.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Cinematic</i></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">When the time is right, we will reward players with a display of how bad-ass their character has become. Some monsters and battle ends should trigger "death blows"--special animated sequences. These cinematic sequences will be rare, but valuable interruptions to the regular flow of an otherwise fast-paced combat experience.</span></blockquote>
<span style="font-family: "arial" , "helvetica" , sans-serif;">From the start, we had the team turn-based tactical combat vision. It was important to us that combat was fast and fluid, but you could take the time to make nitty gritty decisions if you really wanted to (or in the case of some combats, need to).</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Vision Variation</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I'm of the opinion that we succeeded in spades with the tactical and fast paced aspects of the vision, but some parts of the vision had to be left behind.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">One of the biggest omissions is probably the Cinematic portion. By the time we got combat in a nascent working state, we realized that interrupting the flow of combat was going to be difficult to do in a way that wasn't frustrating to the players. Since turns are simultaneous, when a player went in for a critical hit, if we did a cinematic zoom it would interrupt the other players' targeting. Similarly, if three enemies are attacking simultaneously, and one of them gets a critical and we did a zoom, players wouldn't see the other enemies attacking, which is problematic from an informational standpoint.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">I believe one day we'd still like to do finishing blows for the end of combat, but given everything else we needed to get running, it fell down on the priority list until it was cut for our current release. Something to revisit if we do well enough to release more seasons. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Cinematic has evolved since to be more about ensuring powers look and feel great. Fireball, Blood Rage, and Shield Slam are all incredibly satisfying powers to use because they look powerful. It's not just the numbers, but the visuals and sounds enforcing that.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Powers and Positioning</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">One of the things that I would've liked to have more of from our tactical paragraph is physical positioning. To be sure, physical position does matter. If an enemy attacks you from behind, they have an accuracy bonus; if you're too close an ally may accidentally nail you with a fireball or a cleave attack; and enemies can "block" you from making melee attacks on their friends behind them as a sort of "melee line of sight" deal.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But each action in combat is actually a series of actions, which makes having fine-grained control over positioning difficult. You decide what the top-level action is going to be, and then the action itself performs a series of sub-actions that's entirely AI controlled.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAmLm1QZDpAy_jwgUmSIJhypuHtLbEAmJtYcJUeLJbIlojv5H6uOyq4c95X8JdrvrL0HTsLAf_r2mLAfcn3K5ZAHrVic2IksmXko1f0tmsEvDMtf04HmABEH9vl_5ow3x4qNjIUaBBCbdS/s320/CoreInteractionLoop.png" style="margin-left: auto; margin-right: auto;" width="320" /></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Basic Turn Flow; Thinking, Targeting, and Executing occur on the main game while Deciding occurs on your Controller App.</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">A simple example of this would be Muran's Aetherbolt. You select your target, and decide you want to Aetherbolt them. The Aetherbolt action has two sub-actions: Move, Attack. The Move sub-action calculates the furthest point you can be from the target and still hit them and moves you to that location. The attack sub-action actually performs the ranged attack.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">A more complicated example would be Marcus' Lance Assault. It has six sub-actions: Disengage, Move to Target, AoE Smash/Knockback, Find Random Enemy Target, Move to Target, Attack. This power has two move sub-actions in it, letting Marcus rip around the battlefield, but you don't know where you'll end up.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Because the AI is doing the movement for you, it's doing its best to guess where you should be and makes the attack. But you don't have much direct control over your position or facing when the attack is complete.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">The benefit to this is each turn is important; we can ensure that nearly every turn you're doing something that has direct impact on the fight. While you can decide to just move to a specific location, most of the time you want to be doing actual actions and rolling movement into those actions allows you to spend more time doing and less time jockeying. Being too far away to do anything at all isn't something that occurs most of the time if your party is moving together as a group (if you have a laggard, well, your marching order may need work).</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKO45fyHeen6I2TB2kmil1U7-Q-c3EV7_GIXvsmNtQOnbqbEL6DYJ4xBoAUZo_YQK9aEoTweM7O1Cc7S3vdpohQ5oUfXmrtrA86v-365vXSmGqIgYek4igFU9XqXlulOy95daOC0F8T8CJ/s1600/AoEVision.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKO45fyHeen6I2TB2kmil1U7-Q-c3EV7_GIXvsmNtQOnbqbEL6DYJ4xBoAUZo_YQK9aEoTweM7O1Cc7S3vdpohQ5oUfXmrtrA86v-365vXSmGqIgYek4igFU9XqXlulOy95daOC0F8T8CJ/s320/AoEVision.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">The left is what a Fireball would've looked like for damage areas early in development. You can see enemies acting as physical barriers. Today, it just hits everything in the AoE. However, the left side is still how we determine if you can attack someone with via melee.</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The negative is, as mentioned before, lack of control over various sub-actions, including positioning. Because of that lack of control, we can't enforce too many positional requirements or it will become an exercise in frustration for players. Over the course of development, we've relaxed positional restrictions over time, allowing for ranged attacks and AoEs to go through people, deciding not to implement D&D-style attacks of opportunity, and allowing any position that isn't directly in front of someone count as "flanking".</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Measuring via play testing, this relaxation has noticeably reduced player confusion and frustration. Some of it was figuring a way to communicate this information (and for the record, I don't think we're communicating the melee line of sight restriction at all currently), but a lot of it was just...the restriction wasn't fun. Players like having options, and many of the restrictions reduced what options you had on a turn-to-turn basis.</span><br />
<br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Part 2 Coming Soon</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">This post I talked about the original vision and what we've managed to keep from it and what we've missed, as well as the combat loop from a single-turn perspective. Part 2 next week I'll talk a bit more about the full combat loop, as well as the longer multi-combat loop. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev #EonAltar #GameDesign</span><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com2tag:blogger.com,1999:blog-2814591084344141656.post-22694513128499157292016-05-13T04:38:00.001-07:002016-05-13T04:38:13.675-07:00[FFRK] Cagnazzo U+ and a Relic Reckoning<span style="font-family: "arial" , "helvetica" , sans-serif;">I'm still playing FFRK, over a year after I started, which makes this the longest I've ever played a mobile game pretty well ever. The next closest would've been Puzzles and Dragons at 270 days.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Clearly the game is still entertaining me. The developers have softened the need for the ye old S/L trick by having the AI unlock attacks in the harder fights as the fight goes on, instead of letting them blast you with their full unmitigated power. Mostly. The latest super difficult fight--Cagnazzo U+--would crush one of my mages for twice their health if I didn't have mitigation up yet.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">On the bright side, the Ultimate+ fights only cost a single stamina, so I feel totally free to experiment and change up my strategy. This has made the game <i>more</i> fun for me because now I don't feel obligated to go look up the datamined AI to save myself 60 stamina (3 hours worth). On the other hand, I'm good enough with good enough Relics that even the plain Ultimate fights I don't need to look up the AI anymore.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9jZG-yKUgLM3FMF9xQLW80L0-v1z2fAA-lPN06CEAeL5smwTY935dlWrdlx7RaoUqCymsORHp5KH_27mE3znrL17qPx09dOvup-Hqi7yUuLciXVqi4czXVEeM81AKWC5HdSV_6bDturvx/s1600/CagnazzoU2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9jZG-yKUgLM3FMF9xQLW80L0-v1z2fAA-lPN06CEAeL5smwTY935dlWrdlx7RaoUqCymsORHp5KH_27mE3znrL17qPx09dOvup-Hqi7yUuLciXVqi4czXVEeM81AKWC5HdSV_6bDturvx/s320/CagnazzoU2.png" width="277" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Cagnazzo Ultimate+ is the same Elemental Fiend from FFIV. The annoying thing with that is despite FFIV's large cast, their ability usage is a little limited. No spellblades, D.Cecil has a tiny moveset, and the entire group is super magic heavy.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">In hindsight, a mage party probably would've been a decent option, given Cagnazzo's propensity for countering physical attacks with Stop. Thankfully, my bullheadedness didn't do me in. It just meant Agrias spent 60% of the fight Stopped. Cagnazzo's MND is pretty high.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">My FFIV synergy is pretty weak overall. Lots of 3*++ items, but only a couple natural 5* meant synergy wasn't going to help me as much as it does on other fights. Similarly, only taking a single FFIV character also probably didn't help there either. Still, my Relics and my decent armor saved the day.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQU2nNG5q0GrzhGYdsf1LeqaEbLi2QLp4WstPC8lWLDZumKHFvpT-WT-itxb5AmGqP5iC-e8zg0kk5sVz5R5-Kk8177Bac6zGBRNQSxI8cwjq8vCAEA_IJUhOHOeViZ-voAAFc-TymcneX/s1600/CagnazzoU.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQU2nNG5q0GrzhGYdsf1LeqaEbLi2QLp4WstPC8lWLDZumKHFvpT-WT-itxb5AmGqP5iC-e8zg0kk5sVz5R5-Kk8177Bac6zGBRNQSxI8cwjq8vCAEA_IJUhOHOeViZ-voAAFc-TymcneX/s320/CagnazzoU.png" width="320" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<table style="width: 100%;">
<tbody>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Name</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Level</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Ability 1</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Ability 2</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Record Materia</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Soul Breaks</i></span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Squall</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Lv 80</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Thundaga S. (8)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Blizzaga S. (8)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Rebel's Might</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Fated Circle</span></td>
</tr>
<tr><td><span style="font-family: "arial" , "helvetica" , sans-serif;">Ramza</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Lv 80</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Magic BD (8)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Full Break (6)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Mog's Teachings</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Shout</span></td>
</tr>
<tr><td><span style="font-family: "arial" , "helvetica" , sans-serif;">Agrias</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Lv 80</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Thundara S. (10)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Saint's Cross (6)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Ace Striker</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Cleansing Strike</span></td>
</tr>
<tr><td><span style="font-family: "arial" , "helvetica" , sans-serif;"><b>Rydia</b></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Lv 66</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Thundaja (8)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Blizzaja (8)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Vow of Vengeance</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Radiant Breath</span></td>
</tr>
<tr><td><span style="font-family: "arial" , "helvetica" , sans-serif;">Garnet</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Lv 80</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Ramuh (5)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Dispel (8)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Mako Might</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Divine Guardian</span></td>
</tr>
<tr>
<td colspan="6"><span style="font-family: "arial" , "helvetica" , sans-serif;">RW: Sentinel's Grimoire</span></td>
</tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Not looking at the AI meant that I totally missed out on taking Poison, which would've helped a <i>lot</i>. Honestly, I'd consider it over Blizzaga Strike on Squall given the sheer number of times Blizzaga Strike did 0 damage because Cagnazzo decided to activate his water wall.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I got low on Thunder-based hones by the end of the fight. Also missing out on Runic for easy-mode kinda sucks, as it would've neutered his Stop and a lot of his Water spells. Grand Cross would've been even better given his propensity for buffing, too.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">You'll notice I didn't take any healing aside from Divine Guardian's Heavy Regen, which was the correct move. Made it a little bit touch and go a couple times, but as long as I kept my mitigation up, it was okay. But Garnet was around largely for her Soul Break, and providing Thunder damage and Dispel. Originally I had her healing, and Agrias used Banishing Strike for Dispel, but I needed a 4th Thunder user just in case things went south and someone was busy at an inopportune time.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So Garnet basically sat on standby, using Ramuh or Dispel immediately when needed, which was quite helpful. The rest was pretty straight forward. I realized after the fact that I was missing Shellga (Garnet's only gives +50% RES, not +100%), but thanks to Agrias' Cleansing Strike, it wasn't a huge deal after the first few rounds while it charged up.
All in all, aside from his extreme defenses and rnadom mode switch rendering my Blizzard attacks useless half the time, he wasn't too shabby.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Relic Reckoning</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Up until a couple months ago, my Character Relics were pretty pitiful. I had a couple of Medicas, and Planet Protector. Every other character relic I had was crappy one-hit damage ones. Then we had some SSB festivals plus the Final Fantasy Tactics banner and now I'm awash in awesome relics:</span><br />
<br />
<table>
<tbody>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Name</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Realm</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Soul Break</i></span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;"><i>Effect</i></span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Luneth</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF III</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Advance</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">+150% ATK, -50% DEF</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">P.Cecil</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF IV</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Radiant Wings</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">3 Hits, Holy Physical Damage</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Rydia</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF IV</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Radiant Breath</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">2 Hits, AoE, Holy Magical Damage; Blur 2</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Galuf</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF V</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Unyielding Fist</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Stupid Galuf Solo tricks</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Yuffie</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF VII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Clear Tranquil</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 40% Heal, Instant Cast</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Aerith</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF VII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Planet Protector</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, +50% ATK</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Squall</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF VIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Fated Circle</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">3 Hits, 1 AoE Hit, Physical Damage</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Rinoa</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF VIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Wishing Star+</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">5 Hits, Magical Non-Elemental Damage</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Quistis</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF VIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Mighty Guard (VIII)+</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Hastega, Shellga, Heavy Regen</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Edea</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF VIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Inaugural Parade</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Hastega, +20% MAG</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Zidane</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF IX</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Scoop Art</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">3 Hits, Physical Damage</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Garnet</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF IX</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Divine Guardian+</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Hastega, +50 RES, Heavy Regen</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Steiner</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF IX</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Sword Art Stock Break</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 3 Hits, Physical Damage, Paralyze</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Quina</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF IX</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Mighty Guard (IX)</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Shellga, Protectga</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Rikku</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF X</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Machina Sabotage</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">4 Hits, Physical Damage, -50% ATK, +50% ATK self</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Auron</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF X</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Dragon Fang</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 1 Hit, Physical Damage, -30% ATK</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Fran</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Shatterheart</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 1 Hit, Ranged Physical Damage, -50% ATK/MAG</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Penelo</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">War Dance</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Medica, +50% ATK</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Lightning</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Crushing Blow+</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 5 Hits, Lightning Physical Damage</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Vanille</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Oerba's Boon</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Medica, Protectga</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Hope</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XIII</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Brutal Sanction</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 3 Hits, Non-Elemental Magical Damage, Stop</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Y'shtola</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XIV</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Medica II</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Medica, Esuna</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Thancred</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FF XIV</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Death Blossom</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, 1 Hit, Physical Damage, Slow</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Agrias</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FFT</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Cleansing Strike</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">3 Hits, Physical Damage, -50% ATK/MAG</span></td>
</tr>
<tr>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Ramza</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">FFT</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">Shout+</span></td>
<td><span style="font-family: "arial" , "helvetica" , sans-serif;">AoE, Hastega, +50% ATK</span></td>
</tr>
</tbody>
</table>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As I mentioned, this isn't all of them. Anything that's a plain old AoE or single target with few or no effects are basically not listed. I've been doing the 100 gem pulls, which have gotten me a fair few of those. Only 8 of the above came before I pulled Quistis' Red Scorpion 2 months ago.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">To be fair, I had saved up a lot of Mythril for the FFT banner and the SSB fest, so that helped. I also ended up spend $30 for an extra 11-pull on the FFT banner (which turned out to be worth it in hindsight given it got me both Ramza and Angrias' Relics). But I've gone from pauper to prince as far as options go. The game is much, much easier now that I have these relics, for better or for worse.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But it's nice because I can be more creative about what RWs I bring with me, which is more fun for me. But without these soul breaks, I'm not sure I'd be able to down fights like Cagnazzo U+ at all, let alone as relatively easily as I did. I've definitely had some good Relic pull luck, though.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>More Fun To Come</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The devs keep adding new content, new characters, new systems, so I'll keep on playing. Still having a lot of fun with the game, and I don't see that stopping anytime soon.</span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">FFRK</span><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-57647042188121840152016-05-10T03:50:00.001-07:002016-05-10T03:50:13.047-07:00[GameDev/WoW] Player Feedback: Forums versus Metrics<span style="font-family: "arial" , "helvetica" , sans-serif;">Recently, Watcher AKA Ion Hazzikostas--a designer on World of Warcraft--crafted <a href="http://us.battle.net/wow/en/forum/topic/20743595664?page=4#75">an illuminating forum post</a> about the pitfalls of manual player feedback from an extremely diverse player base.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">An excerpt:</span><br />
<blockquote class="tr_bq">
<span style="color: #00c0ff; font-family: "arial" , "helvetica" , sans-serif;">Almost every facet of WoW is an activity that caters to a minority of the playerbase ... [WoW] is not a narrow game, but rather one that can be enjoyed in numerous different ways, by people with hugely diverse playstyles ... We are [listening] - just to many, many different voices. And it may be that a given change, feature, or reward is simply aimed at a different portion of the playerbase. Or we could be wrong and we haven't realized it yet.</span></blockquote>
<span style="font-family: "arial" , "helvetica" , sans-serif;">World of Warcraft is a huge game. Some folks focus entirely on PvP; others, raiding; still others, pet battling. Collecting mounts, transmog, small group content, questing and leveling, and more. Many of these activities can cause friction when game design conflicts arise between them. It also means that there are a lot of voices clamoring to be heard, and many of those voices conflict with each other, not to mention the oft-alluded silent majority.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">An excellent discussion on Twitter suggested metrics or polling being a better barometer of player activity and thoughts, and in some ways it is. In others, nothing beats having someone <i>tell</i> you what they're thinking.</span><br />
<div align="center">
<blockquote class="twitter-tweet" data-conversation="none" data-lang="en">
<div dir="ltr" lang="en">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://twitter.com/Talarianjs">@Talarianjs</a> <a href="https://twitter.com/WatcherDev">@WatcherDev</a> It's for this reason I feel like metrics or polling is a better gauge of temperature than forums.</span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">— Chris Hughes (@wolfyseyes) <a href="https://twitter.com/wolfyseyes/status/729822958328397824">May 9, 2016</a></span></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Metrics</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Let's talk about metrics for a moment. Metrics, or analytics, are an impartial way to gather data about your program's usage in the wild--in this case, the program is a game. It's impartial because the programmers put in the metrics to report into the code so there's no self-reporting biasing going on that forum posts suffer from.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Many commercial programs collect metrics, video games especially. Analytics and metrics are a huge business, with many 3rd party platforms that game devs can buy into and integrate into their game. The basics that most <a href="http://blog.gameanalytics.com/blog/metrics-all-game-developers-should-know.html">games are probably gathering</a> are:</span><br />
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">DAU/MAU (Daily Active Users, Monthly Active Users)</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Sessions</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Retention (%age of users who open your game at least once in 1, 3, 7, 30 days)</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Conversion (%age of users who make in-app purchases)</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Churn (player loss over time)</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Source, Sink, Flow (in-game currency tracking, ie: how much gold are you making, spending?)</span></li>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Start, Fail, Complete (tracking task starts/success/failures)</span></li>
</ul>
<span style="font-family: "arial" , "helvetica" , sans-serif;">MAU is something folks who're reading the recent Activision-Blizzard financial report will be familiar with: how many unique users a month logged in/played your game. For a game like WoW, with Battle.NET accounts, it's as simple as querying their database for the number of players who've logged on the game in the past month. For others, it becomes a little more of a guessing game based on identifiers like IP Addresses or a device ID run through an anonymizing hash algorithm. Clearly the latter is not perfect: it's possible to have collisions, IPs get reassigned, device IDs may change if enough of the hardware changes on a PC, and so on. But it provides a more than statistically significant guess.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Retention, Conversion, and Churn are all clearly important for monetizing your game. Are lots of players purchasing things from the store? Are your players sticking around and logging in a lot? Are you losing players over time, and how long on average do they stick around? What a lot of those questions miss, however, is the <i>why</i>. They can indicate you have a problem or a success, but not why. That generally requires some further custom metrics--or perhaps some enterprising users making a blog or forum post.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Source, Sink, Flow is good for tracking your in-game economy. If Flow is positive, your economy--single player or multiplayer--is inflating. Flow is negative, your economy is contracting. Depending on the game and the currency (and if you can pay real money for said currency), whether you want a stable flow, or a positive or negative one will vary. A good game designer will already have a model economy (probably in a giant Excel spreadsheet), and this data can confirm that in the wild the economy is working as intended.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Finally, Start, Fail, Complete is good for tracking bottlenecks in your game-play. Is there a specific level that people are constantly failing at? Are folks performing specific tasks but not completing them? These are the sorts of metrics that tell you what your players are doing in-game, and how well they're doing it. This can be a warning that certain features are under-utilized, or too difficult (or more accurately, if the feature difficulty curve is where you want it to be). Again, though, this doesn't tell you <i>why</i> they failed.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ4owZddZHyxoXXJ9xuXLfTr7FeteLriOw9Tbw-FxEu-Z3IKRQfrcMPz1tJ-cdqeDO1W5NEIspsC2HH4AtyFEodNlw6DehcuXLVkYfJNEdXv_RMAgmAN2ATyD-FWiFQf7wrk0blyH7pvd4/s1600/maxwave.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ4owZddZHyxoXXJ9xuXLfTr7FeteLriOw9Tbw-FxEu-Z3IKRQfrcMPz1tJ-cdqeDO1W5NEIspsC2HH4AtyFEodNlw6DehcuXLVkYfJNEdXv_RMAgmAN2ATyD-FWiFQf7wrk0blyH7pvd4/s320/maxwave.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">A one-week snapshot of the average maximum wave reached in our Combat Arena</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Of course, each game can have their own custom metrics. For example, Eon Altar we track our Combat Arena usage, and have stats on the average wave players make it to before wiping. If that number was too high, we'd likely have to tune the difficulty up. If the number was too low, balancing it down would be the way to go.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I don't know who got that far, and I don't know who failed early or why. The data is anonymized before it gets to me so I couldn't find out if I wanted to. I do know how many players they started with, but right now I don't know what classes they took--something I'd like to get eventually to help understand how our balance is, though I have a <i>really </i>good guess at how it'll shake out after watching many players at PAX Prime, PAX East, and Casual Connect.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Metrics can give you a broad snapshot or even trends over time of how features, levels, and players are doing. They can be an early alert system of a sorts to problems in your game, but a lot of the time you can only guess as to why the problem exists even if you know you have one.</span><span style="font-family: "arial" , "helvetica" , sans-serif;"> </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Direct Player Feedback</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">This is where other forms of feedback come into play: in-house playtesting, trawling Twitter and external forums for people's opinions, your own forums, watching Twitch or Let's Plays on YouTube, or direct conversations with your players.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Metrics can't tell you if players are having fun, or if they're just doing something because it's the most efficient route, whereas reading people's comments will <i>definitely</i> tell you how the vocal minority feels.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Sometimes it's ridiculously overwhelming: take the Real ID fiasco a few years ago where Blizzard was going to make your real full name mandatory on your Battle.NET account. I can't think of a time when feedback was so unanimously strong in gaming outside of maybe the Mass Effect 3 ending, and even then that wasn't as loud in my opinion.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Other times, it's heated on both sides, but there's no clear single answer. Flying mounts in World of Warcraft comes to mind here. Pro, anti, and even apathetic arguments were made vociferously--the apathetic crowd mostly just wanting everyone else to stop arguing already.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Players can be wrong, too. As Ion said in his post, players have a small snapshot of the world around them. An example of this in World of Warcraft were Frost Mages in PvP in Mists of Pandaria. Many people complained that they were extremely overpowered and wanted them nerfed, but Blizzard's metrics showed that while they were a little OP in lower brackets, they were actually struggling in the higher brackets. Nerfing Frost Mages outright would've removed them from higher level PvP play entirely--clearly the wrong move once you saw the metrics. A different approach was needed there. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Sometimes, players giving feedback are, well, I won't say <i>lying</i> per se, but their actions belie their posted words. A common example here is the CoD: Modern Warfare 2 backlash where folks were talking about boycotting in favour of dedicated servers, but that lasted all of a hot minute. And trust me, developers will notice: the metrics aren't biased. If sales actually plummet, or DAU metrics plummet, marketing will see it.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH9fnQ4VDQA5ZIpIzxGpGfCZ86p3ptmFEYwinFBQYQ6mkOherlMi9ASO9yAZcR5ueCInwdV8GsK5JnGbpkk0MvbjJytrdkMQzbLwXV9jmmTOaqZ1wdH2Pf4OZjJdYg8RZg3nEfENhAf0Br/s1600/modernwarfare2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH9fnQ4VDQA5ZIpIzxGpGfCZ86p3ptmFEYwinFBQYQ6mkOherlMi9ASO9yAZcR5ueCInwdV8GsK5JnGbpkk0MvbjJytrdkMQzbLwXV9jmmTOaqZ1wdH2Pf4OZjJdYg8RZg3nEfENhAf0Br/s320/modernwarfare2.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">https://www.rockpapershotgun.com/2009/11/12/why-they-dont-take-boycotts-seriously/</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Direct player feedback is still incredibly important though, because you can get all sorts of context that's missing from soulless data. Maybe that boss' telegraph is really hard to see. Maybe something is really fun, but out of sight, out of mind so nobody noticed it. Maybe a feature that has a high engagement eats a lot of player energy, but isn't actually that much fun for a large part of the populace. Fun is a pretty nebulous concept, and data can't really tell you that.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Data is also impersonal. There is something to be said about the glow of seeing someone gush about your game in a forum post. The flip side, of course, is the terror of being on the receiving end of an internet lynch mob. For some, the threat of the flip side is too much, and so they'll only ever look at the data. For others, the personal experiences drives their satisfaction and design choices. It really depends on the developer.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b><br /></b></span></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Balancing the Two</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I disagree with Wolfyseyes a little in that metrics or polling isn't necessarily a better gauge of temperature than forums. I see metrics like looking outside your window in the morning. You can tell if it's cold or hot, raining or cloudy, and maybe windy, but you can't tell the precise temperature or wind speed. You can't tell that the rain incoming is only going to get worse because it's the remnants of a tropical storm coming from Hawaii.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">With player context you get a more complete picture, even if that picture is fractured between many different viewpoints. You may have to look at feedback from a specific angle or use a different lens. Sometimes that player isn't who you're building for--I wouldn't change Eon Altar to be more like a MOBA with real-time skill shots even if a bunch of people asked for it<span style="font-family: "arial" , "helvetica" , sans-serif;">;</span> that's just not our vision for our game. That's okay! For a game like WoW, that's a little bit of a harder sell because they have so many varied customers, so they have to have more lenses which to interpret direct feedback.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As metrics <span style="font-family: "arial" , "helvetica" , sans-serif;">improve</span>, and analytics technology gets better at sifting through big data, we'll be able to answer more of the "why" without that direct player feedback. But I don't ever see direct player feedback going away. It'll be very important for many years to come. </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">WoW</span>,<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> <span style="font-family: "arial" , "helvetica" , sans-serif;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDevelopment </span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-15017762101139191032016-05-04T13:57:00.004-07:002016-05-04T13:57:55.785-07:00That New Minecraft Server Smell<span style="font-family: Arial,Helvetica,sans-serif;">I love new Minecraft worlds. That feeling of limitless possibility: new machines to build, new landscapes to explore, new ideas to try. So for 1.9 I've reset my Minecraft server.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">My first goal for it was to try something a little new with respect to landscapes, so this time I've made it generate using the <a href="http://minecraft.gamepedia.com/Amplified">AMPLIFIED</a> terrain type. What this does is basically turn everything into extreme biomes, with extremely exaggerated vertical features. The result is lots of super high mountains all the way to build height, very deep valleys, floating islands, massive overhangs, and all in all it looks absolutely gorgeous.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizrU3dxaU32BA0mtizldpHe5Q3g8gXwJYMMXYxB8geqim9rVO_bbopncAtReH1LJI2W4vunKe2mnhTK3P5qcirXyCp41_y8S-iAvAPySh3IbL1k-9UkZNacPPMRk-zxXxLDd3qGM4feeGK/s1600/2016-05-04_13.41.12.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizrU3dxaU32BA0mtizldpHe5Q3g8gXwJYMMXYxB8geqim9rVO_bbopncAtReH1LJI2W4vunKe2mnhTK3P5qcirXyCp41_y8S-iAvAPySh3IbL1k-9UkZNacPPMRk-zxXxLDd3qGM4feeGK/s320/2016-05-04_13.41.12.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">World Spawn</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">The above image is just the area where World Spawn is, and already you can see a number of floating islands in the distance, and crazy mountainous terrain. I cannot wait to start exploring some deserts, mesas, and ice spikes biomes to see what happens there. There's a swamp to my right in that picture, and swamps became superflat, so that'll make for some awesome slime hunting at night. There's also a witch hut in a stone throw's distance, so I may finally get to make a witch farm, too.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">The house there is my communal spawn hut. I'm hoping as folks join the server they'll make shops and services in the (relatively) flat plains area. For now I've created a mineshaft, a basic house, a cow farm, a tree farm, sugarcane, and a carrots+wheat farm. All manual of course. Took me about 4 hours, so not so bad.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmafNNe9p3apmjN_C_sbfaVN4mPV89T72GFP4IN-6S4kNrVOf9xotL8TucRdREWxN3rubNUM1CcUmm0g6qF7p2SHrCc6XkqZwdJm-8NbWJHxIlIMpQco3scb4Dw-IIHUel7CRDUJLDxrUL/s1600/2016-05-04_13.39.23.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmafNNe9p3apmjN_C_sbfaVN4mPV89T72GFP4IN-6S4kNrVOf9xotL8TucRdREWxN3rubNUM1CcUmm0g6qF7p2SHrCc6XkqZwdJm-8NbWJHxIlIMpQco3scb4Dw-IIHUel7CRDUJLDxrUL/s320/2016-05-04_13.39.23.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Inside is very basic still.</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">But given just how up and down the terrain is, and all of the overhangs, exploration in an amplified world is a fair bit more dangerous than a normal world. Mobs spawn during the day under floating islands and overhangs and sudden drops will kill you quick, plus exploration in general is slower because there's so much more climbing.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">I've already died twice: once from a creeper dropping in from above me and exploding, and another time falling to my death. Still getting used to the 1.9 combat mechanics.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Anyhow, for my Twitter/Facebook/Blogging/Battle.NET friends, if you're interested in playing, drop me a line and I'll be happy to have you on. I'm going to keep my invites to folks I interact with semi-regularly to keep the possibility of griefing low. Note that it is a Vanilla server, no server mods, but frankly I'm okay with that. Anyhow, server is new and pristine, and playing with friends is fun! </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">Minecraft</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com2tag:blogger.com,1999:blog-2814591084344141656.post-64311012399768786072016-04-28T09:00:00.000-07:002016-04-28T09:43:51.038-07:00[IndieDev] How Three Strangers Won PAX East 2016<span style="font-family: "arial" , "helvetica" , sans-serif;">PAX East 2016 was a total blast. I could talk about how so many people told us Eon Altar was unique, or I could talk about how busy we were, or I could talk about the hiccups we ran into during setup and after.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzZBcB7xPMYOxtIahDul9SkGddCo4hQ_ZYEOS8cqSbPpC935l53jTHONgucy8lv9WLNJqeYlsTCwQHy9GGZRSKoFnru4lGW2Facrv3NpDkAX3efN54pGqza4M-50JIfbq7UIukVX9OwbCv/s1600/booth.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzZBcB7xPMYOxtIahDul9SkGddCo4hQ_ZYEOS8cqSbPpC935l53jTHONgucy8lv9WLNJqeYlsTCwQHy9GGZRSKoFnru4lGW2Facrv3NpDkAX3efN54pGqza4M-50JIfbq7UIukVX9OwbCv/s320/booth.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Eon Altar @ PAX East 2016</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Instead, I want to tell a story. A story of three totally disparate strangers, who all showed up at our booth around the same time and forged what will probably be a lifelong bond, but also showed us as developers what our game is really capable of.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Excitement in the Air</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">After the slow start we had on Friday, Saturday was full of promise. We had gotten all of our technical difficulties solved, and some of us finally had a decent night's sleep. We were rarin' to go and meet the crowds.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As the day progressed, we had plenty of folks in and out of our booth. Most people who sat down for a combat arena session would get to about Wave 7 before falling apart, but they all left the booth with smiles on their faces. To me that was probably the biggest compliment of all: seeing folks legitimately <i>enjoy</i> the game we put together over the past couple of years. It was invigorating.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">About halfway through the day, just after lunch, we had someone stop by the booth. He was so stoked to try out Eon Altar; it looked unique and pretty cool. But of course, as is wont to happen on the show floor, there was a line to play the game. But he was willing to wait. Shortly thereafter, a couple more guys stopped by, and they were pretty interested too.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Soon a demo station opened up, and Haydn--our executive producer--sat them down on the grey and teal beanbags, handing them each a cell phone. Once the combat arena had booted up, the game was afoot. Or a game. The game was on, in either case.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzcduahyGyAsgBz7p4daEFziwtIJWr1hhgLN1bcNzHkbsZXil00HsmBaE8QFh0rG74yDzXDc3jdDpQumfPP1uUx4mhWzYoVm5VzG_1osKWxPlg8r4fkDMyiqSdWm_ufifjjcZ7kAwKU4Xy/s1600/interpidtrio.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzcduahyGyAsgBz7p4daEFziwtIJWr1hhgLN1bcNzHkbsZXil00HsmBaE8QFh0rG74yDzXDc3jdDpQumfPP1uUx4mhWzYoVm5VzG_1osKWxPlg8r4fkDMyiqSdWm_ufifjjcZ7kAwKU4Xy/s320/interpidtrio.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">The Intrepid Trio discussing strategy</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">They didn't plan ahead really. They just grabbed characters that appealed to them at first glance. Baryson the Paladin, Muran the Battlemage, and Shasek the Sellsword. The first few waves whetted their appetites for the blood of their enemies--well, really it just allowed them to get a handle on the unique controls--but quickly they realized that there was more value in working together.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Cooperation Isn't Just For Sesame Street</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The thing about PAX is that you often hear of stories of people making friends for life. In lines, in random games, at panels, whatever. At PAX Aus, I made a number of friends who're such an amazing amount of fun that I went back again two years later. While PAX Aus was a draw unto itself, meeting my Aussie friends a second time was honestly the better part of it. But I don't think I've ever had the chance to <i>watch</i> the process happen.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu5-EYawIxrAkvKwHRKA8A7wu6gO6l-qqXX_9CGGWR5bAIOKPlnKp64qW0vbh7QkkPwOrwm4TYpVT3oeqZRfYoQaWbrf0RjXSck9WBny4I2oHVvvBy2Hva35IX66elrEpBPRhsHhSaW0Nu/s1600/IMG_3522.GIF" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu5-EYawIxrAkvKwHRKA8A7wu6gO6l-qqXX_9CGGWR5bAIOKPlnKp64qW0vbh7QkkPwOrwm4TYpVT3oeqZRfYoQaWbrf0RjXSck9WBny4I2oHVvvBy2Hva35IX66elrEpBPRhsHhSaW0Nu/s1600/IMG_3522.GIF" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">A different group of three players strategizing. They already knew each other going in.</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Our intrepid trio, having never met before in their lives, began to talk about their characters' capabilities. Other groups had kept to themselves, often not chatting up the strangers playing with them. Not these guys. And very quickly they realized that they were a fighting force to be reckoned with.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Thanks to some pointers from Hadyn on how some of the more in-depth systems worked, such as ability, weapon, and armor advancement, and equippable/craftable consumables, the group fell into a cautious, tactical pattern as they chewed their way through wave after wave of enemies.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">A few groups had managed to get past Wave 10, the second boss wave. Nearly none had managed beyond that point. Outnumbered three to one (or more!), and outgunned by Arbolek Spine Tyrants and Hound Masters, without cooperation those groups were doomed to die.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn3nAbSR6ab4UxwDAyy4kyxCsfin4rWRhdlf0V3sEVlUT9D3SKxeQPgKweIHp4DpNHNG8Rh8-TanBUCin2FsODLY-YeqGHGlmrkzrYdDfpOhA9d3-GbpRmNzLeR0JgZD6-Psx4QGFQzR6c/s1600/arbolek.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn3nAbSR6ab4UxwDAyy4kyxCsfin4rWRhdlf0V3sEVlUT9D3SKxeQPgKweIHp4DpNHNG8Rh8-TanBUCin2FsODLY-YeqGHGlmrkzrYdDfpOhA9d3-GbpRmNzLeR0JgZD6-Psx4QGFQzR6c/s320/arbolek.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Arbolek Spine Tyrant</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But these gentlemen managed to not only slay those waves, but did so with nearly full health and energy by the end of each wave. By Wave 15, they were stopping every turn to discuss their options, and combine their powers in ways we--the developers--hadn't thought of. Baryson keeping the party healed, buffed, and protected while the mage and sell<span style="font-family: "arial" , "helvetica" , sans-serif;">sword</span> cleared the way.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Amicis, Rei Militaris</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I'll be honest. I never expected them to get as far as they did. I also didn't expect them to take five minutes a turn--or longer--as they leaned in and discussed all of their options. I knew we had worked hard to design a game that had an interesting combat system. We had good bones so to speak in the original design by Christoph Sapinsky, and Scott Penner took the reins on combat with further iterations, with some input by yours truly. But I admit I took it all for granted a little. I thought our game wasn't actually <i>that</i> difficult or complex combat-wise.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">These newfound friends proved me wrong.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">By the time they had completed Wave 25--the furthest nearly any of us had ever been excepting Luke Reynolds, our finance guy, playing solo--over two hours had passed. Two hours at a demo station! On one hand, I was concerned that we were preventing others from taking a shot at it. On the other hand, we had three people who were now all heatedly cooperating and friends for life showing us things about our game that I don't know we knew or believed. I didn't want to stop them.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Alas, some UI confusion did them in on Wave 26, and one of the trio died permanently. Shortly after the other two folded like the beanbags they were sitting on. But they had set records, and they were absolutely pumped. They had basically won PAX East 2016, as far as any of us were concerned.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTTTWpNWwbuxvq5mCh5vBfNV_-c1Ol-og7_JAr6LFwNoDQStT7pz1clZUp0S91WiqWXssbffbcIZdAhl-5dPLDxOwxa74AamSadOLtpmuQvAyHZGwcmaJe14VbFlrm9m-dbUL7lEmmv-M_/s1600/IMAG0601.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTTTWpNWwbuxvq5mCh5vBfNV_-c1Ol-og7_JAr6LFwNoDQStT7pz1clZUp0S91WiqWXssbffbcIZdAhl-5dPLDxOwxa74AamSadOLtpmuQvAyHZGwcmaJe14VbFlrm9m-dbUL7lEmmv-M_/s320/IMAG0601.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "arial" , "helvetica" , sans-serif;">These guys won so hard, it's true.</span></td></tr>
</tbody></table>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Aftermath and Emotion</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">We had others come through our booths attempting to replicate that feat, many of them having watched part of the epic run, but none came close. One group managed Wave 16 on their second attempt, but we had to boot them in favour of bringing more people through eventually. </span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Two of our heroes came back on Sunday to talk with us about our plans for the future. I'd like to say we had everything they ever wanted covered, but everyone knows indie dev can't work like that. It hurts to have to tell people, well, perhaps not "no" but "we'd like to but we can't afford it right now."</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">But seeing their excited faces and hearing their super intense tactical talk was absolutely like nothing else I've experienced. I enjoyed working for Microsoft, but no offense, spreadsheets can't compare to seeing people viscerally love what you've built. It's the most amazing feeling in the world. That moment alone made all the difficulties of PAX East 2016 worthwhile to me.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">So thank you, strangers, for coming to play our indie game at our indie booth, and showing <i>us </i>how to play. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev</span>,<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> <span style="font-family: "arial" , "helvetica" , sans-serif;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDevelopment, #PAX</span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com1tag:blogger.com,1999:blog-2814591084344141656.post-65085222356193018132016-04-19T05:43:00.000-07:002016-04-19T05:43:51.241-07:00[IndieDev] PAX East Bound! Marketing and Conventions<span style="font-family: Arial,Helvetica,sans-serif;">Just a quick update post, Eon Altar will have a booth with the <a href="http://indiemegabooth.com/project/eon-altar/">Indie Megabooth for PAX East</a> this year. I'll be headed out with the band to help man the booth, which is a super fun time. This will be my third convention for Eon, so I'm definitely getting the whole booth thing down. It helps that I have a few years of retail employment under my belt, as well. Not something I expected to ever use as a software developer, but hey, whatever works, right?</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Qc_fgMQaJnBZV8atepMn0_xQtJeRLCYlJufFyselvd01NPWVpLAmB8J4_tph6FyC1XMU_RGIMQCOxavv6jMNpMVsxmph-i6cr-1_O39CMNEhxCD1byBYH-9sXyNA7eoe_gaqw64P5Kk2/s1600/11902495_919546468115878_8657054494638528880_n.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Qc_fgMQaJnBZV8atepMn0_xQtJeRLCYlJufFyselvd01NPWVpLAmB8J4_tph6FyC1XMU_RGIMQCOxavv6jMNpMVsxmph-i6cr-1_O39CMNEhxCD1byBYH-9sXyNA7eoe_gaqw64P5Kk2/s320/11902495_919546468115878_8657054494638528880_n.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Our PAX Prime 2015 Booth, before the floor opened</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">Our booth should be even better than our PAX Prime booth, which was awesome but cramped. We've learned more about good ways to present our game, and just have more space in general. We also have a bit of help now from folks who actually have marketing experience, such as Kristen Beane of <a href="http://thegamedoctors.co/">The Game Doctors</a>, which should also help.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Speaking of help, we have Ali Baker, of Machinima and RoosterTeeth fame also helping us with our booth this time, which is pretty cool.</span><br />
<div align="center">
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
<span style="font-family: Arial,Helvetica,sans-serif;">Miss <a href="https://twitter.com/alibakes">@alibakes</a> & <a href="https://twitter.com/Its_Pink">@Its_Pink</a> are driving from Austin to set up our booth for <a href="https://twitter.com/hashtag/PAXEast?src=hash">#PAXEast</a> and had a little BBQ break! <a href="https://t.co/uJpiXuBB2T">pic.twitter.com/uJpiXuBB2T</a></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">— Flying Helmet Games (@FHG_Games) <a href="https://twitter.com/FHG_Games/status/722203021686349825">April 18, 2016</a></span></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script></div>
<span style="font-family: Arial,Helvetica,sans-serif;">A lot of this comes down to as indie developers, we may know how to make games, but marketing and presenting them is another matter entirely. From the work I've done so far on the marketing side, I literally have no idea what I'm doing. I can throw together neat features in relatively shorts amount of time, I can help design our UI and mechanics, but hawking our wares? Shooting in the dark.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">However, I'm still (sorta) the face of the dev team, being the most active member on social media, our forums, tech support, blog posts, and the like. And I plan on continuing in that role! But it'll be great to have people who do this sort of thing for a living to help guide us.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNFlMfxF2TTn50f10UAz1NDtrHzJf8tzOBR_xK5OBz0nihfkFFgBct3R9RvgP9-7UhEfBbqnFVNA4K7M5JATirr3lstoZ78WoqhKBDYwkpKndFoZvOrwJ0nygTILUxo9bZLYsWbXz-rvKj/s1600/EonAltar-CouchCoop.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNFlMfxF2TTn50f10UAz1NDtrHzJf8tzOBR_xK5OBz0nihfkFFgBct3R9RvgP9-7UhEfBbqnFVNA4K7M5JATirr3lstoZ78WoqhKBDYwkpKndFoZvOrwJ0nygTILUxo9bZLYsWbXz-rvKj/s320/EonAltar-CouchCoop.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Arial,Helvetica,sans-serif;">Marketing the meta-game around couch co-op is...difficult</span></td></tr>
</tbody></table>
<span style="font-family: Arial,Helvetica,sans-serif;">So yeah, PAX East, woo! We should also have a fun patch dropping around the same time that has been "Coming Soon!" since our initial Early Access release, so keep an eye out for that too! </span><br /><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">IndieDev</span>,<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> <span style="font-family: "arial" , "helvetica" , sans-serif;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDevelopment, #PAX</span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com0tag:blogger.com,1999:blog-2814591084344141656.post-47730411404389857382016-04-10T18:21:00.000-07:002016-04-10T18:21:45.949-07:00[WoW] Classic Blizzard-Run Servers? Code, Logistics, Marketshare Point To "No"<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://tagn.wordpress.com/2016/04/08/blizzard-nostalrius-and-the-classic-server-question">Wilhelm over at TAGN had a great post</a> the other day on Blizzard's shutdown of the Nostalrius Classic WoW private servers, talking about the potential market and reasons why or why Blizzard might not go the route of creating their own Classic WoW server.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Personally I'm of the opinion that no, we won't see Blizzard-run Classic WoW servers anytime soon. Mostly because of code, logistics and possibly not enough profit to make the investment risk worthwhile.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Code</b></span></span><br />
<blockquote class="tr_bq">
<span style="color: #00c0ff; font-family: "arial" , "helvetica" , sans-serif;">"...you get the old hardware, the old code, because the old code is meant to
run on the old hardware, the old data, the old bugs, all that kind of
stuff. Of course the natural expectation is that well you would fix all
that stuff." <a href="http://massivelyop.com/2016/04/07/wow-emulator-nostalrius-sunset-renews-calls-for-retro-wow-servers/">-- Tom Chilton</a></span></blockquote>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The biggest barrier for Blizzard's entry is probably just getting old code up and running. As Tom Chilton's quote above indicates, assuming they could get the old code out of their backups--depending on how their code repository stores 10 - 14 year old data, which is a huge potential issue by itself, especially around art assets--they also need to rebuild the old hardware for the server code. There'll be code that relies on timing or performance characteristics of CPUs, RAM, internal networking, etc. </span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">And if they couldn't get the old hardware again, they'd have to fix any number of potential bugs that would be caused by moving to a new hardware profile. Trying to figure out if that timing issue is a bug that existed in Vanilla, or due to hardware modifications.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">That also doesn't take into account that their server OS--likely a Linux
or UNIX variant--has had 10+ years of security, performance, and API
tweaks. They certainly don't want to use a 10 year old OS for security issues, but the code may not even compile correctly anymore because OS modules have evolved over the years. Heck, for both client and server, they may need to be adjusted for newer compilers in general. Not to mention that Blizzard's current build pipe has evolved such that it would take more work to adjust Vanilla WoW development to fit the build pipe.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Speaking of security, WoW servers would have had a number of bug fixes over the years for security and anti-cheating technology that would be wholly missing from Vanilla WoW. Blizzard certainly wouldn't want to ship security holes even if they decided the anti-cheating tech wasn't worth the effort, just because it could potentially leave the rest of their network compromised. Those bug fixes would have to be identified and ported back.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Also, Blizzard's Authentication servers have evolved over the years, including support for 2-Factor Auth and likely protocol changes to the auth service itself for security reasons. Those would have to be back-ported into Vanilla WoW.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Then there's also the client itself, which would possibly need tweaks to handle newer graphics cards. Theoretically DX11 and DX12 are both backwards compatible with DX9, but that's not to say there aren't graphics card specific issues. Even on Eon Altar for Unity we've hit the occasional graphics card that just barfs on things and needs a specific solution. The cost here is almost entirely on the test team rather than the engineering team, but it's still not cheap.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">There's no Battle.NET integration in Vanilla WoW on the client or the server, so that's another feature they'd have to port, and that one's a doozy. Part of it likely would come with the auth server changes (since they hook up with BNet), but current friend lists across games would need to be re-implemented.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">It also ignores any <i>further</i> bug fixes to the game. These might include networking optimizations to make the game more responsive/efficient, content issues, systems bugs, and so on. While folks might be okay with Blizzard shipping a buggy game as is for nostalgia value, Blizzard's quality bar internally is probably set higher than that.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">None of the above is <i>impossible</i>. Just an immense amount of work, and not all of it easily identified, especially in the cases of security and hardware bugs. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Logistics</b></span></span><br />
<blockquote class="tr_bq">
<span style="color: #00c0ff; font-family: "arial" , "helvetica" , sans-serif;">"But kind of maintaining that many different versions of the
game is just not really feasible. Particularly in a world where people
that are playing right now really want more content, not less." <a href="http://massivelyop.com/2016/04/07/wow-emulator-nostalrius-sunset-renews-calls-for-retro-wow-servers/">-- Tom Chilton</a></span></blockquote>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Let's say we've identified all the potential code issues and now it's a matter of assigning people to perform the work. If we pretend that five programmers are sufficient--say, 1 senior lead, and a junior plus mid-level programmer pair for both client and server--for a year, you're talking about $600,000 to $750,000 for salary, benefits, HR, legal, equipment, and so on.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">That also doesn’t include testers, build teams, deployment teams, server hardware, server ops people, data center hosting costs, marketing, and more I'm likely missing. Testing alone would be a massive endeavor, and a lot of the testing would have to be extremely technical in nature given the hardware and security issues we've potentially identified.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">All of those people could be working on the next Hearthstone or Overwatch instead, so there's an opportunity cost here that's harder to quantify. Or, even working on more current WoW content as Tom Chilton mentions above. Splitting their development team when they can barely put out content fast enough as is doesn't seem wise.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">I'll ballpark a figure of $2M over the course of a year for this project, though I may be undervaluing it significantly. I don't have good figures on how much marketing, testing, or data center hosting costs. Suffice to say, MMOs are expensive, even if you're starting with an existing code base.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Profit vs. Risk</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">If $2M is the price to beat, then Blizzard would have to sell ~133k subscription months to break even at $15/month, and that's if we ignore taxes. If I ballpark a ~16% corporate tax rate from these <a href="http://csimarket.com/stocks/singleProfitabilityRatios.php?code=ATVI&itx">investor values</a>, they're actually looking closer to ~155k subscription months to break even <i>on the initial layout</i>. That doesn't take into account operating costs for support, test, devops, community managers, game masters, data center hosting costs after the initial deployment, further marketing, and so on.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Nostralius was free, but they claimed to have 800,000 registered users and 150k active users on their server. <a href="https://tagn.wordpress.com/2010/08/17/what-do-you-do-with-a-pirate-server/">Alyson Reeves used micro-transactions to net a cool $3M</a> from her private server before she got shut down hard. So there is clearly money to be made, but the question is, is it enough?</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">If we assume a 100% retention rate for Nostralius customers transferring to Blizzard--which is ridiculous at face value--then Blizzard could likely break even, and make a little profit potentially.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">It's not really an apples-to-apples comparison, mind, because Nostralius was in a gray area at best, and a Blizzard run server could garner customers uncomfortable with gray or black market activities, similar to how Blizzard did the same with gold buyers and the WoW Token. But it's also not a fair comparison because it's highly doubtful all of those people would pay $15 a month to play Vanilla WoW again. Similar to how RIAA claiming that 100% of pirated music count as lost sales is <span style="font-family: "arial" , "helvetica" , sans-serif;">spurious</span>--many of those people wouldn't have paid for the music regardless.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">As an extremely rough guess, <span style="font-family: "arial" , "helvetica" , sans-serif;">i</span>f we assume that a Vanilla server probably would mostly get 1 month tourists who wanted to just get that warm fuzzy nostalgia feeling, then if we pretend that 650k of those Nostralius users were 1 monthers and the 150k active users were 6 monthers, that turns out to be about 1,550k subscriber months. Or 1,302k after 16% tax, or 1,169k after the initial layout is subtracted. $17.5M is nothing to sneeze at if subscriber months netted $15 each (without taking into account operating costs).</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">But it's also a dead-end. They can't monetize Vanilla WoW the same way they can monetize Hearthstone, Heroes, or WoW. They can't release new content for it the same way WoW expansions work today, short of repeating the process for TBC, Wrath, etc. Also, no WoW Tokens, no cash shop, and do we really think Vanilla subs will actually pay $15 a month for an old product?</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">So yeah, they could grab a decent chunk of change for a one-time fee, <span style="font-family: "arial" , "helvetica" , sans-serif;">but </span>it's not a slam dunk and it's not actually that much as far as a Blizzard investment is concerned. It'd also be interesting to see if they could actually get enough employees interested in such an endeavor that they'd choose it over a newer project with more opportunities, and as mentioned in the previous section, the opportunity cost and potential of taking these employees who could be building new stuff could be lost profit as well.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: large;"><b>Signs Point To No</b></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpPS3o1EQJ1wTuJo_jxeKpQeJdyb38ag0f9162BY3AsSQZ04yQ-4R0__OByxYSwbyZc1auKCDpmYtW8ECxh9bb-xzCPwgcZujvx8FEOalx_eKrVPb-wlUij2TAOb7vKIap1w-JB1ELgMoM/s1600/outlooknotsogood.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpPS3o1EQJ1wTuJo_jxeKpQeJdyb38ag0f9162BY3AsSQZ04yQ-4R0__OByxYSwbyZc1auKCDpmYtW8ECxh9bb-xzCPwgcZujvx8FEOalx_eKrVPb-wlUij2TAOb7vKIap1w-JB1ELgMoM/s320/outlooknotsogood.jpg" width="320" /></a></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;">There's a <i>lot</i> of things to keep in mind, and I'm sure there's a lot things I missed.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Assuming Blizzard could actually get the correct code, get the hardware, and get everything set up for the modern Internet and modern systems, they could probably make a neat profit. But because there's little to no room for growth after that layout, I don't see them making a huge investment here. It just doesn't seem worth it in the grand scheme of things.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">At the end of the day, Blizzard--and all video game companies--are still a business. </span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #151515;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">Blizzard</span>, #<span style="font-family: "arial" , "helvetica" , sans-serif;">WoW</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">, <span style="font-family: "arial" , "helvetica" , sans-serif;">#<span style="font-family: "arial" , "helvetica" , sans-serif;">GameDevelopment</span></span></span></span></span></span></span></span>Talarianhttp://www.blogger.com/profile/17684944568000522986noreply@blogger.com4