Jump to content

Mechromancer: Yet Another Mechlab Tool


123 replies to this topic

#21 Elizander

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 7,540 posts
  • LocationPhilippines

Posted 16 January 2013 - 10:38 PM

This will be great for making mech build guides instead of cutting up the in-game screenshots and spending 20 minutes editing the guide image for the post. :ph34r:

#22 MustrumRidcully

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 10,644 posts

Posted 17 January 2013 - 06:39 AM

View PostHubis, on 16 January 2013 - 06:59 AM, said:

I'm not 100% sure how the game's heat efficiency is calculated -- if anyone knows, I can look into adding it.

I believe the one that understands it best is 3dworld that also does the Excel Mech Lab, IIRC. By what little I know, the formulaes are mostly useless, if not misleading (which is PGI's fault, not 3DWorld.)

Edited by MustrumRidcully, 17 January 2013 - 06:39 AM.


#23 Hubis

    Member

  • PipPipPipPipPipPip
  • 312 posts

Posted 17 January 2013 - 10:47 AM

View PostMustrumRidcully, on 17 January 2013 - 06:39 AM, said:

I believe the one that understands it best is 3dworld that also does the Excel Mech Lab, IIRC. By what little I know, the formulaes are mostly useless, if not misleading (which is PGI's fault, not 3DWorld.)


Yeah, that was my impression as well -- which is why I went for the more natural "Cooldown Time vs Firing Time" and "Heat vs Dissipation Ratio" measurements. I find the former one to be particularly useful, as it gives you a good idea exactly how much heat management will actually slow you down.

#24 Ethidium

    Member

  • PipPip
  • 42 posts

Posted 17 January 2013 - 02:46 PM

Its not that I think the in game value is particularly informative, just that everyone who plays the game is exposed to it, so it is easier to share that information. Everyone knows 0.9 is toasty and 1.6 is not.

#25 twibs

    Member

  • PipPipPipPipPipPip
  • 325 posts
  • LocationFinland

Posted 18 January 2013 - 05:21 PM

I like it alot. The weapons are in clear groups and actually I prefer the 'equip' button over the drag and drop feature. Especially love how you've handled the engine selection.

Then, of to suggestions:
Hard points - very hard to see. Font cold be bigger and also more apart from the critical slot box. Also adding color coding would help
Hardpoint colors - I see you've went to bit odd blue for ballistics, red for missiles and green for energy. I think the canon and more commonly accepted is yellow for ballistics, green for missiles and red for energy. This would make me feel much more at home with the Mechronomicon.
Weight - could use simple line which shows the remaining weight also like 68/70t (2t remaining)
Slots - Could show the remaining critical slots for easier overall view

Edited by twibs, 18 January 2013 - 06:56 PM.


#26 MasterBLB

    Member

  • PipPipPipPipPipPipPip
  • 637 posts
  • LocationWarsaw,Poland

Posted 19 January 2013 - 04:12 AM

As I promised,more thorough feedback.

1.Hard points
Well,as my precedessors spotted they are very,very little visible due to chosen font and lack of color-based information.
Please look at smurfy's lab as example - as you see,hardpoints are very easily spotted and distinguishable.Besides missile hardpoints have also very important information how many tubes they contain.
That's a detail,but you don't follow either smurfy's or mwo wiki's convention how to color-code a hardpoint type (green for missile,red for energy and yellow for ballistic)

2.Layout changes

View PostHubis, on 15 January 2013 - 06:19 AM, said:

Some layout improvements (Equipment now on the right, flows to the bottom depending on window width)

Well to say the truth this change is not the best one in my opinion.When I saw your mechlab the 1st time I was amazed how perfectly it fits in 1024x768 resolution,with a possibility to easily use larger ones by scaling or as you did by moving equipment list to the right of the mech equip inventory.
But I suppose you had no choice as you introduced a part details on the left.Besides,it gives you all the space needed to add weapon types tabs(energy etc) at the cost of a little scrolling down.

Btw,I'd like to ask you about something btw here,how do you draw the inventory?It's bitmap-based or raster-based graphics?

3.Info and Upgrades
Due to layout changes you have much of unused space both here where the current mech info is and on the right of mech inventory.Please consider to add:
  • Equipped weapons
  • Ammo quantity counter
  • Mech loadout c-bills total cost
  • Armor total (yes,I know it is in the stats tab,but it's not so convienient to switch here and back)
  • Slots available / total.
  • The Speed info would benefit if you add how fast a mech will run with speed tweak.
4.Add engine dialog

This idea is just brilliant (I especially like the column turning speed),but it could use few improvements:
  • Better positioning.Right now when I open the dialog it is displayed too low - buttons cancel and ok are hidden below bottom screen.(Opera 11.60,Win XP SP3).From what I see,you use standard for such cases calculation to center a window:
    setDialogPos(availableBrowserWidth/2 - dialogWidth/2, availableBrowserHeight/2 - dialogHeigh/2);
    Above works well as long as all the content fits vertically and there is no scrollbar.If there is,I think this formula will do the trick:
    setDialogPos(availableBrowserWidth /2 - dialogWidth/2, (availableBrowserHeight - verticalScrollbarMaxValue)/2 - dialogHeigh/2);
    .
  • It would be much,muuch welcomed if you allow to choose an engine by double click on it.I catch myself trying that all the time,and I suppose other users too.
  • Adding 2 more columns - engine internal heatsinks and speed with speed tweak also would be great.These should fit in 1024x768 resolution well.Hmm,and maybe another column with CBills cost if there will still be some space?
5.Stats tab
  • Well,later on when you'll introduce better heat calculations please consider also to add buttons/checkboxes to provide influence of all these mech tree skills like coolrun,heat containment etc.
  • Ability to set weapons into groups and calculate them separately would also be most welcomed.
6.Mechronomicon

Well,this is the worst part of your lab.But relax,it just need some improvements to be as awesome as the rest:
All tabs:
  • In 1024x768 the horizontal scrollbar is shown at the very bottom,which is inconvienient like hell.
  • The most needed improvement for your Mechronomicon is to display floating horizontal scrollbar shown always at the bottom of the current screen.
  • It'd be great if you add tooltips containing a column header value.C'mon,do you really want to scroll up/down here and there?
Mechs tab:
  • Hardpoint convention should be changed to <color-coded number> (see $1 too).Seriously,look at Hunchback 4P's total hardpoints for example.Is that convienient?
  • Columns headers needs to be drawn on the top of each expanded mech models.Switch please to 1024x768 then expand info about stalkers.This feature is not so needed if you introduce tooltips mentioned above.
Weapon tab:
  • Well,this comparison either is not yet implemented or is so inintuitive I couldn't use it.I bet it's this 1st case.
7.Export loadout to file.
The 1st and most important - why such strange extension??Just make exporing into plain .txt,later on you could also consider exporting into a .xml.
The feature seems to be barely implemented as the output file has not the quality you already presented elsewhere.For an inspiration please look at majora incarnate's java mechlab

8.Making link to a loadout
It'd great if you manage to automatically select content of the text edit and send it into cliboard on mouse click.Some message telling the link is copied already would be also handful.

Again,I have to say you are making a great work here Hubis.Keep it up,and expect donation from me ;]

Edited by MasterBLB, 19 January 2013 - 04:24 AM.


#27 Hubis

    Member

  • PipPipPipPipPipPip
  • 312 posts

Posted 19 January 2013 - 11:44 PM

Thanks, some good feedback here. I'm trying to tighten up the vertical space some so hopefully that will help the layout problems you're seeing on 1024x768 (I agree, scrollbars are annoying :) )

The loadout file is a standard YAML data format, thus the extension. An XML-based import/export might come in the future, but I'm not really sure what else I could do with it to make the fie itself more useful.

I'll look at adding some of the things you mentioned when generating a permalink, as I agree it kind of bothers me as well.

For the Mechronomicon stuff -- that is by far the oldest code I have, as I wrote it to verify I was dumping data from the game properly and never went back to fixing it up. I'll take all these suggestions and see if I can spruce it up a bit, as I agree it's a bit of an ugly duckling right now.

As for all the rest, I will add it to my notes and look at it when I get a chance. Double-click selection for engines seems like an obvious change, as does potentially adding some information to the display and making it more aware of the window size. Thanks again!

#28 MustrumRidcully

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 10,644 posts

Posted 20 January 2013 - 03:18 AM

Ah, here's another challenge...

Your list of sustainable DPS seems not "optimized". For example, on a mech with 2 Gauss Rifles and 2 PPCs (CTF-3D - Omega-Catastrophe), you list the sustainable DPS as 4.1 DMG/Sec. But if someone where to only fire the 2 Gauss Rifles, he'D never run into any heat issues, meaning the DPS is actually at least 75. (OF course, the example mech I list there has only 20 shots for the Gauss Rifle, so it may still be a meaningless value. But you get the idea...)

Basically, too get a better feeling for it:
Start adding the weapon with the best DPS/HPS ratio until the HPS ratio would exceed the HPSdissipation
Add one last weapon DPS value modified by the remaining HPSdissipation

So for this example:
HPSdissipation = 1.88
Gauss Rifle DPS/HPS = 15
PPC DPS/HPS ratio = 1.11
So sequence of adding would be
1. Gauss Rifle (1.63 HPS remaining; Total 3.75 DPS)
2. Gauss Rifle (1.38 HPS remaining; Total7 DPS)
3. PPC (0 HPS remaining; Total 8.53 DPS)
4. PPC - NOT ADDED, OUT OF DISSIPATION

Edited by MustrumRidcully, 20 January 2013 - 03:18 AM.


#29 MasterBLB

    Member

  • PipPipPipPipPipPipPip
  • 637 posts
  • LocationWarsaw,Poland

Posted 20 January 2013 - 04:50 AM

I'm glad I could help :)
About conversion to file,well I think the best one would be just common .txt file.For details check majora's program,he did that really well.
Good luck with updates :lol:

#30 MustrumRidcully

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 10,644 posts

Posted 20 January 2013 - 07:49 AM

View PostMasterBLB, on 20 January 2013 - 04:50 AM, said:

I'm glad I could help :)
About conversion to file,well I think the best one would be just common .txt file.For details check majora's program,he did that really well.
Good luck with updates :lol:

I wonder, wouldn't one of the best formats be one that's also compatible with other BattleTech tools - say, MegaMek?

#31 MasterBLB

    Member

  • PipPipPipPipPipPipPip
  • 637 posts
  • LocationWarsaw,Poland

Posted 20 January 2013 - 11:18 PM

I've discovered a serious bug on opera 11.64 - during export to permalink the link text edit does not fully take focus and while selecting the link with moving mouse or ctrl+a all the content of page is selected.

#32 Elizander

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 7,540 posts
  • LocationPhilippines

Posted 21 January 2013 - 05:11 AM

More likes for all and freebump. Busy at work so can't tinker with it too much at the moment but MasterBLB seems to be doing a great job ;)

#33 MustrumRidcully

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 10,644 posts

Posted 22 January 2013 - 06:08 AM

One thing I heard suggested elsewhere - a "damage till shutdown" statistic. THat might be interesting for considering the choice between an alpha build and a sustained damage build. If all you can do with a build is lower its DPS to make it last 10 seconds longer, but you still get the same (or suffiicently similar) end damage, then going for the shorter-lasting build is not a bad idea.

#34 Hubis

    Member

  • PipPipPipPipPipPip
  • 312 posts

Posted 22 January 2013 - 06:20 AM

View PostMustrumRidcully, on 20 January 2013 - 03:18 AM, said:

Ah, here's another challenge...

Your list of sustainable DPS seems not "optimized". For example, on a mech with 2 Gauss Rifles and 2 PPCs (CTF-3D - Omega-Catastrophe), you list the sustainable DPS as 4.1 DMG/Sec. But if someone where to only fire the 2 Gauss Rifles, he'D never run into any heat issues, meaning the DPS is actually at least 75. (OF course, the example mech I list there has only 20 shots for the Gauss Rifle, so it may still be a meaningless value. But you get the idea...)

Basically, too get a better feeling for it:
Start adding the weapon with the best DPS/HPS ratio until the HPS ratio would exceed the HPSdissipation
Add one last weapon DPS value modified by the remaining HPSdissipation

So for this example:
HPSdissipation = 1.88
Gauss Rifle DPS/HPS = 15
PPC DPS/HPS ratio = 1.11
So sequence of adding would be
1. Gauss Rifle (1.63 HPS remaining; Total 3.75 DPS)
2. Gauss Rifle (1.38 HPS remaining; Total7 DPS)
3. PPC (0 HPS remaining; Total 8.53 DPS)
4. PPC - NOT ADDED, OUT OF DISSIPATION


So, this is a tricky problem.

As far as I can tell, finding the "optimal" combination of firing actions for a given mech to produce maximum DPS over a specified time at a specified range is (pardon the Computer Science terms) isomorphic to the "Discrete Knapsack Problem" which makes it NP-Complete. Without getting too far into the details, what that means is that it's provably impossible to always generate the best solution using a simple algorithm. The only way you can guarantee you will always get the "correct" answer is to generate every possible solution, and then pick which one has the highest value. For anything beyond a small number of weapons over a fairly short period of time this can get very computationally expensive.

So what I do is use a greedy algorithm that will generally give you the best results, but which definitely has some blind spots because of assumptions it makes. Something like that build (or even a simple "2xGauss + 2xMedium Laser" build) can lead to the energy weapons drowning out the gauss rifles, even if not firing them at all and JUST using the Gauss would give you a better result. For the 2xGauss + 2xMedium Laser build it's not as noticible because the ML have a short range, but Gauss+PPC is obviously a much worse case.

I do think there may be some bugs in my implementation that I can work out to reduce this problem, though, so I'll look at that test case and see if anything can be done.

e: I was going to type out a brief description of the algorithm, but it's way too messy to be easily explained. I can paste in the code if anyone's actually interested (it's in JavaScript).


[/CODE]

View PostMustrumRidcully, on 20 January 2013 - 07:49 AM, said:

I wonder, wouldn't one of the best formats be one that's also compatible with other BattleTech tools - say, MegaMek?


Now THIS is an interesting idea. Obviously you couldn't export something perfectly, since MWO does not match tabletop in a few areas (points of armor/ton, the limitation of hardpoints, etc.); however, there shouldn't be any problem with being able to do a one-way conversion and export to a format that's readable by, say, Megamek or Solaris Skunk Werks.

View PostMustrumRidcully, on 22 January 2013 - 06:08 AM, said:

One thing I heard suggested elsewhere - a "damage till shutdown" statistic. THat might be interesting for considering the choice between an alpha build and a sustained damage build. If all you can do with a build is lower its DPS to make it last 10 seconds longer, but you still get the same (or suffiicently similar) end damage, then going for the shorter-lasting build is not a bad idea.


Yeah. You can actually figure this out by multiplying "Peak DPS" by "Peak DPS Time" on the stats page -- that's exactly what those two things measure. There's no reason I can't include it for you, though.

#35 MustrumRidcully

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 10,644 posts

Posted 22 January 2013 - 06:45 AM

Yeah, it'S true, you could calculate it yourself as a user, but we all know - math is hard. ;)

I agree that trying to work out an optimum solution for the NP-complete problem is not very practical. But I wonder if the algorithm couldn't take at least into account what the lowest heat / damage weapons are and favor them. It might not be perfect, but reasonable. And since we're in the wishes-are-horses terrain here, having a write-up of the suggested firing pattern (if the algorithm provides one) could be cool, too. :)

#36 MasterBLB

    Member

  • PipPipPipPipPipPipPip
  • 637 posts
  • LocationWarsaw,Poland

Posted 22 January 2013 - 12:51 PM

BUG - put armor to exceed a mech tonnage,then try to use - button to substract armor from a part.It won't work till you use slide bar to meet the tonnage.

#37 Hubis

    Member

  • PipPipPipPipPipPip
  • 312 posts

Posted 23 January 2013 - 07:29 PM

Minor update to include the new patch data, and some small bug-fixes under the hood. I've got some big features coming (Module/Skill support) so once that gets implemented I will get around to some of the suggestions recently mentioned in this thread.

View PostMustrumRidcully, on 22 January 2013 - 06:45 AM, said:

Yeah, it'S true, you could calculate it yourself as a user, but we all know - math is hard. ^_^

I agree that trying to work out an optimum solution for the NP-complete problem is not very practical. But I wonder if the algorithm couldn't take at least into account what the lowest heat / damage weapons are and favor them. It might not be perfect, but reasonable. And since we're in the wishes-are-horses terrain here, having a write-up of the suggested firing pattern (if the algorithm provides one) could be cool, too. :)


