Monday, November 16, 2015

Dev Diary Week 10 - BattleTech Design Software

Quick update as I'm exhausted tonight.

This week I finished up a lot of the code flow, tweaked the way actuators work, made a LOT of little bug fixes, and started working on supporting all the armor options.

Funny thing.  Buildings can be up to 30 hexes in size, and up to 30 levels tall, and each hex can have a turret.  This means to track building damage you need 900 groups of CF (1 per hex, 1 per level) of up to 150 (1500 for capital scale), PLUS armor, PLUS turrets.... its horrible.  I'll have to create a dynamic system to be able to handle that sort of system... no biggie, just didn't realize it was THAT mind boggling!

I also have costs *mostly* working now.  I can create an AS7-D Atlas and the cost is right except the lower arm and hand actuators, which I haven't written up the actuator allocation part yet (things like PPCs on omni's replace hand actuators, need special handling).

Years of availability are also right, so you know when a unit is available as experimental, advanced, standard, and tournament legal.  Weights are also working in most cases.

I think I'm only getting about 4-6 hours per week on this, so for the 10 weeks I've been working on it it is really only a full week, though probably not that much as I've had a lot come up.

Anyway, chugging along.  I'll try to finish up all the armor combinations for various units next, and maybe work on the critical allocation system after that, dunno yet.

Other battletech news:  I bought 11 of the new lance packs, for the cards and the 2 new miniatures.  Nice stuff.  I *really* hope the alpha strike boxed has 13 reseen miniatures, plus 10 or so clanners and some nifty design, but we'll see.  If they are that, I'll take a dozen please! :)

Been a couple weeks now since the Battletech Kickstarter closed.  I haven't seen a pledge manager yet to add on the $140 in books, but based on their past kickstarters we will only see a communication a month so I guess maybe in a couple weeks.

Tuesday, November 10, 2015

Dev Diary Week 9 - BattleTech Design Software

Sorry I was a day late on this one.  Had a frustrating programming session this weekend and stayed up too late to do the update.

Not a lot new to show, but that doesn't mean the week was without progres!  This week was mostly interface tweaks, adding things like tooltips and changing of the way various item lists are displayed.  I also implemented fuel, and made numerous behind-the-scenes changes, and added saving some defaults to speed up my development time.

I am still tinkering with the interface a bit more before I dive into the 200 or so unique variables applied to various equipment in order to make sure all designs are legal.  This is kinda time consuming, but not really all that hard due to the way I designed the application.  

Once I get those variables done I have to focus on equipment selection.  I want to only show ammo for items you have put on your unit.  I need to ensure proper arcs are shown as an option, consolidate multiple similar items down to 1 line, show the arcs on the same line, and implement "addon" support for things like Artemis, Apollo, Pintles, One-Shot, MG Arrays, and so forth.

I'll then have some minor things that are pretty easy to do, like bay allocation for DS/WS/JS/SS, crew allocation, frankenmech support, and crew augmentations (both for vehicular pilots and infantry platoons).  

After those it'll be BV, which I want to make sure all other things are done first.  Weight, cost, availability, tech rating, and years for each rule level are all ready pretty much done.  BV will be the last consolidation thing.

Then I'll go add the alpha strike conversions, which isn't too hard.

And finally record sheets.  After which I'll start focusing on all the extra bells and whistles I promised.

I am developing slow though, due to a few reasons:
#1.  War Thunder.  I play this game a lot, and sometimes when my brain isn't "into" coding instead of focusing it, I take my tank and go blow stuff up :)
#2.  Real life.  I do have a wife that requires a certain amount of attention or she'll kill me.  Therefore at least 1-2 hours a night I usually spend with her.  This usually means the earliest I code on weeknights is 8:30-9.
#3.  Sleep.  I can stay up till 11-12 just fine, but sometimes when you are doing things on a computer your brain says "Uhhh, nap time!" and I kinda fall asleep in my chair.  It doesn't happen too much, but it happens often.  I'll usually go play war thunder when I get too tired.  I have MS and a slew of veterans related issues, which doesn't help things.
#4.  Sometimes I get a new group of toys in, miniatures/books/etc, that can kill the nights development.  I have 3 tripods on the way and 11 boxes of lance packs for example :)  I also have a LOT of GHQ 1/285 and 1/2400 stuff I still haven't finished assembly on.
#5.  I still play battletech with my group here in DFW.  I often run games, to stay busier during play, but it still eats through 1-1.5 days for prep time and game play.
#6.  Sometimes I get sidetracked by things.  

My anniversary is tomorrow the 11th (married in 11/11/01!) which is also veterans day, but I took Thursday/Friday off to hopefully get a good 8-16 hours by the next update.

I doubt I've put in 40 hours on coding at this point, which means I'm only probably getting a good 4 hours a week in on it :(  It'll get done, but not as speedy as any of us would like.

The official software request thread from CGL on the forums that made me start doing this has ended up where all of them end up.  Zero progress, and 2 sides bickering over all digital or all paper.  One guy did some great HTML5 work, and had a great interface, but we've all seen many mech designers for 3025 stuff with some 3050 thrown in (I could do a designer in excel for any single item in under a day with *most* stuff supported), it is orders of magnitude more complicated to support everything and all the rules.

Anyway, thanks for stopping by!

Monday, November 2, 2015

Dev Diary Week 8 - BattleTech Design Software

Week 8, not a real productive week, I suck, however it was far from unproductive!

Again, I go into more detail on my daily facebook group, so this is just the highlights.

Now, it all isn't done, there are numerous issues I can point out in the attached picture, but it is pretty considerable progress.

Though not 100%, the following parts are now working:
- Total weights (no ammo counted, also did not exclude free HS that come with engine yet)
- Total unit cost (missing life support, sensors, chassis multiplier, free HS, and musculature in pic)
- Overall tech rating of unit, so you know where you can get one.
- Availability of the unit in all 4 (yes 4 now, thanks IOBeta!) eras
- The 5 years are determined (Prototype/L3/Exp, Introduction/L2/Adv, Common/L1/TL, Extinction, and reintroduction) so you know when what you are designing could possibly have been built, and went it become extinct.

Sorry it isn't sized right, blame blogspot.  Click here for full size.

I still have a lot of cleanup, and some item renaming, but getting closer.  It'd help if I spent more than 4 hours a week on it, but you know, life. :(

Other stuff:

I already found a bug in the way SSW deals with actuator cost, which apparently has resulted in at least the AS7-D cost on the MUL being incorrect, though I suspect many others may be affected, and this was just an original 3025 design!  Hopefully SkyHigh will notice and fix it.  Not sure if MegaMekLab does it right, hope so I guess, but I don't really care as nothing ever written in Java hasn't sucked (interface/stability wise - not the developers faults) and I don't use MML.  :(

I wrote a little excel spreadsheet to track the necessary roll and time it takes for a repair based on rules in Strategic Operations.  Note that you always want the best possible techs you get, else you will always be sending your mechs back to the factory for refits, else they fall apart on you.  Interesting stuff, anyway link here.

Looks like the HBS Battletech kickstarter met all its goals, with plenty of time to spare, woot.  Stretch goals are pretty weak IMO which hurt it, and I have like 5% faith the game won't be boring as heck (War machine was made into a great looking turn based game, but it plays so slow I just can't keep interest). Nothing like waiting 15 minutes for your opponent to move something as you sit there and twiddle your thumbs.  They aren't implementing the features necessary for it to have a long life (custom maps, custom units, modding) and are using the unity engine, which nearly always results in nothing more than mediocrity.  But I funded it anyway, because its battletech!

A whopping 12 views last week, probably mostly on my facebook group, hopefully once I'm done the community finds out about it.  I'd hate to think only the 30 or so users on my facebook group are going to be users, but that'd still be enough ;)

Monday, October 26, 2015

Dev Diary Week 7 - BattleTech Design Software

Wow, 7 weeks already!  Well some weeks I'm much more productive than others.  This one I lost a couple days because I didn't want to code at night while we were getting storms, as our power is pretty flaky and I don't have enough UPS's for all my computers.  Also had some work jump in there, and my wife was sick.  Still though, I got quite a bit done.

In short, I am now at the point I need to total up the weight of a unit, then its cost, then years/availability, and finally BV.  Still some little tweaks to make here and there, but darned close to a somewhat usable product.  Record sheets will come later, as they are kinda easy in a way but very time consuming.  I have already done most of them before though, and may get lazy and fall back on those methods which worked fairly well instead of reinventing the wheel.

I won't bore you with the details, as I'm sure if I did some of you would have fallen asleep already, so I'll show a current work in progress screenshot of the unit design page:
Still a few interface changes yet to take place, but getting there!

I figure another month or so until I get all the design bugs worked out, maybe sooner, kinda depends on how many nights I have time, am not sleepy, and am in the mood to code.

