quisquous / cactbot

FFXIV TypeScript Raiding Overlay
Apache License 2.0
792 stars 379 forks source link

Proposal: Adding Ways to Differentiate Timeline Mechanics #516

Open panicstevenson opened 5 years ago

panicstevenson commented 5 years ago

I wrote a quick mockup with the existing timeline.js to allow a means of differentiating between magical, physical, and unaspected damage, following a similar color scheme to the one used by fflogs:

This helps players figure out what mechanics would be worth using various mitigation abilities on, however it can add a layer of complexity when it comes to initially releasing timelines or going back and updating old timelines.

I ran this idea by @quisquous and they seem to like the idea, but we both agreed that it should be something that is open for discussion to what level the timeline provides additional levels of information and what the community would like to see added.

There are infinitely many ways to tackle these features, obviously; however, there's a difference between tacking on a type flag within the timelines themselves or adding framework capabilities to add things like icons, etc.:

Other concerns would be for items like colorblind accessibility (are the purples and blues too similar), and general readability, usability, etc. as well as any foundational work that would impact skins, or anything that would require underpinning changes that impact old timelines. Scripts can be written to update old timelines with ability aspect, but someone would be volunteering their time to go back and record if an ability hits 2 players, creates puddles, is a divebomb, etc.

An additional note: Cactbot is the only known consumer of the original timeline format; if it makes sense to extend the format or change it to suit the needs of the community going forward, that can be accomplished as well but will again require a non-zero level of effort to retrofit old fights.

Any ideas, feedback, and/or input would be greatly appreciated!

JLGarber commented 5 years ago

Off the top of my head, if this were a voting situation, my vote would be a framework addition. For most of the mechanics, the timeline already has ability IDs associated to sync to, so I feel that while it could be more work, it would definitely be less breaking to put together a lookup table of IDs vs timeline icons. This table could also contain the damage type information for different colors/patterns on the timeline display. There could even be an exceptions section for mechanics that are based on RP lines.

The benefit, as I see it, is that there would be no need to make changes to timeline generation workflow, and all existing timelines should Just Work, if potentially without the new functionality. Additionally, as long as the timeline format continues to use ability IDs to sync, the proposed framework addition should in theory be future-proof.

The downside, of course, is needing to develop this framework and build the lookup table. Additionally, there would be ongoing maintenance in that someone would have to add new ability IDs as Square implements them.

Overall, I think that even if the initial time investment to do modified timelines through a framework addition is high, it would be worth it in future, as opposed to changing timeline formats. This is of course assuming that Quisquous/the community decide this feature should happen at all.

quisquous commented 5 years ago

I think a new format probably needs to happen at some point, but some thought needs to be put into it. There's a good bit of inertia in the old format, in terms of tooling support, and it does have the advantage of being quite readable and easy to edit. It seems required that any new format be something that you can automate transforming the old format into, so it doesn't bother me too much to put off making this breaking change until this one becomes more unwieldy than this one.

This is a tangent, but my feature wishlist that'd be hard to support in the current timelines are:

But, I think I'd like to have a bigger think/design about what that would look like separately, since there's more requirements and ideas there.

Ok, back on topic, but I'm definitely supportive of more informative timelines. It's probably a lot less work to just tack this on with a map of ability names -> types / icons in the js file. That's also makes it more possible to incrementally update timelines as people spend time to add that information.

In terms of physical/magical/unaspected types. I think it's really for tanks to use cooldown abilities, and for casters/melee dps to use feint/addle properly. Are there other use cases here that I'm missing?

I have two concerns that maybe somebody with better ui sense can help address:

Right now there's different colors for things that are <8 seconds away. Probably if there are also colors for different kinds of damage, that might get extra confusing. Not sure if the "things happening soon" should just not be colored differently and only damage types be the colors? I'm not sure what the right answer is here, but I could see this being confusing.

There's also a skin for timeline types, and it'd be nice for people to be able to style these different types as they saw fit if they wanted.

I think the icons are neat, but I worry about icon overload, where you have so many icons that they become nonsensical. I think it'd be better to have a small number of icons (and most things without icons). I'm thinking tankbuster, aoe, stack, in, out, maybe a few others? But things that if you are watching the timeline, but can't quite remember the fight because it's been a while, you can be like "oh yeah that's what the tankbuster is called in this fight" and maybe prepop something before the trigger happens.

panicstevenson commented 5 years ago

It's also possible to solve the color problem with icons as well, but then you're potentially doubling down on icons, for example:

Screen Shot 2019-08-08 at 1 18 09 PM

Obviously I'm not doing this idea any justice by copy/pasting icons from Google into an online paint editor, but you can see how busy this gets (I didn't have any ideas for the tank buster icon).

There's a lot of icons that would be necessary: tank busters, raid damage, stack, chariot, dynamo, look, wait, move, overhead/targeted, and tether are the ones that immediately come to mind. If you double down, you can have magical (mage staff), physical (sword), and unaspected or TBD (idk, I just put a line).

If you tripled down, you could include icons for tank only, healer only, and DPS only mechanics. However, I think you can convey enough of this information with the timeline text.

An alternative that I don't personally think is much better would be to convey the information via subtext:

Earthen Fury____5 - AoE Damage Earthen Anguish___10 - Tankbuster

Especially since the triggers will almost always convey this information to you, but the triggers usually aren't synchronized to the timeline itself, but instead to the network logs. They can be synchronized with the timeline, but I think that's much more fragile.

I think the icons can be an elegant way of solving the different damage types, but it starts to fall apart the more icons people would want. Anything above 2 icons is at the point where the timeline is conveying too much information in my opinion, and players would probably rather just see what happens or what the trigger says.

For my own personal opinion, I think that any additional information we decide to include should not draw away from the main timeline and should just be useful reference material for the one or two times you're (re)learning the mechanic and then you should be able to ignore them entirely after that.

Snsei987 commented 5 years ago

For the attack soon < 8, why not make it blink ?

Tzarnal commented 5 years ago

One icon per bar seems like the best solution visually.

However ave you considered using unicode/emoji for additional on the fly icons?

I don't think it'd look terrible to have

🗡️ Bahamuts Claw ✨ Fireball

panicstevenson commented 5 years ago

@Snsei987 Do you think blinking attracts too much visually? I think there could be some level of player fatigue associated with each move blinking as it counts down, but I may be in the minority here. I do like the idea though.

@Xesyto I really like this idea as well; I think it'd ultimately have to be a decision to see how people feel about having emojis in the timeline, since I think people think they might come off as childish. But, they have a lot of added benefits: we don't have to make them, pay anyone to make them, or have any legal issues with using them. Also, by definition, they have to be very recognizable for what they are.

⚔️ is pretty good too

Snsei987 commented 5 years ago

The emoji would be nice and easy to do, I tested it and ⚔️✨are fine, 🗡️ is less visible.