Sunday, February 19, 2012

Feburary's Blabbering

My company was nice enough to "eliminate my position" this last week, but with a nice severance, my vacation, and last years bonus I don't really have to work anymore... ever (my wife has a great job).  While I don't want to waste all my time doing BT stuff, I am going to waste some of it :)

Today I spent a couple hours tinkering with the quick strike cards.  I had recently "re-ripped" the entire MUL site to get some data for another project, and many of the MUL units had QS/BF2 data (lots of errata needed though).  So I basically wrote up a quick app that uses that data I downloaded, and then lets you scroll through what is essentially the MUL, but in a quick strike card format instead of a web format.  You can copy the cards but I didn't write in any printer functionality, copy them to word or something if you want them printed.  I have included just about everything from the MUL as well, and it'll even attempt to download the images (which are saved locally in a cache) too!

This program lacks any polish, but it is a single EXE that requires the .NET 4.0 Redistributable (google can find it for you).  Actually, if you don't have that installed you really need to go to update.microsoft.com or your control panel and run *all* the MSFT updates... if you get something bad chances are it was from an exploit that was recently patched.

Anyway, back to the app.  If this gets popular for some reason, I can do a lot more with it.  I can add print support, force creating, a list to more quickly find units, allow you to have your own skins and define where the variables are printed (font, x, y, size, etc).  There are some *really* nice color ones people have done, but they weren't canon so I didn't add them, but the code can support it easy enough.  Also, somebody is doing some mod that I've seen that has pilots and some stats by each card, that also could be easily supported.  I can also support using a text input file for all the variables and stuff, so you can quickly print out your company or whatever for each week in a campaign game.

Also, MANY units will simply not work on the canon QS cards, period.  Just try to put a dropship, large templated naval vehicle, warship, etc on them, it just doesn't work.  IMO they need a more standard format that can simply be extended vertically (or horizontally) for units with a lot more data.  Oh, and if you know what font I need let me know... I tried Eurostile but it didn't look right, so I just fell back to Verdana which was ok.  Link is http://goodsects.gotdns.com/MUL_QS.zip

Other BT stuff I've been working on:
 - My encyclopedia of all units in the universe seems to be a never ending task.  I started pulling MUL stuff, which is why I eventually ripped the site, but found a *huge* number of errors and just gave up on the whole thing for a while.

- I went through a bunch of production data from the new objective books.  While I like the books, I do wish they listed some hard numbers... not like we don't have hard #s on mech regiments, not sure why production numbers are such a big deal.  I did come up with some numbers that are a guestimates from published figures:
  • 8 mechs are produced per regiment in service per year
  • Fighter production is 2/3rds mech production
  • I'm betting vehicle production is 2x mech production
  • 1 Dropship per year per about 666 dropships in service
  • 1 Jumpship per year per about 180 jumpships in service
- I went through a bunch of printed stats, mostly Marik/FRR and determine what I think is the ratio of BM/CV/etc in the inner sphere:
  - For each ONE mech regiment, there are:
  • 2 Tank Regiments (Roughly 25% are militia)
  • 10 Infantry Regiments (Roughly 40% are militia)
  • 2 Special service battalions (Artillery, Psyops, Specops, etc)
  • 1.5 Aerospace Wings, typically 1.0 is with each mech regiment
  • 5 Jumpships (Roughly 50% are civilian)
  • 64 Dropships (Roughly 50% are civilian)
  • Roughly 1 Warship, when any exist
- I tried yet again to come up with a board and counter solution for playing out the succession wars, and again failed.  I really want *some* detail, but it really looks impossible to handle.  The last thing I was looking at was giving each unit the following statistics:
  • Defense (Defensive BV)
  • Repair Cost (Tons of armor on unit)
  • Energy Attack (Offensive BV, when all ammo consuming weapons removed)
  • Support Attack (Offensive BV with just LRMs/Artillery)
  • Support Attack Supply Consumption (Tons of supplies needed for Support Attack)
  • Standard Attack (Offensive BV with no support weapons)
  • Standard Attack Supply Consumption (Tons of supplies needed for Standard Attack)
  • Assault Attack (Full offensive BV, uses Support+Standard supply)
  • Movement rate (not 100% sure this is useful, Defensive BV takes it into account)
  • Cost (as production lines are rated by cost, a line must have this capacity to produce this unit)