Monday, October 19, 2015

Dev Diary Week 6 - BattleTech Design Software


More great progress this week.  All the major database changes have been done, and code is coming along very smoothly.  I've been able to implement features that in my mind would have taken days, sometimes in minutes.  There have been a few hiccups, as there will always be, but so far nothing game changing or too distracting from the end goal.

I go into a lot more daily details on the facebook thread, which I update daily, but I'll give the compressed version here.  Those users will have access to the alpha and beta when they are released as well.

Essentially right now I can do pretty much everything to design a unit.  What I am working on now is the weight, cost, BV, years, and availability of said units.  This shouldn't take too long, and I've done it before on my encyclopedia site, but I am doing it all from scratch to incorporate various lessons learned since the encyclopedia.

Once those calculations are done, I'll run it against my 6000+ unit database and work through the bugs.

After that is'll be onto record sheets and other feature implementation.

So, making great progress, and I can see the light at the end of the tunnel already.

Here is a current screenshot, though pretty much every aspect about the interface is subject to change:

Feel free to recommend any features you'd like to see, and I'll add them to my "todo" list of features (assuming I haven't thought of them already!.

Monday, October 12, 2015

Dev Diary Week 5 - BattleTech Design Software

Quick BTE Note:  I removed all fluff entries (deployment, variants, overview, etc) from all units, even though not asked, to "play nice" with the BT community.  I now have *NO* information on my site that cannot be found on other more acceptable places like and Megamek.Info.  This shouldn't affect anything negatively aside from the fluff being gone, and many didn't have it yet anyway.

Howdy folks!  This last month has been mostly me importing all the Interstellar Operations Beta data.  There was a LOT of issues, and it is a Beta so I'll have to do this all over again when it is released.  While the issues were plentiful, luckily none will prevent me from moving forward with development.  In the end I'll have to assume a lot of things and there could be buggy units pop up for years to come until I get all my questions answered and Catalyst Game Labs fixes all their errors, inconsistencies, and missing data.

Here is the current software functionality:

  • Tech base selection (Inner Sphere, Clan, or Mixed).
  • General class selection (mech, industrial mech, protomech, SV, BA, JS, WS, DS, etc.  All but hand-held weapons, conventional infantry, maglev's, rails, and roads work right now).
  • Mobility type (hover, wheeled, fixed-wing, aerodyne, etc) selection for those units.
  • Weight class (assault, heavy, light, etc) and tonnage (a number in that range) for those units.

So not a huge amount of coding progress, but I only really started coding today ;)

Issues though:
#1.  Medium/Large Support vehicles are indicated as having .5 ton tonnage increments.  While this is fine technically and it currently works, it means when you select a 9 hex naval vehicle that goes from 30,000.5 to 100,000 tons, I have to populate a drop down with like 140,000 items!  This takes 80 seconds on my machine, which is pretty beefy (all others take about .05 seconds, except small support vehicles with their 1kg weight increments that takes .3 seconds, but is acceptable today).  So I am going to stray from canon a wee bit.  With large naval/submarine support vehicles that are over 500 tons, I am going to change the increment from 0.5 to 5 tons and 25 tons for the 30,000+ tons.  This will basically fix that issue. Eventually I will re-implement the 0.5 ton increments, or add in a way to just put in any number you want.  For now however I'm removing it for performance reasons.

#2.  I will not be using "primitive" as a tech base.  Just clan, inner sphere, both, and mixed.  Later I'll include "3rd Generation" as a possibility to support the April Fools product that had that in there (a sign of things to come?).  This is mostly because there aren't really primitive weapons, just prototype.  So primitive just applies to chassis.  The way I'm doing jumpships for example I have 6 rows, one for each tonnage increment that results in differing fuel points per ton and burn rates.  I now have 4 MORE sets where I set the weight class to things like "Primitive (Terran Hegemony)" where you can select a primitive chassis, which can be differing tonnages, instead of creating entirely new everything to support primitive.  So, you WILL be able to make 100% canon primitive stuff, but it won't be a new tech base (clan/IS already confuse stuff enough!).

And a new screenshot, which I'll try to include in each update, though they won't be very pretty for a while :)

(yes, according to IOBeta, the Terran Hegemony had 1.8M ton jumpships in 2400!)

