Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MML Development
#1
Hello,

I am using MML for quite some time and as there is no possibility to customize dropships I figured, why not implement it myself. To get known to MML I want to implement Conventional Fighters first and while working through all the code I realized that a lot is missing in the Aero tab. For example the production year has no effect on the available engines. My question: Is this intended as there is already someone working on this or was there no time? Is the Aero tab currently under review? Than it might not be wise to alter anything from my side. Or did I miss something in the code?
Also is there a developer forum or do you guys pm?

Thanks

Zero
Reply
#2
the devs have their own forum, this one is for the rest of us.
Reply
#3
I wrote the Aero tab a couple years ago.  I mostly copied what was in the Mek tab and made it work for aeros.  In general, MML has a severe case of hard-coding values.  When I wrote Aeros, I tried to update things where I could to be more dynamic, but some things are still hard-coded (like what engines are available).  The ability to determine an engine rules/tech level given a year was added recently to MM, so it's now possible to populate the engine dropdown based on the unit's production year and rules/tech level, but it hasn't been implemented.

When it comes to priority, MML seems to get the least amount of attention from developers.  I would like to work on it more, but it's hard enough keeping up with MM.  No one that I am aware of is actively working on tasks for MML.  If you want to tackle conventional fighters, feel free.

Let me know if you have questions.

In general, I have tried to add "rules" type information for units to the TestEntity subclasses.  These are the "verifiers" that check to see if an entity meets the rules.  If the rules have an impact on gameplay, then sometimes they are stored in the Entity subclasses instead.
Reply
#4
It seems to be more effective to copy the vehicles tab and merge it with the current Aero tab as CF have an upper tonnage limit of 50 (like hover) and have quite alot in common with vehicles (no heat tracking, 50% more weight for SFE, power amplifiers etc). As MML has the least priority I want to give it some love. I have the rulebooks and use MML alot thus its time to give something back.

In which class in MM are the engines and years stored? And other equipment like cockpits/Armor?
Reply
#5
For equipment, there's an EquipmentType, AmmoType, WeaponType, MiscType hierarchy.  Everything is a subclass of EquimentType, and then weapons are instances of WeaponType.  Most of the equipment then becomes MiscType, which is defined in megamek.common.MiscType.  It's somewhat of a poor system, and it'd be good at some point to have the equipment in a file rather than defined in code, but it's not there yet (there's a patch on the SF tracker which I've been meaning to incorporate for a long time).

Engines, cockpits, and gyros fall outside of this.  In fact, this comes down to CriticalSlot, which is a class that keeps track of what can go into a crit.  These have two categories: equipment and system.  If the critical slot is of type system, it contains an inherent (required) system for a unit, like cockpits, gyros, engines for meks.  If it's a system, it's identified by a defined value.  If it's equipment, it has a Mounted entry which contains some EquipmentType. 

It kind of goes CriticalSlot -> Mounted -> EquipmentType.  CriticalSlot is a location that a piece of mounted equipment can go.  Mounted keeps track of a mounted piece of equipment's state (aka, is it hit, destroyed, jammed, etc.), and the EquipmentType keeps track of what piece of equipment the Mounted instance represents (aka, is it a medium laser, an Angle ECM, etc).

This is a framework prescribed by MM, but since MML is built off of MM, it gets inherited.

So, I think to answer your question, you can look in MiscType.java for equipment information.  Engines are housed in megamek.common.Engine.  Cockpits and gyros don't have their own files.  Some information for them is stored in TechConstants.java, other information is stored within Entity subclasses like Mech.java.
Reply
#6
As the guy who builds lots of units for MM....  I want to say...Thanks you! and look forward to seeing things progress.
Reply
#7
I have found some disparities between the impelementation of ASFs and official recordsheets, mainly the absent of a body location for CASE and Ammo. Furthermore dropships/Warships don't save weapon bays. This might need a complete revamp of the blk file thus I am posting here. Furthermore as you said you consider creating a datafile for all the equipment, I might start a Database class which would allow to store and read equipment data from a file if you allow. The file can than be expanded and incorporated into MML and later MM (as for MM there needs to be a lot more information included) I obviously have to see if this creates a significant delay in loading time, as all the classes would have to be createted during initialization (MML) or before game start (MM - only the equipment needed for the current units). What's your opinion on this?

Update: WS/DS also need a Body location for Naval Comm Scanners/ECM/Active Probes/Naval C3/etc
Thus the Aero-class as a whole needs an update. I don't know if this would brake MM therefore I am not trying anything before you reply
Reply
#8
Just grab git, an account on github, fork MM and MML and do what you want. Once you find something the devs are interested in clean it all up and post a pull request.

