+ Reply to Thread
Results 1 to 3 of 3

Thread: New project: externalize the combat log

  1. #1

    Default New project: externalize the combat log

    The character planner is great work. Well done. I wanted to suggest a new project to those with a passion for ddo and programming skill, and this forum seemed like a good point of contact.

    The motivation: Randomness is built into mmos: RNGs, latency, and human factors. Quantifying whether a certain build or gearing decision is 'the best' is downright impossible with a napkin-math approach. The REAL quantifier is how your character performs in action. If only we had a tool that kept track of the damage, saves, healing, etc. during an entire run of a dungeon (or in pvp, etc.). Well, we have the beginning of such a tool - the combat log.

    Proposition: Create a way to read and save the combat log. This is how I envision it: Find where in virtual memory the combat log is stored while ddo is running. Have a tool that, when activated, saves the contents of the combat log to a csv (or some other useful format) on the fly with time stamps. Then, write a separate parsing tool that reads through this csv and parses the information as either saves/attempt, damage/cast, damage/swing, swings/glancing blow, healing amount/cure moderate wounds, etc. either for the entire dungeon or per mob type...really, the options are endless here. Package these tools together, and you have greatly improved a player's ability to improve their character.

    Obviously, the biggest hurdle is the statement 'Find where in virtual memory the combat log is stored'. Is this even possible? There are memory profilers for windows that allow you to search by process...but I didn't find the combat log in a readable form. Does anyone have any thoughts on how this can be solved? I'm eager to hear your thoughts.

  2. #2
    Join Date
    Mar 2005
    Location
    California
    Posts
    2,099

    Default

    Interesting idea. You might have trouble with the TOS though. I'd have to read it over again, but I'm pretty sure it specifically forbids memory dumping the code, which is essentially what you are contemplating doing.

    But let's ignore that for the moment.

    Most likely, if I were guessing, I would suspect there is probably not a full on combat log stored anywhere in memory. What you will get from the server is a single line of text (one combat message), which will then be 'burned' into a texture, and that texture is what you are seeing on the screen. Once it's on the texture, you don't need it any more, and it's likely discarded. The texture itself is not going to be much use to you, so really what you need to do is catch that line of text as it is heading for the burning routine.

    Of course, that is just speculation, I could be completely wrong. But if I were coding it, that's what I would do (eventually you have to put that text onto a texture to display it on the screen, and there is no reason to do that every frame, if you just burn it the one time you can save yourself a lot of CPU/GPU cycles).

    So look for one line rather than a full log. And it may be compressed. Text is fairly easy to compress into smaller memory (which is good for sending in packets), and if so it won't be in a readable form that you would recognize from a memory dump. Of course, the compression/decompression routines involve extra overhead, so you might get lucky and it won't be. Depends on whether the devs thought the extra speed hit was worth the smaller packets or not.

    So yeah, that's definitely the hard part. Once you get past that, then it's just statistics, no problems there. The packets themselves may even be timestamped for you, which would be a help (if not, you'd just have to assign a timestamp based on when you read them, slightly less accurate, but probably not a big deal). One oddity you'd have to possibly deal with is the (sometimes) strange ordering the combat logs come out in. Things like the death message appearing before the damage messages, things like that.

    But, before you get too far into it, read over the TOS and make sure you won't get yourself into hot water, heh. Turbine got burned with seemingly harmless apps that memory dumped the Asheron's Call game that turned into all sorts of exploits, so they might be over-sensitive to such things now, I dunno.
    "They laughed when I said I was going to be a comedian ... They're not laughing now." - Bob Monkhouse

  3. #3
    D.hoicy Guest

    Default New project externalize the combat log

    Welcome Drummie, you will enjoy this site. Now wheres all the rest of you who read but do not post? Welcome all newbies.

+ Reply to Thread

Similar Threads

  1. Creating an Executable File
    By RonHiler in forum Character Planner Coding
    Replies: 5
    Last Post: 12-15-2011, 10:49 AM
  2. Solo Project
    By Lethe in forum General Discussion
    Replies: 60
    Last Post: 07-04-2010, 03:44 PM
  3. The New Project - An Overview
    By RonHiler in forum General Discussion
    Replies: 11
    Last Post: 12-23-2009, 06:47 PM
  4. Thinking of a new project
    By Shane Christopher in forum General Chit Chat
    Replies: 47
    Last Post: 11-18-2008, 01:00 PM
  5. Hacking the enhancements
    By UtherSRG in forum Character Planner
    Replies: 14
    Last Post: 07-03-2007, 06:41 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts