Tumgik
#as inefficient as my dps rotation
fooltofancy · 10 months
Text
Tumblr media Tumblr media
cries in built this room three feet too wide
1 note · View note
sword-dad-fukuzawa · 3 years
Text
a screaming hate letter to Diluc Ragnvindr
Disclaimer: Diluc's great. Most of my outrage is manufactured, as per usual. That done, onward!
Diluc, what the fuck are your auto attacks. And I don't mean this in a meta sense because I'm well aware you're one of the best DPS characters in-game, I mean this in a lore sense. You're one of Monstadt's best fighters, yes? Child prodigy who made Cavalry Captan before 18 for some obnoxious reason? Yes? Great, brilliant, now what the fuck. Long post ahead.
Claymore physics in Genshin are already questionable at best, to be fair, and I'm going to take that into account. The swords are comically large and impractical. You're going to be running into balance issues even if you're strong enough to lift the sword itself, never mind swing it around. So characters like Razor, who are barely taller than their swords, end up having to hold on for dear life.
Screenshots from this video.
Tumblr media
Case in point, Razor's final auto. Though...Razor's final auto is probably the most egregious out of all the claymore users. Poor kid is getting flung into the air.
Now, is Diluc any better? I mean, yes, mildly, at least when compared to best boi Razor. (Is he the best? No, actually, that's Chongyun, who doesn't actually overbalance and stays mostly in control throughout his autos.)
Anyway, let's break it down.
Tumblr media
First slash--acceptable. Look, he's grounded with a wide stance, the blade isn't tilting wildly, and he's balanced and in control.
Tumblr media
This is his stance after his two-handed uppercut. Now this is questionable. He's on his back leg, holding his sword with his right hand, his left isn't even on guard. He's basically left himself open and his wrist is at a very scary angle. He's just asking to overbalance and snap it.
Next, Diluc turns, grabs his sword with both hands...
Tumblr media
Yikes. Diluc, you are this close to overbalancing--your center of mass is over open air, for fuck's sake. If there was a rock, just right by his foot, he'd trip and fall on his face. Ow.
Tumblr media
WHAT IS THIS??? DILUC??? WHAT IS THIS??? Look at him! Ragdoll-lookin ass. LOOK. Not only is he using his sword one handed when claymores are TWO-HANDED weapons, but he's wasting energy.
Here's what I mean. Look at the distance between the sword and his shoulder, which is ostensibly the point of rotation, and the angle of the sword itself. It's near-dragging on the ground and his center of mass is behind him. He's having to whip himself forward. Sure, it makes for a more powerful attack, but it also means if he gets interrupted, he's falling on his ass, full stop.
Also, this poor man's wrist, and the fact that this sort of forward rotation with a sword as heavy as a claymore puts him at risk of pulling something in his shoulder. AND. AND AND AND. He lifts his foot up into the air in order to leverage the spin better. He's on one leg and using one arm in combat. He's just asking to fall over.
Saints, Diluc.
Tumblr media
You're going to pull a back muscle.
Now, as for his charged attacks!
Tumblr media
Diluc, babe. Come on. Look at the way he's leaning--backwards to compensate for the swing as he twirls. Twirling? In combat? Inefficient, dangerous, and literally not something that anyone does if they want to live.
Tumblr media
Eula??? First of all, his sword is behind him mid-combat. The idiocy of this cannot be overstated and should be obvious. Secondly, he's still twirling. Twirls are expensive--they cost energy, efficiency, and time. It's not really easy to see unless you're watching it, but he also switches hands on the guard during the spin, which is just asking to fuck up and let the sword go flying. Also! His stance! His feet are together! Diluc, your balance issues are EGREGIOUS.
Tumblr media
And finally, his ending stance. His chest is wide open for stabbing, his sword is too far behind him to use it to block if someone takes advantage of the opening, and he's balanced too far forward.
I'm not going to address the tomfoolery of doing a flip midair for the third slash in his skill, because that's just video game physics, but the rest of this!! The rest of this PAINS ME!!
Anyway, yes, there's my screaming rant about Diluc's fighting style. Thank you for reading, and I hope you have a wonderful day.
41 notes · View notes
elfyourmother · 7 years
Text
you know while i’m on the subject, healers are full of shit with this martyr complex and tbh it gets on my nerves, and i say that as someone that’s healed a lot before.
i spent years in WoW and before that FFXI and City of Heroes and fucking MUDs, doing all roles, maining all roles at various times, often through cutting edge endgame content. tanking, damage dealing, support, healing, you name it. my goal when I started playing online games in the dinosaur era of CircleMUD on telnet was to learn as many roles as I could, get comfortable/proficient in at least most of them, so I could bring flexibility. i also tend to play 50-11 characters because I get bored easily, so I always have toons geared and ready to go for whatever anyone needs. so I’ve seen and done it all, in a variety of roles. i’m a gemini, sue me.
so believe me when i say everyone was bad/stupid/frustrating at times and made me life annoying, no matter what role they were in. yes, even the precious long-suffering healers. tbqh the only reason dps always gets singled out is because there’s a lot more of them to scapegoat. and when you’ve got a bigger pool of people, obviously there’s going to be more standout fuckups, it’s just simple math. but it’s not because the job is inherently easier. in the hardest content there is no easy role, lol. you want easy? play a disc priest or a holy paladin in WoW circa patch 3.3.5. i literally used to heal 5 man heroics one handed while eating my dinner. ICC pugs I healed as healadin while watching tv. my cat could have done it, literally nothing about it was inherently any more mentally taxing than a dps waiting for procs to light up. in some cases, it was less taxig.
yeah, dumb dps stand in fire a lot--so do dumb healers staring at health bars rather than the fight. i’ve seen healers go oom on fights where they shouldn’t and it causes a wipe, blaming people for not using their defensive cooldowns or w/e, and then logs got pulled up and they’ve been using the most inefficient heals in their toolbox or overhealing unnecessarily because they can’t unclench enough to triage (this is a really common thing with new healers). healers’ shit stinks too, sometimes! I promise! and I defy any of these “lol dps are so braindead anyone could do it” princesses to play an old school enhance shaman or cat druid before their rotations were gutted and dumbed down. they might stand in fire a time or two also while trying to figure out wtf they’re doing. I know because I saw it happen constantly when healers were asked to dps on certain fights.
meanwhile tanks fuck over dps by not positioning mobs correctly (by all means, let the damn dragon breathe on the entire group and make the 4-24 other people move around rather than spend 2 seconds turning him away at the start), or moving around like crazy so melee dps can’t get proper rotations in, or kiting mobs in ways that make it impossible for dps to actually hit it without standing in the infamous fire. they break cc w aoe taunts/attacks, adds start wailing on them/the raid and then they AND healers blame dps for the wipe. (seen this shit almost daily in cataclysm heroics) OTs don’t pay attention to taunt rotations and get the MT killed from taking too many stacks of Fuck You Juice.
what i’m saying here is that everyone, in every role, fucks up from time to time and makes life annoying for their teammates. none of us are omniscient god-like AIs with perfect reaction time 24/7/365, we’re all human and make mistakes. we were all new to a game once upon a time and had to learn and fail in order to get better.  and healers aren’t precious fucking snowflakes. it’s definitely a thankless job, i’ll be the last to say it’s not. and it sucks and is frustrating to go unappreciated so much. but guess what? nobody thanks great dps or tanks either. you know how many times i was thanked as a dps when a tank died in some five man and I dropped into bear/blood presence/wevs and took over tanking or when a healer died and I spammed my offspec heals/blew brez and kept everyone alive so the boss was killed anyway? unless i was playing with friends or guildies, not very often. but you can be damn sure if I misclicked my mouse or tab targeted wrong to pull something by accident, i got yelled at and called bad.
MMO players can be really self-aggrandizing people who tend to think the raid rises and sets on the buttons they alone push, without realizing it’s a team effort--until it’s time to blame someone for things going wrong, because no one ever takes responsibility for their own mistakes. it’s always the dumb dps fault, or the bad healer, or the noob tank who needs to git gud. nobody stops to consider that maybe the wipe happened because it’s 3 am and everyone’s too exhausted to have decent reaction time or situational awareness and it needed to get called 2 hours ago. or that maybe that “dumb dps” getting hit by the tornado has depth perception problems. or that maybe people died because they’re not geared enough for the fight and the raid needs to farm easier content to get everyone up to speed. or that everyone needs to learn the fight better. it’s rarely ever one person’s fault when disaster dominoes fall.
i feel like most of this salt would be solved if 1) people didn’t stay healing long past the point of burnout so they get miserable and make everyone around them miserable and view everything so fucking cynically all the time and 2) people who play nothing but healers learn to play another role or two or five so they get some perspective and realize that virtually everything they complain about as healers is not a frustration unique to their chosen role, and/or that other roles see and experience behavior in others that can be equally frustrating, including in the healers
15 notes · View notes
faizrashis1995 · 5 years
Text
Top 10 Most Common Mistakes That Android Developers Make: A Programming Tutorial
Common Mistake #1: Developing for iOS To my great pleasure, this Android mistake is far less common nowadays (partially because clients are beginning to realize that the days when Apple was setting all the design standards are long gone). But still, every now and then, we see an app that is an iOS clone.
Don’t get me wrong, I’m not an Android programming evangelist! I respect every platform that moves the mobile world a step forward. But, it’s 2014 and users have been using Android for quite a while now, and they’ve grown accustomed to the platform. Pushing iOS design standards to them is a terrible strategy!
Unless there is a super good reason for breaking the guidelines, don’t do it. (Google does this all the time, but never by copy-pasting.)
Here are some of the most common examples of this Android mistake:
You should not be making static tabs, and they don’t belong on the bottom (I’m pointing at you Instagram). System notification icons should not have color. App icons should not be placed inside a rounded rectangle (unless that’s your actual logo ex. facebook). Splash screens are redundant beyond the initial setup/introduction. Do not use them in other scenarios. Lists should not have carets. These are just a few of the many other small things that can ruin the user experience.
Common Mistake #2: Developing for Your Android Device Unless you are building a kiosk/promo app for a single tablet, chances are your Android app won’t look good on every device. Here are a few Android programming tips to remember:
Density-independent pixels (dp) are different than normal pixels (px). Resources are included multiple times to account for different densities and orientations. 9-patch drawables are stretched to fit the screen. There are literally thousands of possible scenarios, but after a while you develop a sense for covering them all with a handful of cases.
You don’t own thousands of devices? Not a problem. The Android Emulator is super good in replicating physical devices. Even better, try out Genymotion, it’s lightning fast and comes with a lot of different popular preset devices.
Also, have you tried rotating your device? All hell can break loose…
Common Mistake #3: Not Using Intents Intents are one of Android’s key components. It’s a way of passing data between different parts of the app or, even better, different apps on the system.
Let’s say you have a gallery app that can share a download link to some images via SMS. Which of the two options seems more logical?
Option 1:
Request the SEND_SMS permission.
 <uses-permission android:name="android.permission.SEND_SMS" /> Write your own code for sending SMS using the SmsManager. Explain to your users why your gallery app needs access to services that can cost money, and why they have to grant this permission to use your app. Option 2:
