 |
|
 |
|
|
Author |
Message |
impishfae
Joined: 19 Jun 2006 Posts: 125 Location: Australia
|
Posted: Sun Jul 23, 2006 1:05 am Post subject: Participation and reward intervals, oh my |
|
|
I've taken a look at the latest code dump and I think my brain broke.
I guess mainly what I don't understand is why there is the capacity to separate the participation intervals from the reward intervals, now that it's so easy to manipulate the participation interval data. Given you can change your participation interval data to perfectly reflect how you'd like your reward intervals to work, I'm missing the distinction on why they are different entities.
Obviously, a participation interval just records the start/stop times for an interval with the people present within that timeframe... but isn't that basically what a reward interval is too? The reward interval may have other characteristics (padding at start/end, weighting, etc) which affects how the DKP is calculated, but they're sorta attributes attached to the participation interval which controls how it's interpreted for DKP.
(I loaded up my latest raid log, cleaned up my participation intervals using the new tool which is a breeze to use: great stuff. Then switched tabs to check out the reward intervals and found myself surprised to see they had remained in the start/stop times my original participation intervals had started with. Then I found myself wondering why I was surprised as I know they're discrete entities. Then I wondered why they were discrete entities. Then I came here and posted delicious, tasty, glorious, SPAM. Oh lordy, save me from the spam) |
|
Back to top |
|
 |
Lokorin Site Admin
Joined: 03 Apr 2006 Posts: 697
|
Posted: Sun Jul 23, 2006 8:59 am Post subject: |
|
|
The main reason that participation intervals exist are events. The problem with replacing the participation with reward intervals recording their own participation (instead of sampling the participation intervals') is that it would all of a sudden be hard to give the events a correct participation. Without the participation intervals one would have to keep two separate participation systems: one for reward intervals and one for events, changing one of them would not affect the other (which could lead to situation where one is present during 11:00 to 12:00 in one system, but not present during 11:30 in the other).
A good example of why this is useful is to parse a CT RT log from WoW (there are a few test-logs in the repository in com.lokorin.dkplp.test). They use the join/leave mode and therefor contains a lot more information about the participation than what's needed for the reward intervals. Discarding all but the reward interval participation would cause a large loss of information which could affect events. |
|
Back to top |
|
 |
impishfae
Joined: 19 Jun 2006 Posts: 125 Location: Australia
|
Posted: Sun Jul 23, 2006 10:13 am Post subject: |
|
|
Hmm! There must be more to events than I'm aware of...
I just assumed that an event was attached to a single timestamp and that the event dkp value would be assumed to the people who were present for whatever reward interval that event timestamp fell into.
(And if you manipulated your reward intervals or changed your event timestamp so that the event was outside any reward interval, then you're a noodle.)
Am I missing something? |
|
Back to top |
|
 |
Lokorin Site Admin
Joined: 03 Apr 2006 Posts: 697
|
Posted: Sun Jul 23, 2006 10:29 am Post subject: |
|
|
It used to be that way in 1.3.10. In 1.4.0 however that changed so that one can be present in an event at 11:30 without being present in an reward interval spanning 11:00 to 12:00 (e.g. if one joined the raid at 11:20). The events now sample the participation directly (as shown in some diagram in some other post), hence they are now on the same level as reward intervals, they do not depend on reward intervals in any way.
Another reason for the change is the event-only reward system which does not have any reward intervals, only a participation and events. |
|
Back to top |
|
 |
impishfae
Joined: 19 Jun 2006 Posts: 125 Location: Australia
|
Posted: Sun Jul 23, 2006 2:45 pm Post subject: |
|
|
Soooo... (see images below)
Participationrewards.png shows the raid before anything has been altered (whether the attendance details are generated via classic or first/last or join/leave doesn't really matter)
Participationrewards-1.4.png shows the raid after a spare participation record was removed so now the second reward interval has a different set of participants: A gets to stay for the whole interal since he was present at the start and the end. But the event in reward interval 2 is only awarded to C and D because A wasn't present during that reward interval.
(The grey letters up the top are the members receiving DKP for the reward/event)
Do I understand correctly?
So the system actually retains the participation record information behind the scenes, even after you remove it using the UI (via remove or joining intervals together), so that it can correctly generate the event award recipients?
(head promptly explodes)
There's gotta be a better way to get this info to the user.
Maybe have a 'simple' mode where reward intervals are tied explicitly to the participation records: you edit the participation details and the reward intervals automatically update to match them. (and in which case the second event above would be awarded to A,C,D) Then an 'advanced' mode where events and reward intervals are separated from the participation records and editing any of participation/events/rewards doesn't alter the others.
Or even (how fiendish would this be to implement! but still) a graphical representation of all this stuff, much as the diagrams we've been drawing.
So you've got the timeline going horizontal across the screen: this is immutable.
Then a number of little widget sliders underneath it for the participation: selecting one shows you the participation details for that point. Moving it back and forth along the line changes the start/end points for that participation interval. These can be moved off the end of the timeline, which extends the timeline with it.
Then a number of little widget sliders on top of the time line for the reward intervals. These can be deleted (effectively performing a join) or new ones added (performing a split/add). You can move the sliders to change when the reward intervals start/finish. (but you can't make them off the end of the timeline)
And a third set of other widget sliders for the events.
A lil palette to one side lets you drag out a new slider (creates a new thing) or if you pull an old slider onto it, it deletes that thing.
This could still have simple/advanced mode where the reward sliders auto-move when you change the participation bits in simple mode.
It might even be cleaner if this had an event view and a reward interval view, so you weren't dealing with both simultaneously. (toggle the events on/off, toggle the reward intervals on/off: affects view only, not the calculation)
Urg. I'm not describing it too well, so another graphical version attached: fiendishgraphicalui.png
Where sliders are blue, they're highlighting the thing which is listed in the appropriate box beneath. |
|
Back to top |
|
 |
Lokorin Site Admin
Joined: 03 Apr 2006 Posts: 697
|
Posted: Sun Jul 23, 2006 6:37 pm Post subject: |
|
|
| impishfae wrote: |
| Soooo... (see images below) |
Nice images
| Quote: |
Participationrewards.png shows the raid before anything has been altered (whether the attendance details are generated via classic or first/last or join/leave doesn't really matter)
Participationrewards-1.4.png shows the raid after a spare participation record was removed so now the second reward interval has a different set of participants: A gets to stay for the whole interal since he was present at the start and the end. But the event in reward interval 2 is only awarded to C and D because A wasn't present during that reward interval.
(The grey letters up the top are the members receiving DKP for the reward/event)
Do I understand correctly? |
First of all I have to say that the pictures only really apply to the classic mode as the reward intervals usually do not match the changes in participation. Also so there's no confiusion I just want to make it clear that in classic mode the participation interval will span all the way from a /whox log to one millisecond before the next while a reward interval will span from one /whox log to the next. That means that in classic mode the reward intervals overlap. Lets take an example where three logs L1, L2 and L3 are taken in EQ2.
Time of /whox (hh:mm:ss.SSS)
L1: 11:00:00.000
L2: 11:30:00.000
L3: 12:00:00.000
Participation during the logs (the names printed in EQ2):
L1: A, B, C, D
L2: C, D
L3: A, C, D
Resulting participation intervals:
P1: 11:00:00.000 to 11:29:59.999 (contains A, B, C, D)
P2: 11:30:00.000 to 11:59:59.999 (contains C, D)
P3: 12:00:00.000 to 12:00:00.000 (contains A, C, D)
Bug: while creating this example I found a pretty serious bug/mistake...
Edit: silly me, it is not a bug. The padding works inwards, not outwards.
Resulting reward intervals, the participation is the intersection of the participation during the beginning and end of the interval:
R1: 11:00:00.000 to 11:30:00.000: C, D (intersection of P1 and P2)
R2: 11:30:00.000 to 12:00:00.000: C, D (intersection of P2 and P3)
And lets throw in an event, the participation is the participation during the corresponding participation interval):
E1: 11:17:00.000: A, B, C, D (P1)
Now lets say that P2 and P3 are joined together, the new participation will be the intersection of the two (C, D). The new participation intervals:
P1: 11:00:00.000 to 11:29:59.999 (contains A, B, C, D)
P2: 11:30:00.000 to 12:00:00.000 (contains C, D)
The reward intervals stay the same as they were not altered, but they resample their participation from the participation intervals;
R1: 11:00:00.000 to 11:30:00.000: C, D (intersection of P1 and P2)
R2: 11:30:00.000 to 12:00:00.000: C, D (P2)
The event also resamples its participation:
E1: 11:17:00.000: A, B, C, D (P1)
Lets join the two participation intervals together so that we are only left with one:
P1: 11:00:00.000 to 12:00:00.000 (contains C, D)
The reward intervals stay the same as they were not altered, but they resample their participation from the participation intervals;
R1: 11:00:00.000 to 11:30:00.000: C, D (P1)
R2: 11:30:00.000 to 12:00:00.000: C, D (P1)
The event also resamples its participation:
E1: 11:17:00.000: C, D (P1)
I'm not really sure exactly what you did in your example, but it feels to me that in participationrewards-1.4.png only C and D would be in the reward interval since the last two participation intervals would still only contain C and D (I'm assuming that you joined the reward intervals, not the participation intervals).
| Quote: |
| Or even (how fiendish would this be to implement! but still) a graphical representation of all this stuff, much as the diagrams we've been drawing. |
I would love something like that, but it would probably require creating a new rather complex widget, and my GUI programming skills are not really up to that at the moment. I also have no idea how to make new widgets in SWT, possibly in Swing. So it would be a nice goal for future versions. |
|
Back to top |
|
 |
impishfae
Joined: 19 Jun 2006 Posts: 125 Location: Australia
|
Posted: Sun Jul 23, 2006 11:13 pm Post subject: |
|
|
It was late late late last night when I wrote that last post. I cannot be held responsible for my actions!
| Lokorin wrote: |
I'm not really sure exactly what you did in your example
|
Me either. It was late.
So. Now that I grasp all of this a bit better... You know all your lovely join/split/extend commands you've got on the participation pane? Can we have the same thing on the reward pane?
| Quote: |
| I would love something like that, but it would probably require creating a new rather complex widget, and my GUI programming skills are not really up to that at the moment. I also have no idea how to make new widgets in SWT, possibly in Swing. So it would be a nice goal for future versions. |
You could rework it a bit and get away with constructing something not too dissimilar using standard widgets (I need a graphical UI builder. Paint shop pro just isn't cutting it!) This one has the graphical timeline being noneditable. It's just there to show the user what they've constructed (vertical == scrollbars down the side since horizontal scrolling is icky)
All the areas marking rewards, participations, events are clickable buttons which populate the data below (in another panel/tab). You can then edit start/stop points for intervals/participants/dkp values/weighting, etc. Changing the start/stop points will also reposition the buttons on the panel.
I've never programmed SWT, but I assume it has some sort of absolute positioning layout manager which could control how the buttons were laid out.
Of course, I am in part entirely delusional, as intervals (participation, event, reward) may well be very very close to one another. And then the buttons/labels would overlap and it'd be unusable.
Gah. Head hurts. Too much for a Monday morning.
I think I'll add in a graphical representation of how all this hangs together into the UI at least, because if I struggled to pick it up, so will others. |
|
Back to top |
|
 |
Lokorin Site Admin
Joined: 03 Apr 2006 Posts: 697
|
Posted: Mon Jul 24, 2006 5:38 pm Post subject: |
|
|
Something like that should probably not be too hard to make, so it will be attempted in some future version. |
|
Back to top |
|
 |
|
|