Thursday, August 25, 2011

CBT Cartographer

Well since I've released the planet coordinates the time has come to look at the cartographer again.  I apparently don't have the code for the latest EXE, and some features weren't implemented yet.  However, I've already gotten it running again with a couple new features!

However, there is a LOT I want to do to it, and now is the time, so instead of a quick update it'll take me a while.

Though many of these items on my "todo" list may not mean anything to you, you may be able to figure out a few of the upcoming features!  The last 4 items I could *really* use some help with, if you think you can assist please email me.
File MEnu
- Set Faction File
- Save Changes
- Load Changes
- Load From Website
- Save To Website
- Set Font
- Exit
Render Menu
- Draw Names in Faction Color
- Draw Planets in Faction Color
- Draw Systems in Star Color (or any number of other methods)
- Draw Planets
- Draw Capitals
- Draw Regions
- Draw Borders
- Draw Hex Grid
- Draw Square Grid
- Draw Offset Square Grid
- Set Grid Size
- Toggle Jump Circle
- Toggle LF for Jump Circle
- Graphics Render Method
- Text Render Method
- Comstar Overlay
- Terran Hegemony Overlay
- Stellar Direction Overlay
- Mouseover Toggle
- Mouseover QuickTip Toggle
Tools Menu
- Jump Route Calculator
- HPG Delay Calculator
- Find System (option to show ONLY found results)
- Find Unit (option to show ONLY found results)
- Find Component (option to show ONLY found results)
- Find Factory (option to show ONLY found results)
- The finds come up with a listbox with all matches, can click "hide" to make it go away and clear the find queue
- Set Specific Zoom
- Set Zoom Between 2 Worlds
- Zoom Fit A Box
- Production Map
Universe Menu
- Set Turn Length
- Add Turn
- Remove Turn
- Add System
- Remove System
- Change System Owner
- Edit System
- Regenerate System
- Add Unit
- Remove Unit
- Move Unit
- Set Password (If set, nobody else can do edits)
- Other commands to modify stuff
About Menu
-Submit Bug
-Check For Update
-About Cartographier

'OTHER TODOS:
'Icon
'Web Browser to Sarna
'Web Browser to ISAtlas
'Known Map Links
'A* instead of whatever I'm using for jump pathing
'Planet Details, or generate when not available
'Fill Regions for Factions
'Insert graphics (like a Nebula)
'System Icons (water, factories, units, etc)
'Draw
'Export to HTML
'Save to PDF
'Button interface, can hide
'Nuke A planet easter egg!
'Finish Jump System
'Colorize grid based on owners
'System Filter (can filter by various things, all other systems just an empty ring)
'Legend with faction colors
'Legend with system icon meanings
'Better Help Window
'Area Report, draw square and it'll create a textbox with targets, units, etc
'War Report, history kept of changes, can report who moved where, suffered what casualties, etc
'Screen Saver - Randomly go through eras, clicking on worlds, histories, factories, etc
'Strategic Unit Tracker
'Random Unit Tables
'Random Unit Generator
'Handle planets with multiple-owners