- I tinkered with getting all of the BF2 data on a single counter and create counters to play a BF2 game so no paper would be needed.  While I love counters, and have hundreds of thousands of them, it just seems a lot easier to track the things on paper and I gave up.  I did make counters that if 1" could be easily readable, with megamek style mech views (with camo's) on one side.   That could be used for people just wanting to use counters instead of miniatures, and .5" hex maps could be used and the game be a lot more portable.

- I took a look at ripping/linking to the sarna.net site for various information, but inconsistent URLs killed the idea pretty quick.

- I took a new look at cartographer, the amount settings are getting crazy, as well as the amount of stuff I was having to generate/render each loop.  I may look at starting it over again, using DirectX and caching a lot more data to help performance.  All of the settings will be in a text file and easily editable, plus you can save multiple ones.  I'll be sure to have a lot more support for things like waves of a war, units, factories, changing system ownership, system stats, moving units around, etc, etc.  A complete rewrite though, which isn't as bad as it sounds (its only a few thousand lines of code).

- And for those of you who read this far, a special announcement.  One of the dependencies I have for a game, and many other BT things, is a freaking editor for stuff.  I need to know how much stuff costs, ensure all the designs are valid, programatically do damage and repairs, and many other things.  Well We have a couple mech editors out there, all of which aren't very versatile and extremely fixed.  There are no designers for thing like buildings, mobile structures, support vehicles, etc.  I'm a big fan of object oriented stuff, basically keeping a project into very set and fixed blocks that inter communicate only when necessary.  I have a huge excel file of all the equipment in BT, basically a compilation of every table in the 5 core rule books, plus all the additional rules scattered everywhere for stuff like retrotech and superheavy mechs.  I am writing an editor that dynamically looks at all of this data, and lets you use a single interface to build *anything* in the universe (well except infantry platoons, which may be added later, and RPG stuff which will probably never be in there as thats another project).  Right now I can get to the point of choosing equipment, but it isn't a real fast interface.  Changing a mech from 10 to 15 tons may involve tens of thousands of loops through lots of text.  I have some thoughts to speed it up, so it'll get better.  This application will never be beautiful or well designed, but what it will be is versatile and dynamic.  If TPTB add a new piece of equipment in a new book it'll be easy for anybody, no coding involved, to add it to the system.  The ONE *major* issue with this program is errata.  There are multiple printings of each rule book, errata and questions scattered all over the place, and a large number of inconsistencies, missing data, and outright errors on those tables that haven't been resolved.  I have the descrepancies flagged, but TPTB haven't been very kind in answering them.... in fact, they usually just ignore them, and I know they need this application as much as or more than everybody else to make new products and print out a freaking record sheet book or XTRO without a bunch of typos.

If anybody wants to help with the designer, scouring the forums and errata for the latest and correct answers I could use the help, and you can have access to the application... well, now :)

I do plan on an RPG designer using a very modular system too, but simply haven't wanted to type up every single career path everywhere.... if somebody wants to do it I'll write the software around it ;)

Some pictures of various things I've worked on, cuz everybody likes em:

Using a single counter for all BF2 or QS stats:
 The unit builder:
 A little app I wrote to make MegaMek+Camo units
 A 50% done app that makes icons
 A random unit generator using SO rules
 Another 1 mech = 1 counter idea
 A thought for an icon for a large scale strategic BT game, showing a whole regiment on a screen at once if necesary
