These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
12Next page
 

Advanced Combat Log Visualizer [v0.30] [formerly Combat Log Parser]

Author
Tyrion WarMage
Perkone
Caldari State
#1 - 2012-12-16 00:08:07 UTC  |  Edited by: Tyrion WarMage
I decided to write a new Combat Log Parser because i found all existing ones to be not working or insufficient,
This is Beta, of course, but i think i'm at a point where its is usable and i would like to get some feedback :).

If you want to try it out: Advanced Combat Log Visualizer [v0.27]

Usage:
1. Unpack the ZIP file
2. [WINDOWS] Start the CombatLogVisualizer.exe or CombatLogVisualizer.bat
2. [MAC & LINUX] Start the CombatLogVisualizer.sh [UNTESTED]
2. [JAVA] Start the CombatLogVisualizer.jar

Features:
- Comprehensive per ship data (DPS,Total,Quality,etc..)
- Various timeline charts (Damage,DPS,Total)
- Simple preprocessing
- PNG Export of charts

This Programm uses the following Libraries:
jFreeChart
joda-time
lablib-checkboxtree
Apache Commons
Executable created with Launch4j
Thanks to the developers for their work on those.

Note:
1.The programm is reading all files in your gamelog directory on startup. This can take awhile, depending on the amount/size.
2. Somewhere around Dec 4 the log format changed, hence it will not read files from before that date. Sadly, i was not able to find the exact patch.
3. Files with 0 damage events will not show up.

Screenshots:
Individual Data View
Timeline Data View

Edit: Not playing EVE anymore, but maybe someone wants to continue on this, hence here is the sourcecode.
It is containing the libraries mentioned above, subject to open source licenses.

Source Code, Eclipse project

If it's broken because of an update, its probably required to change de.cwirth.eve.loader.EVELogReader. This class is containing the parsing functions. The rest is more or less detachted from the EVE Log File Format.

The sourcecode is also containg an experimental feature i did not manage to complete. Based on the assumption of somewhat constant damage intervals (hence not working for missiles), it is identifying the number of ships in situations where you are getting damage from several ships with the same name ! This feature can be found in de.cwirth.eve.loader.de.DmgIntervalPreprocessor and the GUI for is commented out in de.cwirth.eve.gui.LogChooser.

This feature is already working, but is too time consuming for analysing real-world logs. To get this to work it would be required to add heuristic pruning of the search space. I was going to push all possible expansions of the search tree to a list, that is getting sorted by a heuristic best-first strategy to select the next expansion to test.

The function "createTheories" creates a list of possible intervals. "validateLayer" is the starting point for creating a solution for a single ship. (Each sucessive call is trying to identify the next possible event-chain for a new ship) "createSingleSolution" is identifying the next events that could be part of the event chain for this ship.
Revenge Bunny
DKY Pharmaceuticals
#2 - 2012-12-18 10:03:11 UTC
im quite noob.... i downloaded this and unzipped it, i cant see any installer or anything and i dont know how to get it to read the gamelogs? i rebooted my comp because you said it reads the gamelogs on startup, not sure if thats what you meant
Tyrion WarMage
Perkone
Caldari State
#3 - 2012-12-18 10:52:26 UTC
Revenge Bunny wrote:
im quite noob.... i downloaded this and unzipped it, i cant see any installer or anything and i dont know how to get it to read the gamelogs? i rebooted my comp because you said it reads the gamelogs on startup, not sure if thats what you meant

It's a java programm, you shouldnt unzip it. If java is correctly installed, you should be able to double click it and start it up.
If possible i will add an EXE release next time.
Revenge Bunny
DKY Pharmaceuticals
#4 - 2012-12-18 12:26:33 UTC
ok thanks, i got it working.... its far more advanced than what i was expecting lol, so well done, i hope it proves to be a handy tool for people in the future... the only disappointing thing was for me, that the particular fight i was interested in didnt show up in the list, in fact quite a lot didnt really, so perhaps that may be something which could be improved on

thanks for all ur efforts buddy!!

i tested this with AVG internet security 2013, and was all good
Tyrion WarMage
Perkone
Caldari State
#5 - 2012-12-18 14:07:40 UTC
Revenge Bunny wrote:
ok thanks, i got it working.... its far more advanced than what i was expecting lol, so well done, i hope it proves to be a handy tool for people in the future... the only disappointing thing was for me, that the particular fight i was interested in didnt show up in the list, in fact quite a lot didnt really, so perhaps that may be something which could be improved on