'Need Help To Do:
- I can draw a system, but need some help calculating "Hohmann transfer orbit's (http://en.wikipedia.org/wiki/Hohmann_transfer_orbit).  This would allow intersystem travel!
- I could use some help determining la-grange points as well (http://en.wikipedia.org/wiki/Lagrangian_point) - these are "non-standard" jump points I think
- I could use some help detemrining transient jump points, these are "pirate" points
- dynamically creating planet surfaces, to 10km accuracy (Earth would be 4000x2000 pixels).  Those 10km maps would be custom maps made for various kinds of terrain, and would just plug into the larger system.

5 comments:

  1. Col. Chiang, from the BTech boards here.

    I know this is an older post, but I just came across your blog. For the help with the Hohmann transfers, I don't really understand the math either. However, I don't really have to.

    Winchell Chung has a wonderful online resource for semi-realistic intrasystem space travel (along with a body of other topics related to space that are "good enough" for fiction) located at his Atomic Rockets website. He has a whole article related to Hohmann transfers, located here: http://www.projectrho.com/rocket/mission.php#id--Hohmann_Transfer_Orbits

    Also, in that section, there is a handy Excel calculator that lets you plug in your own system body data and calculate travel times and delta-v budgets from one body to another. The address for that is: http://www.projectrho.com/rocket/supplement/PeskyBelterSolSys.zip

    But, honestly, it was my impression that most BTech spacecraft (with the possible exception of JumpShips) made brachistochrone trajectories rather than Hohmann transfers. And those are a LOT easier to calculate. Again, Atomic Rockets has the equation for that; it's located here: http://www.projectrho.com/rocket/torchships.php#id--Brachistochrone_Equation

    You still have to account for the velocity differential between bodies, but that's pretty easy. The only real tricky part of using brachistochrone trajectories is figuring out just where the bodies being moved between are on a given date. Wolfram Alpha combined with an orrery program (to tell what might be in the way on a given date) will do that for Sol system, but other ones would need their own orrery data worked up.

    Given the information in the Excel spreadsheet for Hohmann transfers above, you can figure that out easily enough if you put in a starting position and date for your system bodies, along with their masses, radii, and semi-major axi (sp?).

    If you want, I can put together an Excel spreadsheet in OpenOffice that will figure all of the brachistochrone trajectory data automatically for you, given system data. Let me know if you're interested. I MIGHT be able to whip up a decent orrery program in the same sheet, but that's a little more problematic.

    ReplyDelete
  2. Thanks!

    I found that site long ago, but didn't encounter it in my search for hohmann transfer help. The excel file may be enough to help me out though, I'll take a deeper look when I work on intersystem travel again.

    BT stuff does use Brachistrochrone equations, but there is more space travel than going from point A to point B. I mean, the unit has a velocity the same as the planet it just lifted off from, plus the difference from liftoff. Then, all the planets and even the sun between the 2 destinations can have an impact, and with everything changing all the time you have to plot out the vector and rate of burn to determine how long and how much fuel it takes to reach the target. It gets pretty complicated fast, but I know a computer could do that calculation in milliseconds, and want to try to mirror that. The Hohmann may not be the right approach though, as all BT ships can do at least a consistent G, with lots of fuel, and there isn't much need to conserve.

    Just the brachistochrone formula is pretty easy between 2 points, but a moving one... if I had to do it on paper I'd do trial and error until I came up with the closest solution, while that got me through HS and some college math easy enough, it isn't a method a computer would like.

    For each system I'm getting pretty much everything needed for something like this. Planet orbit distance (incl aphelion/perihelion), planet mass, planet velocity, direction from star (just an angle) on any day of any year, and lots of planets within a system. If I could provide all that info, an origin and destination and acceleration, and get time it takes between those 2 points that'd be great. Don't really need an orrery program as I'm already drawing out the system in code, but if you can provide any help it'd be appreciated.

    I sure wish formulas were created so they could be drawn in the same manner as a line of text. The ways the formulas are written its not real easy without the know-how to convert it to a line for a computer conversion.

    La-grange points get even more complicated, and transient points, ugh, not looking forward to coding that! :)

    ReplyDelete
  3. If you can do the code for figuring out where everything is in a given system on a given date, I can do "close enough" calculations for brachistochrone trajectories. I've got a spreadsheet floating around somewhere here from my homerbrew intra-Sol game I had going a couple groups back. It did all of the calcs for fuel consumption and ratio based on distance, thrust, ship mass, and exhaust velocity--though you had to guesstimate the acceleration values to ballpark realistic fuel ratios. I didn't go as far as to figure destination body motion from start of trip to end of trip (though that shouldn't be too hard at the acceleration rates that BTech ships can pull), nor total thrust differential based on fuel loss (that math is a little over my head), but I did include body velocity data for most of the major objects in the system. This was all to within an order of magnitude or so, which was close enough for my purposes.

    Anyway, as long as I can figure out object locations in-system (which you should have coded, from what you're saying) on a given date, along with their average orbital velocities, and minimum close approaches for most of the system bodies (really, the star is the only one that's going to be a big headache with BTechnology), I can put together a spreadsheet calculator for that pretty easily. It won't include finer points like efficiency changes based upon fuel mass loss or minor gravitational changes, but neither do the core rules as far as I know. The StratOps rules surely don't; they assume a strategic fuel use of x tons per day at one gravity, regardless of factors like how much cargo is being hauled or how much fuel has been used up. It might take me a week or two to do some bug checking, but the spreadsheet should be pretty self-explanatory.

    Whether or not that'll be usable in whatever language you finally wind up using, well, that's another story. I know just enough html to do basic formatting tags. That's really it as far as my coding experience goes. I definitely fall under the category of "user" rather than "programmer".

    And I'm not sure I'd be any good with the LaGrange or transient points. I can do basic two- and three-body math given the equations, but anything more complicated than that requires fairly high-level calculus, and I never got that far in my schooling. I'm okay with pretty much everything up to basic trigonometry, but past that, unfortunately...

    Anyway, if you're interested in an Excel sheet that can spit out numbers for you, I'd be willing to give it a shot. Let me know here or feel free to PM me on the boards.

    ReplyDelete
  4. Wow I find something interesting that was posted a long time ago. Did you ever get all of this working? When you setup the worlds, did you put them all in circular coplaner orbits? If you answered no, then Hohmann isn't the right answer necessarily. I do this kind of thing for a living, so I can help out if you haven't got it finished.

    ReplyDelete
    Replies
    1. Most of it. I was waiting till they released the Handbook House Kurita, due out very soon now, before I went back and finished it all up.

      They are all in circular coplaner orbits, but I do have a tilt associated with the orbit that I couldn't display in 2D.

      If you wanted to assist me in determining the hohmann calculations, where in 3D space a particular planet lies at any given moment, and when given acceleration and planet destination the vector a vessel would have to take to reach it would be super helpful. Feel free to email me at bad_syntax at yahoo.com.

      Delete