Monday, September 14, 2015

Dev Diary, Week 1 - BattleTech Design Software

I'll be doing these weekly updates to my development progress until I am completed.  If you want more detail, as in a *LOT* more detail, you can join my facebook group instead.  Whenever I go beta, those will be the guys that know about and get it first though.

If you want to help, I have already done all the hard stuff, and all that is left is coding.  Splitting coding to a team IMO reduces the quality of the code, so I'll be doing it all myself.  If you really want to help PM some moderators on the forums and have them reinstate me, not like they haven't done that before to perma-banned folks that were far worse than I was.  However, at some point perhaps I'd be better off just forgetting about it like most of my fellow BT players have with the "I don't use the forums because of the politics" comments.

So, week 1, a lot of progress, but not nearly as much as I had hoped.  I had a family drama night, got tied up another night (literally, haha), and I have vendors here until about 6 or so working on my house siding, but I still got a few good nights of coding in there!  I also put together a few IWM LAM miniatures, which are a freaking pain (hands separate, REALLY?!?!?!), and got a few dozen more micro-armor pieces assembled in preparation for me learning to airbrush in the next couple weeks (which yes, will cut back code time a bit).

I'll keep these updates much less verbose than my daily's, so here goes:


  • Wrote initial code to parse the classes.  I can now start up the app, choose a tech base (clan, IS, etc), chassis type (mech, proto, sv, cv, etc), a mobility type (quad, lam, hover, etc), a weight class (light, medium, etc), and a tonnage.  I also now properly parse structure, cockpits/control, engines, gyros, and armor.  None of these sum up weights or costs or anything, but that will come soon enough.  Still a couple minor bugs (an infantry platoon crashes it) but these are also easily fixed as I get to them.
  • Cleaned up my chassis data source.This is 177 unique values for 653 unique chassis (400k of data right now) that does things like determine the tonnage, structure points, what parts (arms, legs, turret, etc) a unit has, and various other things.  This is a critical first step to moving forward.
  • Cleaned up a large chunk of my equipment data source.  This file has 115 unique values (one of which that can be 20 or so other values) for 2232 pieces of equipment (9mb of data right now).
  • Added objects so I can load all the chassis, equipment, as well as my 6845 unique element types (45mb of data right now) upon startup.  It currently takes about 14 seconds at most to do all this, but it isn't optimized or multi-threaded yet and should be much faster upon release.
  • I created a feature list.  I'll post it at the bottom as I think that is important enough to post on the weekly update.  Please comment if I am missing something that should be there!
  • Created a method to dynamically populate an object from my tables.  This may not sound like much, but it went from a thousand or more lines of code to 3.  Plus, this allows the fans to create their own datasets to use quite easily, which I think most folks will like.

Currently planned feature list:

ABSOLUTE PRIORITY
- Designer for BattleMech/IndustrialMech
- Designer for ProtoMech
- Designer for Battle Armor
- Designer for Conventional Infantry
- Designer for Combat Vehicle (WiGE, VTOL, Hover, Wheeled, Hydrofoil, Naval, Submarine)
- Designer for Support Vehicle (WiGE, VTOL, Hover, Wheeled, Naval, Fixed-Wing, Rail, Airship)
- Designer for Aerospace Fighters and Conventional Fighters
- Designer for Small Craft
- Designer for Dropships
- Designer for Jumpships
- Designer for Warships
- Designer for Space Stations
- Designer for Buildings
- Designer for Mobile Structures
- Automatic Update support
- Output record sheets to PDF
- Output to Alpha Strike cards
- Load/Read all canon designs (including full search capabilities, including by weapons loadouts and owned miniature inventory)
- MUL integration
- Links to art, megamek icons, faction/unit logos, etc, all of which can be added to the record sheets
- Support for Strategic Battle Force and ACS
- Force tracker
- Designers can have limits by year, tech rating, technology type, rules level, faction availability, and allow for prototype equipment
- Support for canon and custom integral, with custom always having a note on them so it is obvious
- Pre-existing damage
- Support for atmospheric conditions and scale differences when creating record sheets
- Ability to input damage to units and track them, repair times are calculated.
- Support for quirks
- Support for ALL rules will be implemented, even stuff in various April Fools products (though obviously marked as non-cannon)
- Support for uploading designs to a centeral location, for others to download