As long as you have your own git repo it doesn't matter how much you rewrite MM/MML so experiment away. If you find something that works better then bring it up here to discuss it. It will give you a better idea of how the devs feel about your pet project as well as general advice on how to work it so you stand a better chance of it being included in MM/MML

See Entity Sprites For a lively discussion on an accepted Pull Request
and Maven For a rejected Pull Request (and why)

I also poked arlith in one of my pull requests to hurry up with a coding style wiki entry for those of us who are not mind readers.

With the current issues in Aero why not switch to adding Support Vees? It is also something missing and another area of MML that needs some love.
Reply
#9
(03-03-2016, 11:20 AM)HptmZero link Wrote: I have found some disparities between the impelementation of ASFs and official recordsheets, mainly the absent of a body location for CASE and Ammo. Furthermore dropships/Warships don't save weapon bays. This might need a complete revamp of the blk file thus I am posting here. Furthermore as you said you consider creating a datafile for all the equipment, I might start a Database class which would allow to store and read equipment data from a file if you allow. The file can than be expanded and incorporated into MML and later MM (as for MM there needs to be a lot more information included) I obviously have to see if this creates a significant delay in loading time, as all the classes would have to be createted during initialization (MML) or before game start (MM - only the equipment needed for the current units). What's your opinion on this?

Update: WS/DS also need a Body location for Naval Comm Scanners/ECM/Active Probes/Naval C3/etc
Thus the Aero-class as a whole needs an update. I don't know if this would brake MM therefore I am not trying anything before you reply

I don't see where you're getting the idea that Aeros need a body location from.  Could you cite some rules?
Reply
#10
I don't think there are any real rules but they are mentioned in the rules. One of the aero examples in tech manual list several items going into the body/fuselage and several unit TRO entries list equipment in the body. Example, Vendetta Medium Fighter from XTRO Primitives III
Quote:Weapons and Ammo Location Tonnage Heat SRV MRV LRV ERV
Large Laser Nose 5 8 8 8 – –
Small Laser Nose .5 1 3 – – –
Medium Laser RW 1 3 5 – – –
Medium Laser LW 1 3 5 – – –
6 External Stores Hardpoints Body 1.5 – – – – –
Advanced FCS Body 1 – – – – –

Tech Manual Aero construction example
Quote:To fi nish confi guring this Sabutai Prime, Scott places the
gauss rifl e in a Nose slot, backed up by one of the ER small
lasers. He places the other 2 ER smalls in the Aft arc, with
each taking up a weapon slot there. He then adds a PPC and
a large pulse laser to each wing, at 1 slot per weapon. The
gauss ammunition, CASE and extra double heat sinks do
not occupy added weapons slots, and are considered to be
located in the fi ghter’s body or fuselage.

And CASE construction rules
Quote:Aircraft and aerospace fi ghters
with CASE place this equipment in their fuselage as well, at no cost in weapon slots.

Targeting Computer
Quote:Fighters also
treat the targeting computer as a single item located in the Body (Fuselage), with no loss in weapon slots.

Seems to be used much like the body section of a combat vee. No construction rules, just somewhere to shove anything that doesn't really take up slots or go anywhere else.
Reply
#11
Exactely. Communications equipment is another type. The body location might also take cargo/transport bays.
Reply
#12
I don't have a major problem with adding a new hit location.  The only problem would be how it effects other code.  I know Aeros already have a "special" WINGS location.  I'm not sure offhand how the body location is handled for vehicles.
Reply
#13
Also, a lot of times it's easier to have discussions in real-time.  When I'm available, I'm generally in the #battletech channel on irc.esper.net.  There's a link to the mibbit IRC webclient on the MM's "Where to play" page: http://chat.mibbit.com/?channel=%23battl....esper.net
Reply
#14
(03-04-2016, 10:38 AM)Arlith link Wrote: I don't have a major problem with adding a new hit location.  The only problem would be how it effects other code.  I know Aeros already have a "special" WINGS location.  I'm not sure offhand how the body location is handled for vehicles.

As far as I know, you never hit the 'body' of a tank. There are internals for the turret, front, rear, and left and right sides that can take hits but there's no way to hit the 'body' location because if you 'destroy' any of the 'outer-facing' sections, the whole thing is already dead. There are special crits that can hit the ammo in there but it's not a true hittable location.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)