I also have some functionality I am working on that'll show various other drop down boxes popup depending on the unit.  A mech has a required cockpit, engine, musculature, and actuator types for example so it'll see 4 more drop downs popup.  The gyro may popup if you select all but 1 cockpit type.  Many units don't have many other options like that, so the interface will stay cleaner.
I have tested all of these, and all work except the conventional infantry (they are kinda different), hand-held weapons (will need some work), maglev/rails/roads (not sure if these will even stay in, they are not really units but perhaps I'll treat them as addons to units).  I should have all errors removed from those in the next development session.

My goal is by the next update to have all the additional popups working which will let you basically design a unit up to the point of adding equipment.  I won't have things like tonnage totals, costs, BV, availability, etc, etc, but all the other stuff should be functional, and those sums/values are extremely easy to implement.

If I am very productive this week, which I don't suspect as the wife will have been out of town for 4 days and will want some quality time, I hope to actually implement the equipment selection as well.  After that I'll start running through all canon units validating designs and fixing all the little bugs that will come up.  That'll take me at least another week or two, maybe even a month, as I'll constantly find little things I gotta go fix in code, my data, or even have to restructure in my data to make it work in the best possible way.

Anyway, a lot more to come, and I think progress will be very quick if I can stay focused!

Again, feel free to request access to daily updates on my facebook site which I have been pretty good about updating daily.

Ok, next topic.  This week I used the 3028 battle on Crossing between the Wolf's Dragoons against 4 Galedon Regulars regiments (after losing nearly half their force against Ryuken a few months earlier, and fighting those same 4 Galedon regiments on 3 planets after that!) as inspiration for a scenario here in Dallas.  We used a mech to represent a company, and so the Galedon Regulars and DEST commando's had a total of 41 3025 old tech mechs.  The "Dragoons", in this case the "Iron Phoenix Legion" which is what our group calls themselves, had the dozen or so mechs in defense in a caldera.  It played out pretty well, and I think folks had fun, but it ate through some of my code time this week setting it up.

ANYWAY, to my point, I didn't want 41 pieces of paper to track mechs, so I figured out a way to put 4 mechs on a single page of paper. It worked pretty well in the game, and when taking a dozen SRM2 hits it really sped things up.  I tweaked after and made a little excel file if you need to have a bunch of simple mechs in a game and don't want all the record sheets.  Some stuff is missing (heat chart mostly) but 4 mechs on a page seemed like a fair tradeoff :)  Here is the link, hope it proves useful or inspires you in some way!

Monday, October 5, 2015

Dev Diary Week 4 - BattleTech Design Software

Super short version:  Data update will be done this week, back to coding!

Wow, nearly a month already!  Still on target though, and updating daily!

I have now successfully imported all the new data from the IO Beta into my data.  This was very painful and time consuming as every single item needed the years of introduction rechecked (this kinda replaced rules levels in a way), the availability updated, and in many cases various other stats changed.  I know IO Beta is just a beta, and based on the absolutely mind blowing number of errors (no judgement, its a beta) I've encountered with it I know I'll have to basically redo a few weeks worth of work whenever it released.  However, in doing this it gained me a bit closer to what CGL has in mind for the future of Battletech, and in that way my designer systems will have less growth necessary when they take that next step.

On top of this, I had never implemented ammunition in my system in any way.  I didn't really need to before, as nothing really cares about costs/BV based on ammo.  However, it had to be done, so now I have all the ammo types for all the weapons done.

I am now at 3,885 unique weapons, equipment, items, and so forth that can be added to units.

I have 814 total unique chassis implemented.

I have 6,562 unique *CANON* units (6302 with images, a third with 2+ of them, and many with megamek icons) from the battletech universe in my database now, many with images/fluff/MM Icons (but many more still need those added).  This compares very closely with the MUL, and the units I'm missing are those that simply aren't published yet.

I still have a bit of cleanup left on the data to make things consistent, as it took me a few tries before I got the way I wanted to store some data down.  However, this should be done in the next couple days.

After I finish the data cleanup, it is back to the fun stuff, writing the designer!  Since my project is data driven, instead of code driven, progress will go VERY fast until I get to the various ways of presenting data to the user.  Things like record sheets, TRO views, and so forth will take time to make look pretty as they are all time consuming.  However, me being able to design a unit of various types I could see working within a few weeks of dev time.  I doubt I'll release an alpha until a couple months down the road though, and then only to the folks reading my facebook daily update page here.