thanks for all ur efforts buddy!!

i tested this with AVG internet security 2013, and was all good

If its an Retribution Log, please send it to me and i will have a look.
Everything after Inferno should work, but i will not debug those.
Tyrion WarMage
Perkone
Caldari State
#6 - 2012-12-20 20:56:46 UTC
Updated to v0.23
Added some screenshots
Isis Loreda
Minmatar Egg Hucker Industries
No Visual.
#7 - 2012-12-21 16:51:33 UTC
I just tried to launch it, but got the message it couldn't be launched and to check the console for errors. I'm on OS X with the latest 1.7_10 Java.

I'm not sure where to find the java console these days to post any helpful information - I wonder if they left it out of the mac distribution after searching around.
Tyrion WarMage
Perkone
Caldari State
#8 - 2012-12-22 13:08:26 UTC  |  Edited by: Tyrion WarMage
Isis Loreda wrote:
I just tried to launch it, but got the message it couldn't be launched and to check the console for errors. I'm on OS X with the latest 1.7_10 Java.

I'm not sure where to find the java console these days to post any helpful information - I wonder if they left it out of the mac distribution after searching around.

That's probably due to OS X having a different folder for storing the logs. I uploaded a small fix that will open a choose directory dialog should the log folder not be available. (In Windows the log folder is Documents/EVE/logs/Gamelogs)
Hence, i hope the problem is now fixed for you, but i dont have a Mac for testing that.

If not, you can see the console output by running:

"java -jar CombatLogParser.jar" from the console/terminal/command line.

--

Update to version v0.23b: Mac OS X fix (untested)
Isis Loreda
Minmatar Egg Hucker Industries
No Visual.
#9 - 2012-12-22 20:11:49 UTC
Thanks Tyrion! It loads correctly using the command line, but it hangs at load via double clicking and doesn't appear to ever load. Part of that may be a user error because I think I selected the wrong folder by mistake initially.

I did get some out of memmory errors in the console which seem to coinside with scrolling horizontally to see all the charts. Not with all log files though. In fact, they same to be doing fine as I do more testing with other logs. The difference seems to be that checking both boxes for splitting by fight and ship timeout causes the out of memory error.

Thanks for all the work you're doing; it's looking good!

I tried to add some info from the console, but the forum flags it as html....

Tyrion WarMage
Perkone
Caldari State
#10 - 2012-12-23 13:08:23 UTC  |  Edited by: Tyrion WarMage
Isis Loreda wrote:
Thanks Tyrion! It loads correctly using the command line, but it hangs at load via double clicking and doesn't appear to ever load. Part of that may be a user error because I think I selected the wrong folder by mistake initially.

I did get some out of memmory errors in the console which seem to coinside with scrolling horizontally to see all the charts. Not with all log files though. In fact, they same to be doing fine as I do more testing with other logs. The difference seems to be that checking both boxes for splitting by fight and ship timeout causes the out of memory error.

Thanks for all the work you're doing; it's looking good!

I tried to add some info from the console, but the forum flags it as html....


the error output would be really helpfull, but i'm assuming you are talking about this error:
"java.lang.OutOfMemoryError: Java heap space" ? If this is the case, starting the programm with "java -Xmx512m -jar CombatLogParser.jar" should fix it. (This will set the memory the programm can use to 512MB)
.. i'm currently looking for a generic solution but that does not seem to be trivial.

Edit: -jar has to be after the -Xmx
Isis Loreda
Minmatar Egg Hucker Industries
No Visual.
#11 - 2012-12-24 03:56:32 UTC
I'll try it out and see what it does when I get a chance. The error is similar, but not the same - functionally they might be I don't know:

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

The lines that follow seem to be what triggers the HTML flag on the forum so I've added a link for a screenshot since I don't think there's a way to add inline

Console screenshot
Amira Silvermist
PIE Inc.
Praetoria Imperialis Excubitoris
#12 - 2012-12-25 14:57:42 UTC
Quote:
.. i'm currently looking for a generic solution but that does not seem to be trivial.


You could use Java webstart and put the commands for the heapspace right into the jnlp file.
Makes it pretty convenient to publish updates as well.



Isis Loreda wrote:

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space


Even "java -Xmx512m -jar CombatLogParser.jar" doesnt work? Odd...



I have different problem:

