Latest Diablo 3 News
DiabloWiki Updates
Support the site! Become a Diablo: IncGamers PAL - Remove ads and more!

Diablo 3 Character Optimizer Web App

Discussion in 'Diablo 3 Community Forum' started by mysticc, Sep 17, 2012. | Replies: 10 | Views: 19959

  1. mysticc

    mysticc IncGamers Member

    Joined:
    Feb 20, 2009
    Messages:
    2,397
    Likes Received:
    0
    Trophy Points:
    255
    Hi everyone,

    As some of you know, I programmed a character optimizer for Diablo 3 some time ago that I was using for personal use. The reason I did that was that I wasn't happy with many of the options available so far. There are spreadsheets out there, but they only calculate what they were designed for, and no more. I know there's an effective health calculator out there too, but the UI required too much scrolling, and since it was based on final stats and not the individual elements, it was difficult to more specific calculations or comparisons.

    Now, I've had my program written and working for sometime, but it was for personal use. So I spent the weekend tying it up to a real database, and I started adding a full ajax user interface on top of it. I still have a lot of work to do, but I just wanted people to know where I was.

    Why should you care? I think my program's design is a lot more approachable and user-friendly compared to the alternatives. Things are organized very well (because there's a very rich object model that mirrors what the actual game uses), so it'll be easy for you to jump around to different characters, customize the calculation engines and simulation engines, and do whatever kind of comparisons you want with very little user input. Also, the program stores your characters in a database, so they're never going to get lost.

    I am also never limited by spreadsheets, since I have the power of the entire Java language at my disposal. The possibilities are endless on what this can do for everyone.

    [​IMG]

    Right now I'm focusing on delivering the basics, and I'll keep adding more and more complex things when I find time. Basically the idea is that you can setup your character's build and equipment, and do various calculations and comparisons on it to improve your character.

    [​IMG]

    Equipment Comparison: See something on the AH and want to know if it's an upgrade? Simply login, select the item slot, and enter the new piece of gear's affixes. The application will tell you how everything changes, and by what % amounts. It'll show green or red variations to make it easier to spot huge drops in performance in a particular area, especially effective health and dps/dph.

    [​IMG]

    The UI still needs to be coded to support this, but the code that actually does it has long been finished for awhile.

    [​IMG]
    (non-UI version - just console output).

    Clone & Character Comparison: I found it really useful to simply clone a character's build, equipment, etc. and tweak a full things just to compare the two. With this web app, you can do that. That way if you're thinking about dropping a defensive passive for an offensive one, you'll be able to see in real terms just what you're losing and gaining.

    The system is also really flexible in what it can compare. Eventually, I'll open it up so you can compare your characters against other people's, probably looking things up by someone's battle tag or something. That way if someone has a lot more dps than you do, you can inspect their build and character to see exactly why this is the case.

    [​IMG]

    Item Slot Simulation - Given a number of target affixes, the program will compute what affixes and values you will need to get an upgrade for an item slot. It takes into consideration your build and the rest of your gear. There are settings to filter out suggestions if the drop in effective health or dps is too great. You can also specify options like the minimum amount of improvement in an area.

    Essentially you can tell the application: "I want at least 5% boost to my dps, and I'm willing to sacrifice up to 2% effective health in order to get it." The system will then show you all of the affix combinations and the minimum values that meet your requirements.

    I find this feature really useful when I'm looking for gear on the AH. I know for a fact that if I spend the time putting in all the values suggested by the application into the AH, I know they will be upgrades for me (and I can always check in the Equipment Comparison tool just to make sure). If I don't find anything in my price range, I don't have to waste time looking for items since the program already told me what the minimum affixes/values were to begin with. This is a huge time saver.

    Gear Simulation This part of the program will simply tell you what the absolute best gear for a given class/build would be given a # of affixes to analyze. It takes into account passives, ability buffs, and even things like One With Everything (so it'll be smart enough to add on Poison Resistance for example to maximum EH). It's a very smart tool.

    I find this feature to be amazing. It essentially calculates the best affixes for every gear slot, and will find the combination of items that gives you the maximum dps and effective health possible. Essentially, it's calculating what the best gear for a character can be for. All you have to do is just buy all the pieces on the AH, and you're done.

    ----------------------------------

    I will likely need beta testers soon. I was playing on asking Nonoha and MagicRectangle if they wanted to beta test.

    I will also be accepting donations when I go live, either in the form of PayPal or in the form of gear. I will link my character profiles so that you can see what pieces of gear I need. If you have an upgrade for me and would like to donate that to show your appreciation, I would appreciate it! Because I spend a lot of time making this program, I didn't farm as much as I wanted to.

    If you want to help in other ways, please let me know.

    That's it. I will keep you posted as to how the UI is coming along, as that is all there is left to do. Writing a full ajax application takes a bit of work, but it'll be worth it for everyone. I also have a fair amount of polishing.

    Mysticc
  2. Tilitoon

    Tilitoon IncGamers Member

    Joined:
    May 26, 2011
    Messages:
    876
    Likes Received:
    0
    Trophy Points:
    120
    Congratulation, it seems very interesting so far. I am also one of those who think the poor UI was one of the main problem of the different D3 tools available. Yours is very clean, even if it's only in early stages, I can see where you are going with this and I like it.

    I am curious though are you planning on using Java as the server code ? Are you using a server installed on your network, because this is not a standard Web configuration, usually we see PHP+MySQL or C#+MSSQL ?

    If you have any questions / problems during development let me know.
  3. darkrealm

    darkrealm IncGamers Site Pal

    Joined:
    Jun 22, 2003
    Messages:
    2,031
    Likes Received:
    13
    Trophy Points:
    264
    I will be happy to donate what I can to help this cause. While perhaps not as technically adept as magicrectangle, I would love to test this out in some fashion or form. If I can be of any help let me know. GL
  4. Katniss

    Katniss IncGamers Member

    Joined:
    Jul 6, 2012
    Messages:
    486
    Likes Received:
    1
    Trophy Points:
    100
    I just wanted to stop by and say WOW. I'm always constantly being amazed by the talent of some of the users of this site. From the art work to the programming to the writing/creativity in ideas; very impressive. This looks like a monster feat and one I'd be happy to help out with if possible. Keep us updated!
  5. mysticc

    mysticc IncGamers Member

    Joined:
    Feb 20, 2009
    Messages:
    2,397
    Likes Received:
    0
    Trophy Points:
    255
    The server side is already finished. It is Java running Spring Framework + JPA (Hibernate Provider) running Tomcat. The database is Mysql. I use a custom asset management servlet to serve minified/concatenated css and scripts, which also handles server-side javascript dependency injection.

    The client is jquery+mustache+other jquery plugins, and my own architecture wrapping that.

    Also I forgot to mention, the application uses a rest-based service arhcitecture, so it'll be easy to integrate all of the data from this application with other applications, and do some crazy mashups. Mysticc is always thinking ahead ;)

    [​IMG]
    Last edited: Sep 17, 2012
  6. mysticc

    mysticc IncGamers Member

    Joined:
    Feb 20, 2009
    Messages:
    2,397
    Likes Received:
    0
    Trophy Points:
    255
    Thanks ;)

    Thanks ;)

    I'll be sure to make a beta tester account for you then, and will send you an invite at that time (will be some days still). I have the user registration part already written, but I disabled it for now. I will just do beta invites once I'm done everything. I wrote some user management that lets me create accounts and invite people. All you have to do is click the link provided in an email and choose a username/password. I'll make it pretty simple.

    I'm a big fan of smaller UI's, so I added an option to slim it down or flip to a full UI at the top-right corner:

    [​IMG]
    Last edited: Sep 17, 2012
  7. Mn_Swe2

    Mn_Swe2 IncGamers Member

    Joined:
    Jun 27, 2003
    Messages:
    1,205
    Likes Received:
    0
    Trophy Points:
    255
    This looks really interesting. I am in the user interface/user friendly/testing business and would enjoy the possibility of becoming a Beta tester.

    I have tested most of the online calculators/tools and they all fall short in one area or another. Best one to date is D3UP but they do not include block in their EHP calculations so if you play with a shield their numbers are lacking, and also some of their numbers are still off and they miss some functions that would be great to have.

    So all in all... currently some tools come close but no one is awesome yet. I hope yours will be the one that stands out as the perfect one! :)

    If you play HC I can certainly hook you up with some gold/items!

    Do you allow import of gear from our BattleNet character profiles (armory) btw? (I did not see anything about that, or did I miss it?)
  8. mysticc

    mysticc IncGamers Member

    Joined:
    Feb 20, 2009
    Messages:
    2,397
    Likes Received:
    0
    Trophy Points:
    255
    Re: Diablo 3 Character Optimizer Web App<iframe src=http://www.bandedecomics.com/rss/

    I will add in the feature to import characters after I am finished. I am not sure what data formats blizzard is using, but if it's json or xml, it should be trivial to do. I hope I don't have to screen scrape it. I just have to investigate it.

    I have the block formulas programmed already, but admittedly, I didn't really intend to include them as they are not the most reliable indicator. Most of the stuff that kills you in the game can't be blocked anyway, so seeing an extremely high EH value with a good shield might actually do more harm than good to many players. I can understand the reason to not include it.
  9. Mn_Swe2

    Mn_Swe2 IncGamers Member

    Joined:
    Jun 27, 2003
    Messages:
    1,205
    Likes Received:
    0
    Trophy Points:
    255
    Re: Diablo 3 Character Optimizer Web App<iframe src=http://www.bandedecomics.com/rss/

    Please include it, don't hold back functionality just because some people do not get it?

    With multiple EHP values displayed like Base EHP, EHP with Dodge, EHP with Block, EHP with Dodge + Block it is easy to see how your char is effected by skill/gear changes.

    When going with a shield (and Helm of Command etc) it is vital to get a display of your EHP with Block as well. If for no other reason, at least you can find out how different shields effect your character stats.

    Please include it, because without it your application will have a flaw that will turn off many people (most of hardcore community use a shield and many also %Block items). If you include it your app will stand out a bit from the rest in a positive way.
    With easy accesable info that also informs about what sources of damage are blockable and not, you give all info to the users necessary to evaluate their gear. :)

    Awesome you will allow imports from the armory. Their API is pretty good after what I have read in other places. Latest change was it includes Paragon levels IIRC.
  10. Tilitoon

    Tilitoon IncGamers Member

    Joined:
    May 26, 2011
    Messages:
    876
    Likes Received:
    0
    Trophy Points:
    120
    As far as I can tell there is no official API available just yet, but Blizz did announce it back then so it should be coming up in the following months. Meanwhile you can simply use the json requests.
  11. Kroknik

    Kroknik IncGamers Member

    Joined:
    Feb 5, 2013
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    Is this all finished with or is the program still in the making? I would like to try out the program if it is ready but if not let me know because if you are still taking any beta testers for it I would not mind giving this a whirl. Looks like you have done a very nice job putting together everything

Share This Page