Wednesday, July 27, 2016
Great Random Encounters; Hexomancy (III)
Bit of a slow summer post. I'm a little low on interesting things to say; I've been doing a lot of backend stuff.
Vacation bore fruit in many excellent experience-granting encounters for the girls:
That's a sea turtle nest hatching. My wife noticed it while getting some sunrise pictures; we waited until the volunteer who keeps tracks of such things came by.
She determined it was stalled, decided to excavate, and the girls got to help escort baby turtles down to the shore.
Those dudes are about the size of your palm; maybe...80 or so in the nest? It's surprisingly deep.
We found a solitary baby the next afternoon; he'd got washed up by the surf; took him to the local rescue.
The earlier night 4 different moms came up to lay; we evidently just missed a 5th green sea turtle - these you are seeing are the "usual" loggerhead.
---
I'm having a lot of fun, as I can, with that TextMapper program, and my intervening shim:
I've taken a turn from Alexis over at The Tao of DND, and I've indicated the average elevation of a hex. As it's a small experimental map, I've smooshed everything together to get something representative. That purple over in 0907 is 6,248 meters - ~20,500 feet - which comfortably holds the tallest 150 or so mountains on the planet. It's likely, depending on where this would be on a planet, anything redder/purpler than 0307/0606/0805/1005 is above the timberline.
Those rivers are drawn SVG paths; as are the borders. You can see I've got realm borders, then up there in Vassalville I've bordered a subdomain out of the main domain.
I've got some reordering to do in presentation - SVG is "last writer wins", so you can see my borders are over my town names, etc. I've already split out certain types of terrain (the elevation, rivers, lakes) from "objects" - towns, whatever.
There's some wiggly bits still. Rivers change sizes oddly, I guess I need to plop a little reducer object down. I need to work on shoreline presentation - that seems like it'll have to be another full layer.
After a bit of a break on this I'll probably start looking at showing vegetation and landmarks - I expect I may be able to find an inoffensive way to show peaks of hills or mountains. I think I'll also lay down subhexes under the rivers to "depress" them from the surrounding land - might be a nice effect, getting the rivers to carve through my hills and mountains.
Monday, July 4, 2016
Hexomancy (II) and the Summer Post
So, some putzing around with the TextMapper software mentioned earlier got me here-ish:
which is kind of a start? I'd have exposed the image as the actual SVG, but evidently Blogger or whatever really mangled the text sizing, so it looked like junk.
I'm utilizing the concept from James Bennett (also mentioned last post) of splitting the hex into thirds - using the northwest for elevation, the southwest for temperature/vegetation, and I'll use the east third for information about other features - probably civilization features, like...well, whatever.
The hex-thirds are custom SVG paths, filled with a solid color. The mountains and trees were drawn in Inkscape, aligned correctly, and defined as path objects. and the raw "text" that makes up an SVG was cut and pasted into the TextMapper resource file. Same with the "Cave" for Dwimmermount, but I took that from Wikipedia.
The little "city circles" are...XML circles, and the text on top is a custom XML text.
The source file looks like so:
<path id="nw-mountain" fill="sienna" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
<path id="nw-hill" fill="peru" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
<path id="nw-marsh" fill="yellowgreen" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
<path id="nw-plains" fill="lawngreen" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
2210 default nw-mountain east-plains sw-forest mountain brush
2310 default nw-mountain east-mountain sw-forest mountain heavypine
2410 default nw-mountain east-mountain sw-forest snowmountain heavypine cave "Dwimmermount"
2510 default nw-mountain east-mountain sw-forest mountain heavypine
2211 default nw-mountain east sw-forest mountain heavypine fort class-fort Patricians
2311 default nw-mountain east-mountain sw-forest mountain heavypine
2411 default nw-mountain east-mountain sw-forest mountain heavypine
2511 default nw-mountain sw-forest east mountain heavypine city class-five Muntburg
2212 default default nw-mountain east-mountain sw-forest mountain heavypine
2312 default nw-mountain east sw-forest mountain heavypine city class-six Tribune
2412 default nw-mountain east-mountain sw-forest mountain heavypine
2512 default nw-plains sw-plains east fort class-fort Patricians brush
2209-2310-2410-2511-2411-2312-2211-2112 road
2410-2511-2611 road
So, it's time for my yearly more-useless-than-normal summer post. Hang on to your butts:
IKEA: Have you ever noticed how good Ikea product names are for anything vaguely Scandinavian? PCs, gods, boats, horses? That's where I got all my names for CharlesDM's PbP game on the Autarch board - my PC, my horse, my followers, my sword...
Hell of a weird place to go, but, they've got a great naming scheme.
STAR WARS: And what is the deal with Star Wars planets? Does it not seem that the whole thing makes more sense as several biomes on the same planet? Scale it all down - crazy floating fortresses for star destroyers - like maybe Avatar-style Firebending boats that fly, instead. Evil empires, princesses, magic swords, magic users...meh.
...hm. So, technically, we have some guidance for scale. Consider the phrase "That's No Moon". We can theorize, therefore, that the Death Star, whether a space station or floating fortress or whatever, by default will initially appear to the viewer as the size of a moon -- Earth's, in this case, for the relative ease of invoking the mind's eye.
We can use the angular diameter equation to figure this out. We'll combine this with figuring out the maximum size of a cylinder (to represent our stronghold tower) we can fit in a sphere to determine our capacity in units.
For several choices of "cruising altitude", then , we get several spheres - their diameter compared to the heights or lengths of well known objects:
If the Omaha Double Tree Hotel is floating 5 miles in the sky, it can blot out the Moon. As an aside, Wikipedia's really got some weird lists.
Tower height/volume/diameter/stories is the maximum "cylinder" that will fit in the sphere defined.
And, let's add some ACKS stats to it:
More:
The "Unit" I'm using there is a abstract notion - it's 2,640 men making up 24 units; mixed between LI/HI/XB/HA/CC - so I'm dividing population numbers and multiplying costs by that.
On the forums, Alex stated 30 sqft per soldier as a decent living space. We'll assume a floating fortress means they live within the whole time. We've got a lot of leeway on space used; our cylinder in our sphere is only using about half the volume we have to work with - plenty of room for storage, siege weapons, griffin pens, magical floaty-engine things, etc.
Indicated Families is the "civilized realm" value of how many families that amount of garrison spend would cover.
And finally (ignoring the numbers that'll just stay in scientific notation):
If an army's baggage train counts as a market of some size, then a floating fortress would have the same thing within it for support needs. If we take the population needed for support as the number of families - as single individuals - from a settlement of that market class, we can pretend there's some number of support staff along for the ride.
We can also, then, calculate supply costs for the army, and upkeep costs for the stronghold, in the number of families worth of domain income we'd need to cover.
There. Death Star as a floating stronghold for ACKS. It's...not all that unreasonable once you just stop worrying about how the thing flies. If you're big enough to have an extra principality or kingdom's worth of income you can throw around, it certainly would make for a hell of a way to run a war. You could probably just land this thing on a truculent enemy stronghold/settlement (rather than figure out what the Death Star's laser would do in ACKS terms).
That being said, if we're looking at an atmospheric vehicle of that size, you'd be better off flattening it quite a bit and using the available surface area as farms to offset your supply costs...left as an exercise for the reader.
I'm utilizing the concept from James Bennett (also mentioned last post) of splitting the hex into thirds - using the northwest for elevation, the southwest for temperature/vegetation, and I'll use the east third for information about other features - probably civilization features, like...well, whatever.
The hex-thirds are custom SVG paths, filled with a solid color. The mountains and trees were drawn in Inkscape, aligned correctly, and defined as path objects. and the raw "text" that makes up an SVG was cut and pasted into the TextMapper resource file. Same with the "Cave" for Dwimmermount, but I took that from Wikipedia.
The little "city circles" are...XML circles, and the text on top is a custom XML text.
The source file looks like so:
<path id="nw-mountain" fill="sienna" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
<path id="nw-hill" fill="peru" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
<path id="nw-marsh" fill="yellowgreen" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
<path id="nw-plains" fill="lawngreen" d="M -100,0 L 0,0 L 50,-86.6 L -50,-86.6 Z"/>
2210 default nw-mountain east-plains sw-forest mountain brush
2310 default nw-mountain east-mountain sw-forest mountain heavypine
2410 default nw-mountain east-mountain sw-forest snowmountain heavypine cave "Dwimmermount"
2510 default nw-mountain east-mountain sw-forest mountain heavypine
2211 default nw-mountain east sw-forest mountain heavypine fort class-fort Patricians
2311 default nw-mountain east-mountain sw-forest mountain heavypine
2411 default nw-mountain east-mountain sw-forest mountain heavypine
2511 default nw-mountain sw-forest east mountain heavypine city class-five Muntburg
2212 default default nw-mountain east-mountain sw-forest mountain heavypine
2312 default nw-mountain east sw-forest mountain heavypine city class-six Tribune
2412 default nw-mountain east-mountain sw-forest mountain heavypine
2512 default nw-plains sw-plains east fort class-fort Patricians brush
2209-2310-2410-2511-2411-2312-2211-2112 road
2410-2511-2611 road
and you can see how I've defined my "hex thirds" above. Other objects:
<g id="snowmountain"><path id="path15084" d="m-2.6214-16.641h-61.474l30.737-53.238z" stroke="#6c5353" stroke-width="3.2461" fill="#6c5353"/><path id="path15086" d="m-1.4331-16.913h-36.523l5.7945-52.052z" stroke="#ac9393" stroke-width="2.5572" fill="#ac9393"/><path id="path15104" d="m-23.785-54.729h-18.935l9.4675-16.398z" stroke="#e3dbdb" stroke-width="2.25" fill="#e3dbdb"/><path id="path15098" d="m-23.343-54.724h-10.708l1.5877-16.17z" stroke="#f9f9f9" stroke-width="1.6802" fill="#f9f9f9"/></g>
The labels on top of the city circles are custom text objects, as are the settlement names. I generated them with another script that takes my hex entries out of a spreadsheet and on-the-fly generates custom objects.
This stuff just stacks on top of each other as the file progresses - order is important - which is why you see the roads covering up my text.
<g id="snowmountain"><path id="path15084" d="m-2.6214-16.641h-61.474l30.737-53.238z" stroke="#6c5353" stroke-width="3.2461" fill="#6c5353"/><path id="path15086" d="m-1.4331-16.913h-36.523l5.7945-52.052z" stroke="#ac9393" stroke-width="2.5572" fill="#ac9393"/><path id="path15104" d="m-23.785-54.729h-18.935l9.4675-16.398z" stroke="#e3dbdb" stroke-width="2.25" fill="#e3dbdb"/><path id="path15098" d="m-23.343-54.724h-10.708l1.5877-16.17z" stroke="#f9f9f9" stroke-width="1.6802" fill="#f9f9f9"/></g>
The labels on top of the city circles are custom text objects, as are the settlement names. I generated them with another script that takes my hex entries out of a spreadsheet and on-the-fly generates custom objects.
The trees and such are too complex to post...they are seriously hundreds and hundreds of characters long. I drew the objects (not the hex thirds, that's just drawing point-to-point at the hex corners) in Inkscape, placed them centered at 0,0 (upper left), exported as Optimized SVG. I opened the SVG (they are just text files), cut out the objects I needed, and put them in an include file for Text Mapper.
When possible, I attempted to simplify things in Inkscape by combining paths - keep in mind a combined path has a single color, as it's a single object, so you have to do layers separate. The pine trees above are each made of 4 triangles, two green, two dark green. All the green triangles in all...12 or so trees are combined into a single path, on top of the dark green triangles that are a single path. You'll note I have some layering errors in a few of them because of that.
When possible, I attempted to simplify things in Inkscape by combining paths - keep in mind a combined path has a single color, as it's a single object, so you have to do layers separate. The pine trees above are each made of 4 triangles, two green, two dark green. All the green triangles in all...12 or so trees are combined into a single path, on top of the dark green triangles that are a single path. You'll note I have some layering errors in a few of them because of that.
This stuff just stacks on top of each other as the file progresses - order is important - which is why you see the roads covering up my text.
I kinda like SVG now.
I'm sure next time I post on this I'll have rebooted into a completely different presentation style, but, hey.
For now, however, I don't have to "map", in the classical sense - puttering around in Hexographer, reworking hexes, relayering, invoking GIMP for certain tasks, blah de blah. Everything I need to know is in a spreadsheet I'd be using anyway, and I've got some middleware to translate that into something I can pass through Text Mapper - on-demand, just-in-time mapping.
Admit it: it's a little sexy.
For now, however, I don't have to "map", in the classical sense - puttering around in Hexographer, reworking hexes, relayering, invoking GIMP for certain tasks, blah de blah. Everything I need to know is in a spreadsheet I'd be using anyway, and I've got some middleware to translate that into something I can pass through Text Mapper - on-demand, just-in-time mapping.
Admit it: it's a little sexy.
So, it's time for my yearly more-useless-than-normal summer post. Hang on to your butts:
IKEA: Have you ever noticed how good Ikea product names are for anything vaguely Scandinavian? PCs, gods, boats, horses? That's where I got all my names for CharlesDM's PbP game on the Autarch board - my PC, my horse, my followers, my sword...
Hell of a weird place to go, but, they've got a great naming scheme.
STAR WARS: And what is the deal with Star Wars planets? Does it not seem that the whole thing makes more sense as several biomes on the same planet? Scale it all down - crazy floating fortresses for star destroyers - like maybe Avatar-style Firebending boats that fly, instead. Evil empires, princesses, magic swords, magic users...meh.
...hm. So, technically, we have some guidance for scale. Consider the phrase "That's No Moon". We can theorize, therefore, that the Death Star, whether a space station or floating fortress or whatever, by default will initially appear to the viewer as the size of a moon -- Earth's, in this case, for the relative ease of invoking the mind's eye.
We can use the angular diameter equation to figure this out. We'll combine this with figuring out the maximum size of a cylinder (to represent our stronghold tower) we can fit in a sphere to determine our capacity in units.
For several choices of "cruising altitude", then , we get several spheres - their diameter compared to the heights or lengths of well known objects:
Altitude (miles) | Diameter (ft) | Length Of | Spherical Volume | Tower Height (ft) |
238855 | 11005638 | (moon's diameter) | 6.97982E+20 | 6,354,108 |
8544 | 393677 | Death Star I | 3.19461E+16 | 227,289 |
30 | 1382 | 432 Park Avenue | 1382945438 | 798 |
20 | 922 | USS Nimitz | 409761611.2 | 532 |
10 | 461 | Great Pyramid of Giza | 51220201.4 | 266 |
5 | 230 | Omaha Double Tree Hotel | 6402525.176 | 133 |
If the Omaha Double Tree Hotel is floating 5 miles in the sky, it can blot out the Moon. As an aside, Wikipedia's really got some weird lists.
Tower height/volume/diameter/stories is the maximum "cylinder" that will fit in the sphere defined.
Tower | Tower Height (ft) | Tower Diameter (ft) | Tower Stories | Sqft/Story | Ttl Sq Ft |
Moon | 6354108 | 4493033 | 635410 | 1.59E+13 | 1.01E+19 |
Death Star | 393677 | 160718 | 22728 | 2.03E+10 | 4.61E+14 |
Park Avenue | 798 | 564 | 79 | 250117 | 19759229 |
Nimitz | 532 | 376 | 53 | 111163 | 5891641 |
Giza | 266 | 188 | 26 | 27791 | 722560 |
Omaha | 133 | 94 | 13 | 6948 | 90320 |
And, let's add some ACKS stats to it:
Tower | Possible Cost (GP) | Possible SHP | Can "Secure" | Size Comparison | ||
Moon | 8.06E+19 | 3.57E+18 | Everything. This fortress is a harsh mistress. | |||
Death Star | 3.69E+15 | 1.63E+14 | A galactic empire without lost Jedi water farmers. | |||
Park Avenue | 158,073,836 | 6,996,894 | 333,500 to 166,700 sq mi (10,500 - 5,300 hexes) | Madagascar (226K sq mi) | ||
Nimitz | 47,133,127 | 2,086,275 | 99,500 to 50,000 sq mi (3150-2100 hexes) | Ellesmere Island (75K sq mi) | ||
Giza | 5,780,478 | 255,864 | 12,200 to 6,000 square miles (385-192 hexes) | Sardinia (9K sq mi) | ||
Omaha | 722,560 | 31,983 | 1,525 to 765 square miles (48 to 24 hexes) | Long Island (1,400 sq mi) |
More:
Tower | Units/Story | Total Units | Garrison Cost | Indicated Families | Indicated Realm |
Moon | 4,404,195,380 | 2.79847E+15 | 4.50137E+18 | 2.2 Quintillion | Galaxy |
Death Star | 5,635,284 | 1.28E+11 | 2.06E+14 | 103 Trillion | Galactic Quadrant |
Park Avenue | 69 | 5,489 | 8,644,663 | 4,322,331 | Empire |
Nimitz | 31 | 1,637 | 2,577,593 | 1,288,796 | Kingdom |
Giza | 8 | 201 | 316,120 | 158,060 | Principality |
Omaha | 2 | 25 | 39,515 | 19,757 | Duchy |
The "Unit" I'm using there is a abstract notion - it's 2,640 men making up 24 units; mixed between LI/HI/XB/HA/CC - so I'm dividing population numbers and multiplying costs by that.
On the forums, Alex stated 30 sqft per soldier as a decent living space. We'll assume a floating fortress means they live within the whole time. We've got a lot of leeway on space used; our cylinder in our sphere is only using about half the volume we have to work with - plenty of room for storage, siege weapons, griffin pens, magical floaty-engine things, etc.
Indicated Families is the "civilized realm" value of how many families that amount of garrison spend would cover.
And finally (ignoring the numbers that'll just stay in scientific notation):
Tower | Troops | Market Class | Support Pop. | Supply Cost | Stronghold Upkeep | Familes to Cover Costs | Minimum Realm |
Moon | 3.08E+17 | --- | 1.25933E+18 | 4.03E+17 | 2.31085E+18 | --- | |
Death Star | 1.41E+13 | --- | 5.76E+13 | 1.84E+13 | 1.06E+14 | --- | |
Park Avenue | 603,754 | Class II | 17500 | 2,469,948 | 790,369 | 4,532,300 | Empire |
Nimitz | 180,022 | Class II | 9775 | 736,468 | 235,666 | 1,351,403 | Kingdom |
Giza | 22,078 | Class IV | 1200 | 90,322 | 28,902 | 165,738 | Principality |
Omaha | 2,760 | Class VI | 150 | 11,290 | 3,613 | 20,717 | Duchy |
If an army's baggage train counts as a market of some size, then a floating fortress would have the same thing within it for support needs. If we take the population needed for support as the number of families - as single individuals - from a settlement of that market class, we can pretend there's some number of support staff along for the ride.
We can also, then, calculate supply costs for the army, and upkeep costs for the stronghold, in the number of families worth of domain income we'd need to cover.
There. Death Star as a floating stronghold for ACKS. It's...not all that unreasonable once you just stop worrying about how the thing flies. If you're big enough to have an extra principality or kingdom's worth of income you can throw around, it certainly would make for a hell of a way to run a war. You could probably just land this thing on a truculent enemy stronghold/settlement (rather than figure out what the Death Star's laser would do in ACKS terms).
That being said, if we're looking at an atmospheric vehicle of that size, you'd be better off flattening it quite a bit and using the available surface area as farms to offset your supply costs...left as an exercise for the reader.
Thursday, June 16, 2016
Hexomancy (I) - Text To Map
If you, dear reader, are like me, and I hope you're not for your sake, you've been puttering around with maps for quite some time, and you've used tools like Autorealm or Hexographer or Campaign Cartographer or several others I've forgotten as time passes.
And you do it again, and again, and again, in different formats or styles or whatever. Often for the same map.
I've got a larger project I'd like to work on, and I need to see it on a map - alternatively: I have data I want to visualize. And, unlike the work I did on visualizing Blackmarsh, I'd really rather work with the data and make something else do the work of showing me what I need to adjust.
As it turns out, this time I'm converting real-world maps into something gameable - taking these maps from 1880 and applying unto them a hex grid, and figuring out what is in what hex, etc. I want to do that once, on the input - then let something else output it back into workable ACKS-compatible hex maps. I'd like to do something as informative as James C Bennett's work here on Dwimmermount; and at a glance see how the various domains and realms I'm mapping out interact with the terrain and each other. I'd also like to change layers and show the players something else, less informative.
But, I'm sitting here working on a 300MB bitmap, between the two political maps and the terrain map and blah blah, and it's ridiculous. So I need to simplify, and I want to take a spreadsheet that describes the hexes, pass it through a script, and receive a map - I want to change data, not an image.
Haha, no. I ain't gonna develop nuttin.
As it turns out, inbetween real life and other work and not finishing this post, I've found everything I need, because hooray Internet, and I will simply pass it along to you here.
First off, digest Red Blob Games' article on Hexagonal Grids. It is fantastic, and that whole site is a treasure trove of information.
Secondly, and here's the magic button: TextMapper.
Click on the help, click on Submit, click on Random, feast your eyes.
It takes a text description of hex features, buoyed by custom object definitions, and puts out a SVG (vector based, so infinitely resizable) hex map.
And on top of that it uses the same language the Good Lord used to let_there_be( \%light ), Perl, so it's right the heck in my wheelhouse for hacking it up if I go rogue.
I am damn near giddy at the possibilities. I can take a subset of my spreadsheet and only generate that part of the map. I can overload the hex descriptions and pass it through a multiplex script to create SVGs for the political layer, the population layer, a trade layer, terrain, elevation, damn near anything...
Here's hoping our summer trip this year ends up productive on the time-wasting aspect of vacations.
Monday, May 9, 2016
Surprise! It's..a flowchart.
CharlesDM's surprise tree here at this link is reproduced in convenient flowchart form below:
I'd appreciate chances to fix, clarify and/or improve, still somewhat a work in progress.
Green is Yes/Success to a question or roll, red is No/Failure.
Note I differ from Charles' presentation in that I assume if you are a thief you would still want to Move Silently against an inattentive target so that you can deny them their Hear Noise - every little bit helps.
The difference in not doing so, perhaps, is movement speed - do you want to take your chance and get up to them right now, or take a slightly different chance and get to them in another round?
Whether or not concealment is available should be irrelevant to an inattentive target - a Judge could allow the thief to be quite nervous about making her throws while knowing that failure doesn't matter.
Operationally, then, what does this tell us?
If no concealment is available, the attentive target gets their regular surprise chance. This is modified by character classes or proficiencies that give a player the ability to impose a penalty on opponent's surprise rolls - barbarians, for example, being Naturally Stealthy.
Note that when we ask if "concealment is available", this is referring to the last critical point in the approach - you may have been hiding behind 300 foot of warehouse wall for the last X number of rounds, but this is at the critical point of coming into contact with your target with intent. (or, alternatively, if an unknown observer is present that could notice the thief)
If concealment is available, for the attentive target, these motions get us to the point where we can attack/interact within one action/round. Again, the naturally stealthy folks get a general bonus, whereas a thief can take the extra options of the two sneaky skills to completely deny the target their surprise rolls.
Any thief should take the opportunity to gain that proficiency if the Judge allows. The math is ever in their favor.
If the target is inattentive, then it's a easier task. The thief may invoke a Move Silently roll to deny the target a hear noise to notice them coming. Everyone else either hopes the Hear Noise fails, or relies on regular surprise.
Interestingly enough, while there's a proficiency/power that allows one to impose a surprise penalty to opponents, there isn't one for Hear Noise - there's no opposing proficiency to Alertness in part or in full. Hear Noise at it's default 18+ is so bad as to not really deserve further penalty.
I've talked about that a bit here in regards to collapsing "sneaking" into a single roll.
Inhibiting Hear Noise is purely the domain of the Move Silently skill, and Hide In Shadows is the only opposing mundane force to an attentive target, if concealment is available.
Also, imposing a -1 surprise penalty is worth more (1 power) than a +1 bonus to one's own roll (usually a secondary benefit to a +1 initiative) (ACKS PC, pg 98). That's the value of surprise, offensively.
A secondary note; Inaudibility (ACKS PC pg 137) can be recast as a very minor (4.41 points, I think) 1st level spell that lasts 1 round/level. If one treats the thief as permanently a 1st level caster, Move Silently is essentially casting that spell with a successful throw.
Subscribe to:
Posts (Atom)