Mechromancer: Yet Another Mechlab Tool
#21
Posted 16 January 2013 - 10:38 PM
#22
Posted 17 January 2013 - 06:39 AM
Hubis, on 16 January 2013 - 06:59 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.)
Edited by MustrumRidcully, 17 January 2013 - 06:39 AM.
#23
Posted 17 January 2013 - 10:47 AM
MustrumRidcully, on 17 January 2013 - 06:39 AM, said:
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
Posted 17 January 2013 - 02:46 PM
#25
Posted 18 January 2013 - 05:21 PM
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
Posted 19 January 2013 - 04:12 AM
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
Hubis, on 15 January 2013 - 06:19 AM, said:
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.
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?
- 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.
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?
- 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.
- Well,this comparison either is not yet implemented or is so inintuitive I couldn't use it.I bet it's this 1st case.
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
Posted 19 January 2013 - 11:44 PM
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
Posted 20 January 2013 - 03:18 AM
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
Posted 20 January 2013 - 04:50 AM
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
#30
Posted 20 January 2013 - 07:49 AM
MasterBLB, on 20 January 2013 - 04:50 AM, said:
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
I wonder, wouldn't one of the best formats be one that's also compatible with other BattleTech tools - say, MegaMek?
#31
Posted 20 January 2013 - 11:18 PM
#32
Posted 21 January 2013 - 05:11 AM
#33
Posted 22 January 2013 - 06:08 AM
#34
Posted 22 January 2013 - 06:20 AM
MustrumRidcully, on 20 January 2013 - 03:18 AM, said:
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]
MustrumRidcully, on 20 January 2013 - 07:49 AM, said:
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.
MustrumRidcully, on 22 January 2013 - 06:08 AM, said:
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
Posted 22 January 2013 - 06:45 AM
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
Posted 22 January 2013 - 12:51 PM
#37
Posted 23 January 2013 - 07:29 PM
MustrumRidcully, on 22 January 2013 - 06:45 AM, said:
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.
MasterBLB, on 22 January 2013 - 12:51 PM, said:
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
Posted 24 January 2013 - 09:42 AM
#39
Posted 28 January 2013 - 11:52 AM
#40
Posted 09 February 2013 - 09:23 AM
2 user(s) are reading this topic
0 members, 2 guests, 0 anonymous users