It actually does try to do this -- basically, for each range it determines the damage a weapon does at that range, and then the damage-per-heat based on that. Each time-step it determines which weapons it can fire (not in a cool-down period) starting with the most heat-efficient, and fires them if there is sufficient capacity. There's extra capacity built in for each weapon -- a less efficient weapon will never fire unless there's enough spare heat that all the more efficient weapons will still be able to fire when they're ready. In theory, this should prevent the problem you're seeing from having; however, there may be a bug in the code, or a bug in my algorithm. Digging into this further is (like so much else) on the to-do list, but hopefully I'll get around to it on the much sooner side as this is one of the more valuable features in my opinion.

View PostMasterBLB, on 22 January 2013 - 12:51 PM, said:

BUG - put armor to exceed a mech tonnage,then try to use - button to substract armor from a part.It won't work till you use slide bar to meet the tonnage.


This *should* have been fixed in a stealth update I just did to add the new patch stuff -- you can now always remove armor, even when overweight.

#38 Dauphni

    Member

  • PipPipPipPipPipPip
  • Ace Of Spades
  • 473 posts
  • LocationNetherlands

Posted 24 January 2013 - 09:42 AM

I think a nice solution to the optimal fire problem would be to make a graph of your total damage as a function of time, combined with the associated heat level. If you're able to set your own weapon groups you could compare continuous fire for each one, and just let the human brain do the tricky math bits. It's surprisingly good at the fuzzy logic you'd need to get some use out of it.

#39 Hillary Rodham Kerensky

    Member

  • Pip
  • 10 posts

Posted 28 January 2013 - 11:52 AM

This is the best mechlab tool. All other mechlab tools are inferior terrorist loving scrapheaps.

#40 Rivy

    Member

  • PipPipPipPipPip
  • 118 posts
  • LocationRiver City for the 7th time in a row >:I

Posted 09 February 2013 - 09:23 AM

I love this thing. But recently, on Chrome, if I click the "+" or "-" buttons on engines to add or remove heat sinks it just sends me to the "change engine" popup :/





37 user(s) are reading this topic

0 members, 37 guests, 0 anonymous users