Start an SMS Intent and let an app designed for SMS do the work
 Intent sendIntent = new Intent(Intent.ACTION_VIEW);  sendIntent.setData(Uri.parse("sms:" + telephoneNumber));  sendIntent.putExtra("sms_body", x);  startActivity(sendIntent); In case that you have any doubts, best solution is option 2!
This approach can be applied to almost anything. Sharing content, taking pictures, recording video, picking contacts, adding events, opening links with native apps, etc.
Unless there is a good reason to make a custom implementation (ex., a camera that applies filters), always use Intents for these scenarios. It will save you a lot of programming time, and strip the AndroidManifest.xml of unnecessary permissions.
Common Mistake #4: Not Using Fragments A while ago in Honeycomb, Android introduced the concept of fragments. Think of them as separate building blocks with their own (rather complex) life cycles that exist inside an Activity. They help a lot with optimizing for various screens, they are easily managed by their parent activity, can be reused, combined and positioned at will.
Launching a separate activity for each app screen is terribly inefficient, since the system will try to keep them in memory as long as it can. Killing one won’t free the resources used by the others.
This Android programming tutorial recommends the proper use of fragments to make your app more efficient.
Unless you want to dig deep into the Android core and read this article, advocating against fragment usage, you should use fragments whenever possible. It basically says that fragments and cursor loaders have good intended purpose, but poor implementation.
Common Mistake #5: Blocking the Main Thread The main thread has a single purpose: keeping the user interface responsive.
Although the science behind measuring the frame rate our eyes/brain can perceive is complex and influenced by a lot of factors, a general rule is that anything below 24 fps with delay greater than 100 ms won’t be perceived as smooth.
This means that the user’s actions will have a delayed feedback, and the Android app you have programmed will stop responding. Stripping the user of his control over the app leads to frustration, frustrated users tend to give very negative feedback.
Even worse, if the main thread is blocked for a while (5 seconds for Activities, 10 for Broadcast Receivers), ANR will happen.
As you learn Android programming, you will come to know and fear this message.  Follow these Android programming tips to minimize this occurrence.
This was so common in Android 2.x, that on newer versions the system won’t let you make network calls in the main thread.
To avoid blocking the main thread, always use worker/background threads for: 1. network calls 2. bitmap loading 3. image processing 4. database querying 5. SD reading / writing
Common Mistake #6: Reinventing the Wheel “OK, I won’t use the main thread. I’ll write my own code that communicates with my server in a background thread.”
No! Please don’t do that! Network calls, image loading, database access, JSON parsing, and social login are the most common things you do in your app. Not just yours, every app out there. There is a better way. Remember how Android has matured and grown as a platform? Here’s a quick list of examples:
Use gradle as a build system. Use Retrofit / Volley for network calls. Use Picasso for image loading. Use Gson / Jackson for JSON parsing. Use common implementations for social login. If you need something implemented, chances are it’s already written, tested and used widely. Do some basic research and read some Android programming tutorials before writing your own code!
Common Mistake #7: Not Assuming Success Great. We have learned that there is a better way for handling long running tasks, and we are using well documented libraries for that purpose. But the user will still have to wait. It’s inevitable. Packages are not sent, processed and received instantly. There is a round trip delay, there are network failures, packages get lost, and dreams get destroyed.
But all this is measurable. Successful network calls are far more likely than unsuccessful ones. So why wait for server response before handling the successful request? It’s infinitely better to assume success and handle failure. So, when a user likes a post the like count is immediately increased, and in unlikely event that the call failed, the user is notified.
In this modern world immediate feedback is expected. People don’t like to wait. Kids don’t want to sit in a classroom obtaining knowledge that has uncertain future payoff. Apps must accommodate to the user’s psychology.
Common Mistake #8: Not Understanding Bitmaps Users love content! Especially when the content is well formatted and looks nice. Images, for instance, are extremely nice content, mainly due to their property of conveying a thousand words per image. They also consume a lot of memory. A lot of memory!
Before an image is displayed on the screen, it has to be loaded into the memory. Since bitmaps are the most common way to do this, we’re going to provide an Android programming guide for the whole process:
Let’s say you want to display an image on your screen that you just took with your camera. The total memory needed for this is calculated with the following formula: memory_needed_in_bytes = 4 * image_width * image_height;
Why 4? Well, the most common / recommended bitmap configuration is ARGB_8888. That means that for each pixel we draw, we need to keep 8 bits (1 byte) for the alpha, the red, the greed and the blue channel in memory, in order to properly display it. There are alternatives, like the RGB_565 configuration that requires half the memory than ARGB_8888, but loses the transparency and the color precision (while maybe adding a green tint).
Let’s assume you have a brand new device with full HD screen and 12 MP camera. The picture you just took is 4000x3000 pixels large and the total memory needed to display it is: 4 bytes * 4000 * 3000 = 48 MB
48 megabytes of your RAM just for a single image!? That’s a lot!
Now let’s take the screen resolution into consideration. You are trying to show a 4000x3000 image on a screen that has 1920x1080 pixels, in worst case scenario (displaying the image full screen) you shouldn’t allocate more than 4 * 1920 * 1080 = 8.3 MB of memory.
Always follow the Android programming tips for displaying bitmaps efficiently:
Measure the view you’re showing your images in. Scale / crop the large image accordingly. Show only what can be displayed. Common Mistake #9: Using Deep View Hierarchy Layouts have an XML presentation in Android. In order to draw content, the XML needs to be parsed, the screen needs to be measured, and all the elements need to be placed accordingly. It’s a resource- and time-consuming process that needs to be optimized.
This is how the ListView (and more recently the RecyclerView) works.
If a layout has been inflated once, the system reuses it. But still, inflating the layout must happen at some point.
Let’s say you want to make a 3x3 grid with images. One way of doing this is a vertical LinearLayout containing 3 LinearLayouts with equal weight, each of them containing 3 ImageViews with equal weight.
Some Android programming beginners don’t always make the best use of LinearLayouts.
What do we get with this approach? A warning that “nested weights are bad for performance”.
There is a saying in the Android programming world, that I just made up: “With little effort all hierarchy can be flattened”.
In this case RelativeLayout or GridLayout will efficiently replace the nested
Common Mistake #10: Not Setting the minSdkVersion to 14 Well, this is not a mistake, but it is bad practice.
Android 2.x was a huge milestone in developing this platform, but some things should be left behind. Supporting older devices adds more complexity for code maintenance and limits the development process.
The numbers are clear, the users have moved on, the developers shouldn’t stay behind.
I’m aware that this doesn’t apply for some big markets with old devices (ex. India), and setting the minSdkVersion to 14, on the Facebook App, means leaving couple of million users without their favorite social network. But, if you are starting fresh and trying to create a beautiful experience for your users, do consider eliminating the past. Users that don’t have the resources, or feel the need to upgrade their device/OS, won’t have the incentive to try out a superior version of your Android app and ultimately spend money on it.[Source]-https://www.toptal.com/android/top-10-most-common-android-development-mistakes
0 notes
unfocusedwill · 5 years
Text
Build: Battle Priest (DPS)
I’ve spent most of this tier running dps builds during farm. Many bosses in TEP have such wonky healing requirements that it’s often possible to drop a healer or “.5″ heal with one healer dpsing for most of the fight. Traditionally this was the 3x Igneous Potential battle shaman, but the introduction of essences and Mechagon in 8.2 has made it possible for many healer specs to successfully be a “battle healer.” This is a post on the builds that I ultimately settled on running.
Disc vs. Holy
As of 8.2, disc is about 5-10k dps higher than holy running full dps setup and doing no ramps. Schism affecting Cyclo and Crucible is a major factor. Note that this is being nerfed in 8.3 (as it should be).
Other differences between disc and holy from a .5 healer context is that holy can scale their healing output more flexibly while disc brings DR/EHP from barrier/LB and PS.
Best Battle Healer?
Personally, I think disc is actually the worst choice if your raid is running a battle healer. This is because whether it’s a mini ramp or big ramp, disc still has to commit to windows of atonement healing. If part of that window is unneeded overheal, it’s created an inefficient overlap. Other specs have an easier time of easing off the healing as soon as it’s not needed. The whole point of running a .5 healer is to optimize the raid comp by converting extra hps into dps that helps kill the boss faster, without sacrificing the safety net of having healer CDs or additional healing if needed. I ramble more in depth about optimizing healer dps in this post.
Disc dps also shares a lot of build similarities with a standard raiding disc setup because you already want to buff damage as part of disc healing. You would gain less dps by having the disc priest go full dps than you would by having another spec go full dps. At the time of this post, looking at WCL for Mythic Azshara (a fight that commonly see the use of a battle healer) you could gain about 15k from a disc going full dps, 20k from paladin, 20k from hpriest, 20k from druid, 30k from shaman, and bench your mistweaver (sorry). These are rough estimates based on the difference between top dps and 75th percentiles for each spec. Note that for a paladin dpsing really just means putting your holy shocks into the boss instead of on your allies!
The reason I’m using top dps for this estimate as opposed to 90 or 95 percentile (to lessen the effect of outliers caused by padding) is because some non-meta specs, such as holy priest, are so underplayed at Mythic endgame that the sample size is too small to draw from a lower percentile. Out of 192 publicly logged holy priest Azshara ranks, only 3 have dps above 10k. THREE. Anecdotally it doesn’t feel difficult at all to reach 10k dps while healing normally if you have any dps essence and/or trinket, so take those logs with a grain of salt.
Anyways, back to actual builds before I get too off topic.
Battle Disc
As mentioned earlier dps disc is very similar to regular disc. In fact, it’s likely that you’re already running the correct gear, talents, and trinkets.
Stat Priority: Crit/Vers > Haste > as little mastery as possible. Vers is good because trinkets and essences scale off vers and they are a big part of your dps. Haste is relatively less important.
Talents: No change. If you don’t need to do any Evang ramps, you could even consider taking LB. (I don’t recommend LB on Orgozoa.)
Trinkets: The biggest Cyclo you can get, and a Lure.
Essences: Crucible major, C&S minor, and choice of Vision/ERT minor. ERT procs off healing - so ERT is only a good choice if you intend on weaving in some healing semi frequently. I prefer Vision because the Shadowfiend CDR is impactful on its own, and the flat vers provides a constant benefit. I do not recommend Lucid because its vers proc can be pretty random and might not line up well with your Crucible/trinkets. Based on my own logs Lucid’s vers uptime is 20% or less, which actually makes it less average vers gained than Vision as well.
Azerite: Anything that buffs damage - preferably some combination of Undulating Tides, Death Throes, M+ traits, and inner rings. UT is in theory the most damage outright; whether it’s worth stacking (namely, whether to use Incubator’s Bellcap) would depend on how well you’re able to keep your health above 50%. For example, Za’qul is notorious for proccing UT!
Important tips:
(Until 8.3) Always combine Schism with Cyclo and Crucible. After 8.3 nerf, use them outside of Schism.
Never cap on Crucible charges.
Wait for the first Crucible DoT to expire before casting a second charge of Crucible on the same target.
If you’re not going to cap on Crucible charges, it could be worth waiting for C&S stacks before spending your second charge.
Use Penance to spread PtW where possible.
Halo is arguably valid if you can time it to hit multiple adds. However I’d say this is a case by case basis and borders on padding; PtW is better single target or sustained multidot.
Holy Nova can be the play if there’s enough adds in range, but unless it’s an insane number of adds (e.g. Azshara’s Devoted), you’re probably better off prioritizing Schism’d single target over Nova spam. I’m sure there’s a mathematical breakpoint at which Nova is “more dps” but again as per the padding discussion, it might not be the most beneficial for your raid.
Battle Angel (Holy)
(I hope you don’t actually turn into an angel during the pull otherwise you’re doing it wrong.)
Stat Priority: Crit/Vers > Haste > as little mastery as possible. Same reasoning as disc.
Talents: Halo. Apotheosis if Salv isn’t needed anywhere.
Trinkets: The biggest Cyclo you can get, and a Lure. Even without Schism Cyclo is still great.
Essences: Same as disc. Maybe Lucid minor. Vision isn’t as standout for holy because the CDR is for Hymn, but the raw vers is still good if you don’t want the rng of Lucid procs. (Or if you want to Hymn more frequently, I guess.)
Azerite: UT and M+ traits. None of holy’s spec traits improve damage, so you’re pretty free to just go for whatever stat proc or damage proc universal traits you’re able to get your hands on. Note this means that at least one of your outer rings per azerite piece won’t contribute to dps, which is ok. Try to go for good healing traits in those rings so they’re useful for those moments where you do need to heal.
Important tips:
Prioritize keeping Holy Fire at 2 stacks over anything else in your rotation, but don’t go out of your way to fish for HF resets.
If you’re already at 2 HF stacks you can be conservative and wait for pandemic before refreshing.
Use your trinkets and Crucible charges before entering Apotheosis.
Halo can be delayed to hit more targets.
Holy Nova can also trigger HF resets. In a 4+ target situation that means you can fill with Nova while maintaining HF on a primary target. (Notable example: Orgozoa.)
0 notes