Just PART of a big excel worksheet I have showing sales of ships.  Not sure how that Behemoth is gunna hook up to a scout.... 
 My idea for "Intertech", a hybrid between QS and BT (made long before QS).  Basically getting rid of record sheets, but mechs still play uniquely.
 Another 1 company = 1 counter thing, eridani light horse was below it.
 A quick strike idea, with more blanks for units that have IF 1, TUR 1/1, AC 1/1, LRM 1/1, SRM 1/1, FLK 1/1, etc, etc... Ammo could be tracked too
 Yet another QS style idea, far more detail on the page
 1 counter = 1 company, this was the latest counters I was referring to above
A much older idea for 1 counter = 1 regiment
This is a map I made a long time ago, I think it was 1 hex per 30 LY, and the X's are production factories.  Plotters are great :)  I even had all the counters for the 4th succession war and could slug it out!  I don't have a pic, but I have a large posterboard with the same map in 1 hex = 7.5 LY, allowing jumpships to move 4... its not in color but it lets me fight out the 4th SW in significant detail.
This is a small tactical map I made for running campaigns at my kinda local gaming store.  It gave a small planet, with every kind of terrain, every kind of weather, and would allow a pretty simple campaign game to be fought out... I think it had a page of rules, but that was too much apparently and it was never used.


I welcome any comments and questions!

Saturday, February 4, 2012

Never say never!

Well never say never I guess.  Due to popular demand, and FM 3085 having *full* data for the whole IS in a single year (first, time EVER in the BTU), I'm slightly back into it.

The files are back online, but are probably out of date, get a newer version here:
http://bg.battletech.com/forums/index.php?topic=9578.new;topicseen#new

Cartographer is another story.  I put together a quick DirectX version that ran *really* fast, but it'll require less than crap hardware to run.  While normally I'd try to avoid that, I noticed that with a lot of eras and grids loaded cartographer was using nearly 2GB of ram anyway, so maybe I'm aiming for too low of a common denominator.

I have been tinkering with a design system.  Something that lets you, within a SINGLE application, and a SINGLE interface, design the following unit types:
BattleMechs (including superheavy)
IndustrialMechs (including superheavy)
ProtoMechs (including ultraheavy)
Battle Armor
Combat Vehicles
Support Vehicles (including very large ones)
Conventional and Aerospace Fighters
Small Craft
Dropships
Jumpships
Warships
Space Stations
Mobile Structures
Buildings

What it doesn't have is infantry platoons and RPG characters.  I *might* be able to have infantry platoons later, but the RPG stuff will never fall within this application.

This program will be highly dynamic and object oriented.  It'll be versatile, so when new rules come out anybody can add them.  Hardly anything is hard-coded.  It won't be the fastest thing as there is a LOT of enumerating through 2000+ pieces of equipment and 200+ different chassis configurations, but it should work for *everything*, which is something we've never had before.  Not sure if I'll finish it, I do have a congressional campaign that *should* be using up all my time (if only I really wanted to win, instead of feeling compelled to run) so no guarantees on anything.

I may post some succession wars ideas here soon, for posterity reasons just in case I can never finish my projects based on that.

Sunday, October 30, 2011

Files offline

So a quick story.  I bought a house in May of this year.  Since then we have had over 15 power outtages, totalling over 20 hours, and 2 of which were over 8 hours.  I'm about to go buy a freaking generator.

Anyway, so when the long outtages happen, I take my computer UPS, and go plug it into the fridge to give it 30 minutes of run time in the middle of the outtage, hoping to save some food.

Thing is, last time I did that, I plug the cables in the wrong plugs, and so the latest outage my computer went off, and my monitors stayed on.  Ugh.  The bad news is that for whatever reason, windows 2008 didn't like that, and my networking is all corrupted.  I haven't rebuilt in 2 or so years, so I am about due anyway.  

And since I'm rebuilding my primary workstation, I'm also going to plug in the 2k8 domain controller in my house, and get rid of my older compaq branded 2k3 server.  Thus, all the files I had on it won't be there for a while, probably a day or two, until I can get them back up.