I had a friend tell me to watermark any record sheets, very faintly, to prove that my app created them so I know when it gets used.  Not sure I'll do that, maybe, but I probably at the least put some goofy pixel at least somewhere so I always know sheets were generated with my software with a quick glance at the sheet.

Monday, September 28, 2015

Dev Diary Week 3 - BattleTech Design Software

Not much progress this week code wise, but a lot when it came to implementing everything in the Interstellar Operations Beta, and a lot of cleaning up of my data to support all the new features and systems in IOBeta.  

I am already running into the headaches I knew I'd get without the ability to get questions to rules answered.  Some of the unanswered questions I have:

- Can ProtoMech/Battle Armor LRM/SRM's use special ammunition?
- Do the prototype and clan improved SRM/LRMs have torpedo versions?
- Is requiring "fusion", like a Heavy Gauss Rifle, the same as requiring "fission"?
- Do sub-capital weapons require power amps?
- Can sub-capital weapons on a large support vehicle utilize a targeting computer?
- Are all the various kinds of ATOW ordnance available to the Clans?
- The Mechwarrior combat suit has a common date before its prototype date.
- The Mechwarrior cooling suit (CL and IS) have a prototype date before its introduction.
- Is the Artemis IV Prototype really 1 slot on a support vehicle?
- A lot of the hardpoint weapons (like bomb's) don't have weights.
- Many capital weapons with ammo don't indicate if the BV is per shot, or per ton.
- Since a Long Tom arty can fit on a superheavy mech, can it split locations and be on one?
- Was ATM ER Ammo introduced by CSA, or CCY?
- How much damage do iATM improved inferno rounds do in an explosion, and are they subject to inferno heat ammo explosion avoidance?

Another huge issue, kinda related to the first item above, is ammunition.  Typically I would track ammunition like other design software had.  That would be a year of availability, a cost mod, a BV mod, and maybe a damage mod.  The thing is that simply isn't sufficient.  We now have weapons that have a different effect for each ammo type, different availability for ammo types, and all sorts of unique situations where trying to track the ammo so "lightly" will simply lead to limitations and issues in the future.

So, I have to track each ammo, for each weapon class separately.  Ammo can change any parameter of the weapon itself, from rate of fire, to ranges, to damage, costs, BV, even the battleforce abilities.  This allows complete versatility in the future to bend to whatever possible ammo CGL thinks up for its 3rd Generation Tech.

Right now, I have 16 LRM systems (4 classes, each of Inner Sphere, Clan, Clan Improved, and Prototype), 12 SRM systems (3 classes, each same as LRM), 4 MML's (4 classes).  I have 23 LRM and 17 SRM ammo types (11 and 7 respectively are IS only).  On top of that, I have 30 more types of LRM classes for ProtoMechs and BA, and 18 more for SRM.  Confusing right?  That can be up to 2740 types of ammunition combinations.  If the PM/BA SRM/LRM's don't get special ammo, that reduces it in half or so, but still, daunting eh?

And yes, it has to be done that way in order to be versatile enough for the future, and for the data to be used in other sources, like a real time megamek game.

Another thing I have to do that most design software never did was actually look at all the data.  Many games may just say "C" for cluster, but I can't do that.  I also have to track the # of clusters, the damage each, and the damage grouping.  I can't track artillery as a string like "20/10", but I have to track each of those as a number.  I can't take those string like shortcuts and let players interpret them.  I *have* to be able to have a computer read every single value, and that means no strings.

A potential huge issue is all the rumors that BV2 will be replaced with something else.  I may have to revisit every single piece of equipment to update some value whenever that is adopted.  While a pain sure, it shouldn't prevent me from quick adoption of whatever it may be.

CGL needs a MUL for equipment.  I guess I could make one, but I gotta finish this first :D

My goal this week is to finish the data update.  Hopefully by next weekend I'll be coding again.  What is really funny is even though I'm not coding, it is constantly on my mind.  As of right now, the code itself seems trivial (though time consuming) in comparison to getting all the data done.  The application is just a skeleton and will just read in all that data to determine how it functions.  The program will be data driven, making for easy updates and a long lifespan.

Thank you for all the support.  If anybody wants to help I won't accept money, but your time could be useful.  Some of the things I'll need are:
- Somebody to translate everything to German, or any other language.  This will be later once the application is in beta.  I simply can't do this, or would have to rely on flaky online translators.
- Somebody to go through all the record sheets, get the best resolution PNG of an empty version, and then plot the X/Y coordinate of everywhere data can be inputted as well as the font size, and maximum length/height.  Also the coordinates of a region where the armor dots will go.  This takes me a long time to do, as there are a lot of record sheets, and it would help me focus on the coding.  These will be user configurable, so if they wanted to mod their record sheets they could.
- Somebody who can go post on the forums in the questions area all the questions I have.  I'll email them a question, they can send me the link for it so I can keep track.

And finally, for the heck of it:
Whoever can get me reinstated on the official forums (so I can ask my own questions and pimp my product), I'll send, at ZERO cost, a full company of a dozen unassembled, unseen, old school lead, Battledroids Marauders.  If you can get CGL to officially sanction my designer, I'll send you 2 companies :D

Monday, September 21, 2015

Dev Diary Week 2 - BattleTech Design Software

Over the last week production has been slow due to all sorts of things (vendor, cars, parties, etc) but I have cleaned up most of my equipment data, and have now gone through and inputted quite a bit of the stuff from IO Beta, though just the 2 big sets of tables I found 40 errors on them, and some inconsistencies with formation/combat unit/etc sizes.  However, its a beta, so I won't be critical of it.

This isn't the kind of work that lets me show you much, but it does need to be done.  I have to make sure I have full support for 4 availability ratings, not 3, as well as a lot more information on years and factions equipment is available and what its production state is.  A couple changes that if I hard-coded things, would have been a serious pain to fix.

So over the next week I plan on finishing up the data import from IO Beta (about 12-16 hours I think).  At that point I'll tweak my data once more (another 8 hours) and be ready to jump back into the code.

The main portion of the code I'll be working on first is ensuring I can design out units down to the equipment level.  This means tonnage, speeds, engine/gyro/cockpit/etc types, and even armor type.  All of these should fall pretty fast once I start coding on them, so that is good.  This could take from a few days to a few weeks, depending on how much I finish before moving onto the next item.  For example, I may not worry about calculating cost or BV right now (isn't there a new BV anyway?) so may just skip those.  