Quote:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at de.cwirth.eve.gui.FightPanel.getQualityPanel(FightPanel.java:300)
at de.cwirth.eve.gui.FightPanel.getIndvidualData(FightPanel.java:272)
at de.cwirth.eve.gui.FightPanel. init (FightPanel.java:85)
at de.cwirth.eve.gui.MainFrame. init (MainFrame.java:25)
at de.cwirth.eve.gui.LogChooser$2.actionPerformed(LogChooser.java:191)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)



Using JRE7 on Windows 8
On my Windows 7 Machine it worked last time though.
Tyrion WarMage
Perkone
Caldari State
#13 - 2012-12-26 01:34:06 UTC
Amira Silvermist wrote:

You could use Java webstart and put the commands for the heapspace right into the jnlp file.
Makes it pretty convenient to publish updates as well.

Thx for the info, but i dont want do deploy it as web application. I have found an exe wrapper for windows (launch4j), but not for mac.


I have different problem:

Amira Silvermist wrote:

Using JRE7 on Windows 8
On my Windows 7 Machine it worked last time though.

can't see how this could happen, but i have added an catch to prevent this error. But please send me the log that has inflicted the error to contact@christianwirth.net if you dont mind.
Tyrion WarMage
Perkone
Caldari State
#14 - 2012-12-26 01:38:15 UTC  |  Edited by: Tyrion WarMage
Update to v0.24

- Some bugfixes
- Added a "current DPS" timeline

-- Request for logs --
I'm currently trying to implement some more advanced features, but for really testing them, i need more data. Hence, i would be happy to get some logs.
Please send me your combat logs to contact@christianwirth.net, including a short description (the Plex/WH Site/Mission name is enough)
I'm mainly interested in:
- WH logs
- L5 Mission logs
- Plex logs
(- PvP logs)
Stuhami
Brutor Tribe
Minmatar Republic
#15 - 2012-12-26 12:29:07 UTC  |  Edited by: Stuhami
Hello,

First off I just want to say, WOW. Any serious eve player should use this. With this a player can make strategies on how to go about their gameplay, on what targets to change ammo and which to take out first. Seriously if people are not excited about this they don't know what it means. Congratulations on a superb application.

SUGGESTIONS:

  1. Use separate tabs or open in new tab feature for the charts (when I was looking at damage received there was so many things that dealt damage to me that I couldn't see the individual names; although i don't know if that's a problem on my end.)

  2. * A setup like the new one for the eve inventory could be used. Individual data on the left and charts as tabs on the top.
    *This i mean for the individual charts like damage dealt, received, quality, etc in different tabs

  3. Maybe add total volleys used and a small calculator to see the average cost of running a site, cost vs reward type of thing.

  4. Add button to delete logs if possible ( start fresh )

  5. add button to save logs in different folder if possible

  6. Export to PDF for instruction and guide purposes ( Guide makers will love you for it ). different page per chart.

  7. Add a filter for date and duration so only the ones you want show up.

  8. documentation or Brief descriptions of what the chart is indicating

  9. Unification of folders to see average DPS over a period of time (including more than one engagement) so you can see your "average Lifetime DPS"

  10. Anomaly deduction based on nomenclature of ships present in the engagement time. ( this info can be checked easily
  11. through google, just search for example serpentis haven, etc and the type of ships per spawn will show up ) Don't know how possible this request is.

  12. Find a way to merge with Pyrfa or EFT loadouts so people can see real results of fits. not just the dps it says on the loadout

  13. *Other people are taking on the task of making a new fitting format Called Common loadout format that if involved could be expanded with this functionailty. Common Loadout Format

    * Maybe if you get in touch with these people this functionality could be of great insight.

  14. average time per kill if possible

  15. sometime looks stretched when in full view, don't know if it on my end.


Thanks a lot for a great program and I hope my input is useful. Anything that is needed feel free to mail me in game, ill help in whatever I can.
Tyrion WarMage
Perkone
Caldari State
#16 - 2012-12-27 15:03:45 UTC  |  Edited by: Tyrion WarMage
Thanks for your input, posts like that are motivating me to increase my efforts :)

1. I know, but layout programming is a mess ... i will improve stuff a bit here and there but only if its trivial work .. thats not the kind of problem i like to solve. But charts are having tooltips which is showing nearly the same data.

2. Look into the quality chart (count). Those are all hits. Reward calculations would require market data import. There is plenty of other stuff i will implement first.

3. You can open up multiple parallel windows with different selections.

4. Nope, but saveable "working sets" are planned long term.