Soooo, if you simply must have one of those files, and can't wait for it, shoot me an email and I'll try to get you a copy, but until then the files will be offline.  Sorry for any inconvience.

I have made zero progress anyway, just been busy with other things, and still kinda demoralized by the BT franchise.  Still on my plate though.

Saturday, October 1, 2011

Stars...

Well based on demand, and the fact I invested a LOT of time into the planet list, I will keep the system coordinate list updated on this blog, and for now use it for the non-BT cartographer.  I'm still not interested in using the BTU for anything, TPTB's attitude have ensured that I will no longer support that IP, which is probably a good thing based on their paranoia and MSFT being stupid with the IP.


The cartographer work is progressing, but will NOT be in any way a "Battletech Cartographer".  In fact, there will be nothing "battletech" about it, though it'll support all the features I had, it'll become a stand alone product and I'll probably make it support Traveller, Traveller 2300, Babylon 5, Star Trek, Star Wars, etc, etc.


Things like the Comstar overlay will be an additional definable graphic, where you put in a bunch of X/Y coordinates for lines and it'll draw them, or just provide a bitmap and specify a transparent color.  The word "Jump" is globally replaced by "Move".  Systems will have various methods of generation, most of which are FAR more detailed than the BT rules (often based on GURPS Space 4e and some older Traveller products)..


I'll try to have functionality to make this kind of a cyberboard, but specifically for space maps, though that'll come later.  


The systems.txt file linked to previously is updated, the complete one is not, and BT cartographer, the last version I posted earlier, will be the last BT specific product I'll ever make.  The excel file I released earlier is now deprecated, as it is no longer up to date.


Some "Interstellar Cartographer" updates:
- Removed all BT specific stuff
- Added multithreading for loading systems, should help initial load times
- Added multithreading for calculating transit routes, should speed that up a lot as well, though since it only happens on the first load its no big deal.
- Updated all the menus to make them more logical, added a LOT of new options
- Played with WPF for rendering, and though it worked GREAT for 2500 systems, when it got much larger speed decreased a LOT, and WPF just can't handle the amount of objects I'm dealing with as well as GDI+.  DirectX is in the same boat, so I'm stuck with using GDI+.


Sorry I am updating this after I said I never would, guess ya'll can call me a liar now :(


Perhaps the flip-flop was just practice for my congressional run next year, though I cross my fingers and toes that I don't get elected, its a horrible job and its no surprise only idiots want to run for office.

Thursday, September 22, 2011

I'm done

Thanks to the overly sensitive moderators on the classicbattletech.com forums, I'm calling it quits.  This wasn't a spontaneous thing, it has been a long time coming, with reason after reason being presented to me until I finally just decided to move on, and will now spend my excess hours on something else.

If anybody knows how to code and wants to continue anything I've written shoot me an email and I'll send you the code.

Here is my latest version of cartographer:

Here is my working copy of all the planet data in excel:

Anything else your interested in I may have mentioned just shoot me an email.

I won't delete this blog, but it'll no longer be active.  I'll respond to emails or comments on here indefinately however.

Wednesday, September 21, 2011

Cartographer Update!

Just a minor update to let ya'll know I'm still alive.

I am having hell getting the hexes to work right.  My math skills suck, and I couldn't figure out a formula for getting all hexes within a specified range, and hard coded 0, 1, 2, and 3 hex radius.  This means you can create a hex grid of as little as 10 LY, or as much as 30 LY, but nothing else.  I also broke the square/offset square grids, well, deleted the code actually.  I'll re-add them once I get the hex stuff working, those 2 methods are far easier.

I do kind of have the hex stuff working though, here is a map, with 10 LY hexes, drawn dynamically (so changing ownership of a system changes that hex background color as well).  There are a few orphaned worlds around, and a few gaps where no system is within a jump.  The grey hexes are "contested", meaning 2 or more factions have a system within that hex.  I plan on making the hexes break down into smaller chunks until there is only 1 faction per hex, but its not real easy, and I'm tired :(