Equipment critical allocation is a big step.  This only applies to mechs/industrialmechs, and is the process of placing criticals in particular locations.  I know people like dragging stuff around, and moving slots to particular numbers, but all 6 or 12 locations have the *exact* same chance to hit, so the actual # is 100% irrelevant.  So, I was thinking when I get to that part just skipping the allocation completely.  Actuators would go first, then equipment that can take a critical, and finally things like armor/structure that are "reroll on hit".  I know this may upset some folks, but it really shouldn't.  I may do something later to let you rearrange them, but for right now that interface is pretty time consuming for me to write, and it'll be skipped the first time around I think.  If you think location matters, read the rules again, when you roll 1 dice for upper/lower, and another for 1-6, and you get a reroll or something that has already been hit, you reroll BOTH dice, not just one.  I know numerous people who have made that mistake (and that WOULD affect locations of stuff, dramatically).  

Anyway, just a quick update to know things are progressing.  If I had to guess right now, which is a wild guess, I'd say I have about 2-4 months before having something you can do designs with.  There are a LOT of variables in there, but mostly it just comes down to hours I have available (most of which are spent on this).

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:

- 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

- 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)

- 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

- 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.

- 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.

- 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....

Monday, September 7, 2015

Back on Track!

Howdy everybody!  Great news!  

I am coding for Battletech again!  After a long hiatus, lots of frustration, many other games, and far too many purchases of Micro-Armor recently, I am going to start coding for Battletech again.

There were a few things that brought me to this:
#1.  I still play Battletech every couple weekends with 8-12 people.  This means I *need* the ability to design a mobile structure, infantry platoon, or support vehicle.  

#2.  There was a thread started a couple weeks ago on the official Battletech forums.  While I can't post over there, it is obvious CGL is back into the "OMG, we can't design stuff because its too hard!" mentality.  A couple years ago, long before I was banned, I was approached by somebody who sent me a copy of an email that Herb had sent out.  Basically he was freaking out about the fact nobody could build things consistently without tons of bugs.  I said I could do it, then basically sent a list of "holes" in their design systems that needed fixing.  I think the list was too long, that was the last I heard from them.   Apparently though they are still just as bad off, which is no surprise, I don't think anybody but myself really understand the scope of a product that can design *everything*.  As far as I know, I'm the only one who has entered in the 120+ pieces of data, per 2200 or so pieces of equipment, that is *required* for construction.  This is on top of 170 or so pieces of data for around 650 unique chassis!  Its just daunting, really.  This is why the HeavyMetal products haven't been updated since Total War, and why I personally don't think they ever will. This is also why no company would want to take this on, as it is minimal profit (if any) and a *HUGE* amount of work.  But anyway.