HIGH PRIORITY
- Custom Equipment Types
- Output record sheets to PNG
- Ability to output a TRO format to PDF
- Ability to output a TRO like equipment rulset to PDF (this would include all errata)
- Random Force Generator, with support for RATs from all the books od a more dynamic system
- Random Star System Generator
- Random Scenario Generator
- Take a design, make changes, return the refit level, amount of time it takes, rolls, etc
- Export designs to XML
- Export designs to Text
- Multiple language support (this requires design changes in the app, but languages can be added easily after)
- Option for some of my special rules (mostly alpha strike, things like tracking how some units may only have 1-2 turns of ammo, repair costs, underwater attacks, rocket launchers as an abiliity, and so forth)
- Option to use my own "above alpha strike" system. Essentially AS is now at a 4:1 scale for elements:maneuver units, I'll add support for 12:1, 36:1, and 108:1 (plus clan/wob/CS equivalents) to better support strategic games (ACS is completely broke IMO)

MEDIUM PRIORITY
- Designer for Base Layouts
- Illegal Designs
- Output Unit data to Megamek MTF
- Integrated combat simulator (real time battletech with megamek style graphics)
- Support for special pilot abilities
- Inner sphere hex map with factories and planet data
- Designer for A Time of War characters (LOTS of data entry needed, could be a late feature)
- Dynamic record sheets. Basically a record sheet you bring up and can mark damage/crits to instead of using paper.
- Unit availability list. Essentially each element gets a popularity, from 1 to 100, by era, and then random tables can be created dynamically from that.
- Box of Death

LOW PRIORITY
- Random unit generator (not sure how well I could do this)
- warchest campaign support
- New unit acquisition
- Support for custom rankings on all units. Think Mech A is the best ever? Give it 10/10, think Mech C is the worst? Give it 1/1. All the users upload that data and when you view mechs, you can also sort by player rank.

VERY LOW PRIORITY
- QR Codes on Record Sheets
- Random Map Generator
- Full inner sphere in flames game. I'll have to custom the rules, as published ones won't work at all.
- Export to HeavyMetal Pro (probably end up getting dropped as HMP doesn't support everything, and it may just be a PITA)
- Export to SSW (probably end up getting dropped as SSW doesn't support everything, and it may just be a PITA)
- My own proprietary system to map out entire planets, accurate to the hex, for only a few mb of space.
- Icon Generator (something to make unit icons from Strategic Ops)
- Tables (basically a page to select any of the tables from the game, and press a button to roll on them)
- Custom record sheet designs (this may just happen anyway, depending on how I write the code. The old BTE site EASILY allowed for this, so I'll try to keep that process)
- Color themed record sheets (faction colors?)
- Ability to recolor black and white graphics on images (I did this on the BTE site, I could specify a few colors and the drawings would be recolored, might implement that same thing)
- Integral combat map. Basically draw the game map in the app, and you can use it to track things like doubleblind, building damage, terrain damage, fires, smoke, illum, etc
- Web based version of the product, or perhaps just one published for folks to use on non-windows devices.

CURRENT ISSUES
- Many unit types have no alpha strike cards. I'll have to design these if CGL doesn't release one.
- Some units don't even have record sheet designs, so again I'll probably have to design these.
- PDF creation can be tricky, I want to find a fast way to do it without any 3rd party libraries, but may be forced to use them.
- I still have a lot of questions on rules and equipment that haven't been answered, these will often result in "bugs".  I'd ask on the forums but....

No comments:

Post a Comment