If anybody can help me out with a hex algorithm that'd be awesome.  Simple stuff, like take a battletech mapsheet, pick a hex, and give me a formula to determine all the hexes within a specified radius.  I don't think its that hard, but it was eluding me tonight.

I still have a *lot* of very minor bug fixes (like the app crashes when you cancel an inputbox, instead of cancelling the function, stupid easy to fix stuff) before I get this sucker launched, but it is chugging along.

A new screenshot showing the hex based influence mapping thingy:


Here is a big version, though it'll be slow off my crappy TW cable modem.  The dots on it are little black circles around the systems so I could see them while testing.  You'll be able to toggle them on/off in the release.  The black gaps are just that, areas where no system is within a jump.  However, there are uninhabited systems everywhere, 110000 of them, so you'll be able to find *some* path through there!

Oh, my algorithm for determining jump paths seems pretty decent, but its just looking for the nearest systems.  If anybody could help me out with a hex based A* that'd be great too.

I want to try to get printing to PDFs done really soon, I want to print this map out on a 44" plotter ;)

Wednesday, September 14, 2011

Cartographer!

Still working on it, the last couple days I haven't made much progress (but a LOT was made the few days before that) as I've been procrastinating on the hardest part of the code.

The hardest part IMO is getting a dynamic mapping system going.  You've seen some of my crappy versions in the past, here is a new version, with 7.5 LY squares, for 3075:


It isn't perfect, for a few reasons.  One, its only really working at all with squares, I haven't even touched the hex translation stuff yet, though honestly that shouldn't be *too* hard.  Its also not real fast, and never will be, though once you generate it I'll try to cache it so you only have to regenerate it if you modify system ownership.

But now a "bug" I see with my method.  Right now I'm taking a count of the number of systems within jump radius, and using that number to determine what faction "owns" the cell.  While it works fine in most situations, when it comes to those little arms that go off from one faction to another, it breaks completely.  This is because while there may be a system or two in say WOB Protectorate space, there isn't enough to be more than the WOB systems in range, so the world gets drawn with the wrong background.  While typing this I came up with the idea to automatically make any cell the same as any system within the cell.  There are a few exceptions with cells that have 2+ systems in them, but its looking better.  Here is a close up of the protectorate so you can see what I mean:

However, it may look better if I get my system to grid translation working correctly.  Its late, and I may be making stupid mistakes, but as you can see by some of the dots the dots/grids aren't lining up just right.

I *really* suck with geometry, even 2D stuff, this stuff is really easy math, and I need to go take me a class or two in it (even though I CLEP'ed it for my degree, I simply don't *know* it).

Now for the great news.  As soon as I finish this one little thing, this one "feature", I'll release a new version of cartographer for everybody.  The amount of new features and fixes are, well, long enough I think I'll just skip posting them ;)

A couple of screenshots:
OMG, what is that!

See all them little bitty dots?  Remember a reference to the 110,000 uninhabited systems out there?  muhahahaha





Looking for something?  Notice I changed the font *in program* :)




Oh yeah, thats a REAL nebula image backdrop!
What kind of mad options are those?!?!?!

Uhhhh, this aint just a mapping program anymore is it?

DISCLAIMER:  The features that are in red haven't been written yet, and may not be on this next release.  Most of them are relatively easy though, and once I get the influence mapping working correctly I'll starting knocking them out within a few days (days=days coding, not actual real world days).

Btw, I'm *really* starting to kick around the idea of creating a universe, *very* similar to BT but all names/factions will change (map roughly same scale, but different systems in difference places too).  By doing this I can freely create a full game system without worrying about canon and the lack thereof.  If anybody wants to help come up with unit names, faction names, and world names, I'd be grateful, even that simple stuff is beyond my creativity.  I can do all the rest of the code though ;)