#3.  I went through and cleaned up years of email in my inbox.  I saw a lot of emails in there from various people who have been interested in my projects over the years.  A lot of good support in there, and it made me feel bad.  As I've mentioned many times, I don't like to let people down, and if 50 people emailed me every day asking for something I could do I'd damned sure get it done because I don't want to let them down.  It isn't like there is much in my life that is all that important (Just the wife/dogs, everything else is transitive).

So, I wrote a few people I knew emails for that were moderators in some form or fashion, but don't expect any replies.  If folks want to pop over to the thread and maybe mention me (though it could get deleted, if history repeats itself) or at least PM Bosefius about me, it could get them on my side.  I  am not sure of the relationships between the moderators and the actual CGL employees, but surely one can trump another.  About 25% of the reason I went to GenCon in 2014 was to talk to Randall and see if he could get me unbanned based on my development skills.  He gave me a card and told me to write him, but was very busy and slammed with fans while there.  I wrote after GenCon, unsurprisingly haven't heard anything.

So, official or not, I'm going to build a designer for *everything* in universe.  I mean *everything*, and yes it'll even be crazy stuff like a character generator for  a time of war (that'll be last though, completely different code set).  I'll do what I can to support importing/exporting to megamek and HMP formats, though no guarantees as both of those formats have some pretty serious flaws.  I'll also be supporting the IO Beta rules, so LAMs and stuff, though until IO is no longer beta those units will be flagged as not-canon.  

So, here is what this downloadable application will design:
- BattleMechs (15-300 tons), 2, 3, or 4 legged, plus LAM/Quad-Vee
- IndustrialMechs (15-300 tons), 2, 3, or 4 legged
- ProtoMechs (3-15 tons)
- Battle Armor
- Conventional Infantry Platoons
- Combat Vehicles (including superheavies, Wheeled, Tracked, VTOL, Hover, WiGE)
- Support Vehicles of all types and sizes (Even things like 100kt naval, satellites, and maglev)
- Aerospace and Conventional Fighters
- Small Craft
- Dropships
- Jumpships
- Space Stations
- Warships
- Mobile Structures
- Buildings
- Integration with the MUL
- Multi-Structure Bases (lower priority)
- Character Generator (lowest priority)
- Application will update itself as necessary, run on Windows, and probably be under 10mb total with no 3rd party application dependencies.

So *everything*.

I am currently planning on supporting the following features, though subject to change:
- Import/Export to MegaMek
- Import/Export to Heavy metal Pro
- Import/Export to Solaris Skunk Werks
- Import/Export to XML
- Import/Export to Text
- Export to HTML
- Export to PDF
- Export to PNG
- Export to a PDF Record Sheet (same format as canon record sheets)
- Custom components
- Printing of record sheets with all environmental considerations applied
- Ability to modify a dynamic record sheet (for the few of you that hate paper)
- Various refit and repair calculations
- A lot of support for campaign games
- Force builder/tracker, including noting which miniatures you own
- Planet/System Generator (pending rules getting published)
- Random unit tables
- Full support for Alpha Strike in every way
- Full support for *ALL* published rules, even the April Fools stuff 
- I plan on including as much support for German as I can, though my google translations may suck and need some typos fixed :)
- When I release this application, I'll kill my engineer site as it will no longer be necessary.  I suck with web code anyway :D

Some things I'm thinking about, but not sure yet:
- Map Maker
- Planet Mapper (stitch maps together, make a planet)
- Combat simulator (think real time megamek, but with any unit types)
- Random unit designer
- Planetary database
- Dynamic system for mech availability that would allow creation of random units based on any era, by denoting how popular a mech is per faction, per era.
- Inner Sphere in Flames, or whatever it is to be called, game.  I can't use current IO Beta stuff though, its very broken and would not allow for recreations of in-universe events (1 planet can make more mech regiments than all of the Capellan Confederation in 3025 could in a single year!).
- Stellar map support.  I kinda already wrote this with my ISMapper thing, but this will be an updated version that is a bit less klunky.