5. Rightclick any chart and export to PNG.

6. Just select the ones you want. The date is already shown.

7. Tooltips are planned.

8. Good idea, added to my ToDos.

9. This would require parsing of websites, where the layout can change. Sorry, not happening. But i have an idea how to determine the "same" site. Thisway it is possible to get data for a singular site type without the exact knowledge of which site it is.

10. I would need a complete API, allowing me to get shield/armor resistance/recharge values etc ... a common format is not enough, hence this will probably not happen.

11. Requires splitting the log data into single ships - That's very diffcult, because multiple ships with the same name can occure at once. But thats the problem i'm working on at the moment .. we'll see ...

13. See (1.)

And if you want to help, send me some logs (see my last post) :)
Aphelion Thunderclap
Caldari Provisions
Caldari State
#17 - 2012-12-27 15:15:29 UTC
would love to see this work...not sure how tho all i see is a RAR file
Tyrion WarMage
Perkone
Caldari State
#18 - 2012-12-27 15:27:31 UTC  |  Edited by: Tyrion WarMage
Aphelion Thunderclap wrote:
would love to see this work...not sure how tho all i see is a RAR file

its a JAR File which should be associated with Java. If not, try rightclick "Open with->Java" or you can run it from the command line with "java -Xmx512m -jar CombatLogParser.jar".

.. but the next release will include an common windows exe file.
Stuhami
Brutor Tribe
Minmatar Republic
#19 - 2012-12-28 04:05:31 UTC
Hello,

Thanks for responding quickly. Below are some clarifications on my suggestions. Hope they help.

Stuhami wrote:
Hello,

[left]SUGGESTIONS:
[list=1]

  • Anomaly deduction based on nomenclature of ships present in the engagement time. ( this info can be checked easily
  • through google, just search for example serpentis haven, etc and the type of ships per spawn will show up ) Don't know how possible this request is.

  • Find a way to merge with Pyrfa or EFT loadouts so people can see real results of fits. not just the dps it says on the loadout

  • *Other people are taking on the task of making a new fitting format Called Common loadout format that if involved could be expanded with this functionailty. Common Loadout Format

    * Maybe if you get in touch with these people this functionality could be of great insight.

  • average time per kill if possible


  • Thanks a lot for a great program and I hope my input is useful. Anything that is needed feel free to mail me in game, ill help in whatever I can.



    Tyrion WarMage wrote:
    Thanks for your input, posts like that are motivating me to increase my efforts :)



    9. This would require parsing of websites, where the layout can change. Sorry, not happening. But i have an idea how to determine the "same" site. Thisway it is possible to get data for a singular site type without the exact knowledge of which site it is.

    10. I would need a complete API, allowing me to get shield/armor resistance/recharge values etc ... a common format is not enough, hence this will probably not happen.

    11. Requires splitting the log data into single ships - That's very diffcult, because multiple ships with the same name can occure at once. But thats the problem i'm working on at the moment .. we'll see ...


    And if you want to help, send me some logs (see my last post) :)


    9) The ship types have variables per site. By knowing which ship types appear in the combat logs, the program can deduce the site. For example, Forsaken hubs have no frigates, just cruiser and up with their specific name types. As you can see in the links below the mix of ships types and names vary per site. This way it could be possible for the program to recogognize the sites.

    EXAMPLE:

    Forsaken_Hub
    Gurista HUB

    10) This is not for you to import ship fittings etc, but to talk to them into including in their code a graph portion to show damage dealt and done. Although they could just link the picture it would help with the fittings, so basically no work done on your part unless they want something specific

    11) Get the program to count the number of instances a name appeared. Every ship has a specific EHP, so for example if a pith death dealer has 10,ehp (example only) and it shows that you did 30k ehp to a pith death dealer then you killed 3 pith death dealers. At least that's about as far as i go on that aspect since i don't know if there are time tags to kill of spawns in eve.

    Thanks for the program, hope my suggestions help a bit more


    Tyrion WarMage
    Perkone
    Caldari State
    #20 - 2012-12-28 14:51:42 UTC
    Update to v0.25
    - Some PvP logfile fixes (thanks to Amira Silvermist)
    - Some other bugfixes
    - Tooltips for quality chart labels
    - Tooltip for the Timeline Selection Tree
    - Tooltips for the Parser Options
    (- Undocumented since v0.24: Multi Log Selection + Aggregated Data View)
    - Added EXE File and SH Script for startup
    12Next page