New Combat Analysis Tool

  • Hi,


    I'm sorry I cant write this in German.


    There is a new World of Warcraft Combat Analysis project - http://www.raidlogs.com


    Key Features:
    * Guild Raid Sessions Management - Easy navigation.
    * Multi-Team Guild Support - Manage all teams under a single/many account(s) sharing the same guild association.
    * Role Detection.
    * Attempt Overview Report - Output pies, Tanks/Raid Healing Responsiveness and Role Cast.
    * Meters and Histograms Reports - The obvious plus Efficiency information.
    * Contribution/Distribution Reports - Raid wide reports using a stacking bar chart format. Useful for Target focusing/LOS Healing/Rotation Utilization.
    * Encounter Mechanics Performance Reports - Tailor made hundreds of reports for each Boss encounter.
    * Comprehensive Comparison System - Output/Mechanics in both Raid/Players modes.
    * Guild and Player Search Tool - Quick access to a Player statistics Page or to a Guild Session Index.
    * Ranking system - World/Location/Realm and Multiple Class Specs Support.
    * Players and Guild Promotion system.(Not live yet)


    Official Europe WoW Forums Thread:
    http://eu.battle.net/wow/en/forum/topic/900711353


    Home Page:
    http://www.raidlogs.com


    Demo Sessions:
    http://www.raidlogs.com/info/guild/38


    Any thoughts, comments and feedback is Welcome!


    Elija
    Author of raidlogs

  • how important is raw log browsing to you?


    It is a big hit on the database.
    I've omitted it for the sole reason to be able to keep logs for a very long time.


    Isn't mechanics+buff/debuff reports is doing mostly what you would have done with raw log browsing?
    I can code more reports to compensate on that.


    I will consider adding it if I'll learn that the current reports are not enough.



    Anyway if you decide not to use it - fair enough(though I really hope for a top world guild to join in and help push this project)
    Just check us out from time to time, there will be lots of new features spawning out :)


    Elija


  • if the mechanics/buff/debuff section is updated regulary (=day 1 of boss release, we need such information from the beginning on) and with all information it would be enough. but there are so many minor points in several encounter so you wont get them all. for example lady deathwhisper, with your tool i cant find out which persons were hit by the vengeful shade, which is an important information to find out who was failing. or who was the defile target etc.


    it would also be interessting what happend to people which died in the last 10 seconds (wasnt there enought heal? did he failed at xy before his death and died because of that? etc.), not only the last damage taken.

  • valid points all.


    obv for cata I'm depending on cata beta logs which I do not have enough atm(asked from many but got only a few)
    this means that mechs will be coded during cata live which isn't much of a help for top world guilds.
    so I see the point for a raw log browsing in that case. I'll have to see how I'm putting this together.
    dont take it as a QQ but I'm the sole developer on this project and by so can click on 2 buttons at a time.
    I got a long to-do list, just need to figure out the prios :)


    I'll be updating this thread on any news.


    Elija

  • ok, I'm probably giving this priority.


    I was thinking about an open expression support.
    what I mean is you'll be able to enter a semi SQL 'where clause' statement with some aliases to make life easier.
    This way you'll have almost a full control on the logical rendering of the statement.
    You'll be able to use (),<>,=,!=,and,or,in like you're writing a SQL where clause.


    In addition you'll be able to set an ordering method by specifying fields and it's ascending/descending flow.


    here is an example:


    for simplicity I wont include all the abbreviations, just a few to make a point.


    [t] - Event Time
    [sun] - Source Snit Name
    [tun] - Target -''-
    [tua] - Target Unit Affiliation
    [evt] - event type
    [evst] - event sub type
    [spl] - spell


    filter expression:
    [sun] = 'MjoedTheBear' and [spl] in ('Growl', 'Bash') and [tua] = [enemy]


    order expression:
    [t] desc


    This will get you all this bear growl and bash on any enemy unit and will order it from latest to earliest.




    all the expression will be rendered into the url so you'll be able to save/bookmark/share it


    I hope you get the idea, open expressions will give you much more freedom but you'll need to learn it's acronyms to master it.
    In time such expression system could have a lazy wizard to auto build expressions.


    Do you think it's too complicate or people will learn to use it?



    Elija

  • Do you think it's too complicate or people will learn to use it?


    those who care will learn to use the query (and will probably already be proficient in SQL ^^) with a complete api it could be used to create custom addons ... ;)

    The first microsoft-product that does not suck will be a vacuum-cleaner.

    Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music. [Kristian Wilson, Nintendo Inc., 1989]


  • those who need it wont have a problem with it. sooner or later you (or someone else) could easily create a gui to automatically create query strings for easier use, but i think it wont be necessary for most of the users of this feature.

  • I'm inclining to limit this tool to get no more than a few hundreds of records and to run only on a single attempt at a time.
    this thing can easily kill a database.


    does such restriction sound reasonable, do you guys run queries on a wider time frame than a single attempt?

  • does it even matter if you restrict it to a few hundred records anyway? it would be nice to look up all deaths like "BLASTCHARGEULTRA INSTANTDEATH skill hits Mjoed for 234523452345234523" on all attempts... but its not really necessary i think, for real useful informations 1 attempt will be enough.

  • i really don't think you can kill a real database system with this kind of application. ;) with a lot of users, mysql could have performance issues, but at that time you'll probably already think about buying a db2 (or some other commercial grade dbs) licence (that many pagehits etc). thinking about query optimization could help too...

    The first microsoft-product that does not suck will be a vacuum-cleaner.

    Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music. [Kristian Wilson, Nintendo Inc., 1989]


  • you can't do much of query optimization on an expression like system.
    to do that you'll need to index the entire combination of all columns because you'll never know which the user will pick for
    his filter. and indexing the entire combination will result with a huge overhead when populating the table in question.


    In that case the typical query execution plan will just use a scan algorithm which means going for every row in the table which is fine when the data you need is cached which is what a good RDBMS does.


    consider the following;
    A 3 hours of 25M raid time is about 200MB. that's for one guild, one session.
    now think about 1000 guilds browsing raw information which probably wont happen at the same time but just for the sake of this argument.
    figure out how many Giga bytes of memory you need to cache all that.


    probably 1000 guild browsing the logs altogether is not likely to happen.
    But in any case this should be handle with a lot of care in mind, that's why things like single attempt browsing and limited row count retrieval come into play.


    btw MySql sucks in compare to Postgres ;)

  • btw MySql sucks in compare to Postgres ;)


    i'm well aware of that ^^ in my experience, some kind of optimization is almost always possible. but i don't know how you designed your db :)

    The first microsoft-product that does not suck will be a vacuum-cleaner.

    Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music. [Kristian Wilson, Nintendo Inc., 1989]


  • Hi,


    Raw Log Browsing System is Live now.



    About the Raw Log Browsing System(RLB):
    RLB expression editor is a free text control able to parse SQL like where clause.
    RLB currently does not have a wizard UI to auto generate the expression. You write the expressions in a similar way that you tell someone what to do, well sort of.
    RLB has no limitation of row count thought you can see 100 at a time, you can traverse from the start to the end of the fight raw logs.



    RLB consist of three panes:
    - Upper Pane: This pane hold the legend of all available Contexts.
    - Left Pane: Will show only if you're logged in, this pane let you save/update/delete Expression Presets to your Private Preset Library or to Your Guild Preset Library
    - Lower pane: The actual Expression Editor where you enter your code.


    What is a Context
    A context is an abbreviation for something you may look for in the Raw Log, like: Source Unit Name, Spell, get all Hostile Units, get all failed dispels and many more.
    An expression may include a single context or many of those which you decide how to relate one to each other by using logical operators.


    Examples:
    - Get all source friendly units missed melee events:
    [s_friendly] and [miss_melee]


    - Get all player's 'ImAlwaysdispeling' dispels:
    [s_name] = 'ImAlwaysdispeling' and ([dispel] or [dispel_failed])


    - Get all players died from defile:
    [t_friendly] and [killed] and [spell] = 'Defile'


    - Get all stacks information about Mystic Buffet for player 'IdidNotGetAbove5Stack'
    [t_name] = 'IdidNotGetAbove5Stack' and [aura_all_applications] and [aura_all_removals] and [spell] = 'Mystic Buffet'


    - Get all Damage taken from targets with names starting with 'Shamb' (take notice that like is case sensitive and ilike is not)
    [t_friendly] and [dmg] and[s_name] ilike 'shamb%'


    - Get all CC's done to a Valkir with Spawn ID-35876
    [t_spawn_id] = 35876 and [spell_cc]


    - Get all dispels done to the Tanks between '2010-12-1 10:21:22' and '2010-12-1 10:21:52'
    [t_tank] and [dispel] and [time] between '2010-12-1 10:21:22' and '2010-12-1 10:21:52'


    - Get all DPS and Healers whom agroed:
    ([t_dps] or [t_healer]) and [dmg_melee]


    - Get only the dispels from Pally healers:
    [s_paladin] and [s_healer] and [dispel]


    Note: At this point, if you enter an invalid expression, RLB will not tell you what exactly is wrong but only a general error message.
    Although I'll be addressing that in the future, This is what you might want to check out If you get errors:
    1) Check that you use Valid context Names, you'll need to include the Brackets([]) too.
    2) Check that you enter a valid value to a mandatory Value Context such as [spell] (It has to be [spell] = 'some spell name' or [spell] in ('spell name 1', 'spell name 2')).
    3) Check that the logical operator are in place. write something like [t_friendly] [dispel] will result in an error. Should be: [t_friendly] and [dispel]
    4) Time values must be fully qualified with year-month-day hour:minutes like '2010-12-1 10:21' (seconds and milliseconds are optional)
    5) Check that your expression does not include words like: delete, select, drop, create, update and such. this is due to monitoring SQL Injections.
    Raidlogs will reject any expression with such content.


    A link where you can check it out:
    http://www.raidlogs.com/fight/browser/585/19

    This is just an introduction post, I'm sure that people will be very creative in what they can get out of it.



    Elija