Obstacles I may encounter:
- Hitting a wall with the way certain rules are implemented.  For example humans kind of assume a lot when we are reading about rules.  Computers though, they can't do that.  So I can come across a system that simply has an unknown interaction with another system.  Or worse, and I know I'll encounter this often, many systems are missing certain data or the data is inconsistent.  What is the BV of the Centurion Weapon System from Jihad Hot Spots: Conspiracies?  Does a full head ejection system count as an ejection seat in Alpha Strike?  Can a combat vehicle really have an aerospace cubicle?  Maglev's have no availability or introduction dates!  There are a lot of things like this I'll have to work around, note, and correct whenever I can get an answer.
- Real life.  I can't predict what will happen, but in the past few months I flooded my house, almost died and had to have a surgery to fix what the army screwed up and said was fine 10 years ago, got sick for 2 weeks, had to take a work trip, and various other things that just kill free time.  I'm also a 90% disabled veteran who has all sorts of medical issues that could interfere.
- Project creep.  I will document EVERY feature when I start, and will stick to that list as much as I can.  I will add other things once I get certain portions done so I don't end up with endless project creep (where I never finish as I'm always adding new features).
- hmmm.... actually, I think that is it, everything else with this project is within my capabilities.

I will release beta's once certain portions are finished.  I'll have more info on how to apply when I actually have one.

I'll try to post an update a month, and an update with any significant milestones, but don't hold me too closely to that :)

I need to go architect this out, but I should have some rudimentary screenshots of the interface within a month.  Luckily the *really* time consuming part I have already finished :D

Off to start design work!

If you got this far congratulations, you get a cookie! Ok, no cookie, but I did start a facebook group for kind of a dev diary and a place to discuss features and issues.  I am BadSyntax on facebook, and the group is "Battletech Design Works" though it is currently closed and you have to request access.

Monday, June 22, 2015

Nothing New

Been a *really* long time, so I figured I'd post something to let folks I am not dead.

No update to the site.  In fact, if it does get an update I'll probably rewrite it from scratch.  I have made a new TRO like page for mechs, which looks better I think, but haven't pushed it out.  I keep my own database updated with the latest releases, but haven't pushed those out yet either.

I play battletech, on average, about once every 2-3 weeks still.  What I don't have is motivation to dive back into the site.

My life in the last 6 months:
- Bought a new car
- Bought the wife a new car
- Flooded my game rooms trying to wash said new car in April, still not totally done fixing
- Started playing the hell out of WarThunder, a pretty decent tank sim
- Moved from battletech to real world stuff as my primary interest
- Watched more TV/movies.  Decided I'd much rather see nudity than violence (Game of Thrones, I'm looking at YOU).
- Got my Micro 3D printer.  Printed 2 things, it broke, got a replacement, printed 10 things, seems broke again.  Can't really do 1/285 armor or mechs.  I printed a 4" skull that looked good, and a 1/100 Tiger tank that looked like crap.  It is great at straight lines, details it sucks.
- Became completely disillusioned with Kickstarter.  I'll never back another technology or "little" KS on it, and will be VERY cautious on any others.  In fact, if they don't have enough bonus crap to be worth it, I'll just wait for retail.  Lose less money that way, less pain, less BS, etc.
- Decided our best presidential candidate is Bernie Sanders, all the rest suck horribly and he has some really good ideas if you can look past the hair.  I was hoping for John Stewart, but I think he's too chicken.  Oh well.

Maybe when IO comes out (or one of the 2-3 books IO turned into) it'll motivate me again to get back into Battletech, but I don't know.  Without much of a fan base, no forums to post and get feedback, I can't see enough demand to justify my time.  I haven't even purchased the last couple products, and not sure if I'll even keep up with errata anymore.

I do still want to make a real time, planetary scale, BT game using megamek icons that is 100% faithful to the board game.  However, there may not be much of an audience for it so I may be wasting time even thinking about it.

Anyway, that is why there has been zero progress.  Sorry, but the battletech folks basically said "they don't want me anymore".  Stupid reasons got me banned (no, I wasn't a troll/ass/mean/etc) and they decided that one of their few community developers they had producing new contact was not worth any energy.  I went ballistic after that, probably cemented my chances at 0 for ever getting back in, and now all my projects have basically died.  Perhaps if they re-admitted me on the forums I'd consider jumping back in, but being insulted for volunteering thousands of hours of your own time kinda makes it hard to get over.  I even tried talking to Randall at Gencon, who said email him, and who has never replied to me.

I still respond to emails if you have anything to ask, but I probably won't be doing anything Battletech related for quite a while.

So, if you still read this, assume me and all of my Battletech projects are dead until further notice.