Again with the Skypirates! developer log in place of a what-we’re-reading last week, since the news folder was looking a bit light.
Not so this week!
The Cyberpunk Future
Prospectus on Próspera – Astral Codex Ten’s Scott Alexander on a particular instance of the charter city movement, where a private company receives limited grant from the government of Honduras to compete with the government of Honduras. The typically clear-eyed Alexander says, “If you were a completely ordinary Honduran, making $1,300 a year, having a medium lifetime risk of being murdered, with the government occasionally taking your land and killing you if you complained – would you want the option of moving to Próspera? With its civil rights, property rights, strong security, good education, and higher salaries? I have these things right now in America and they’re great.”
BAE’s entry – Parvusimperator notes: looks like an Elbit UT30 Mk. 2 turret on an AMPV hull, which is a turretless Bradley hull with some mine resistance and layout changes.
Oshkosh is partnering with Hanwha, to (probably) enter the AS21 or something similar
Rheitheon/Raynmetall are back too, along with GenDynLandSys (the only entrant last time)
There are some small business entrants, as well: MettleOps and Point Blank Enterprises – Since phase 1 is basically just concept art, you don’t need much to get a foot in the door. Both of the wee tiny entrants seem to plan to work with bigger manufacturing partners if their entries get the nod for further development.
At the very bottom, Skypirates!1 is an RPG. World entities like characters and airplanes have rollable attributes, and those determine how they interact. Those interactions are out of scope today, though. We’re going to cover how the RPG layer works at its very core: the dice, or at least the simulated dice.
If you’ve been around a very long time, or spent a long time trawling the archives, you might have come across a set of rules for building zeppelins in Savage Worlds. This was the jumping-off point. Skypirates designs past used a step dice system Savage Worlds players would have found very familiar. Start at d2, and skills/vehicle characteristics go up to d12 by die size, then to d12+d2 and d12+d4.
That last clause indicates the problem: step dice have poor resolution. For a moment-in-time, quick-playing tabletop RPG, it’s sufficient. For a PC game where I expect the timeline to run from about 1922 to 1937, it doesn’t leave a lot of room for multiple generations of airplane, in a period of time wherein aviation technology would advance even more quickly than in reality owing to greater conflict between the major powers. It leaves even less room for variation in individual airframes2. So, regrettably, step dice had to go, simple as they are to reason about.
In abandoning physical dice as the underlying abstraction, I found myself wondering, “Why not a 1-100 system?” A number between 1 and 100 represents each skill or characteristic. To roll it, generate a random number between 1 and the skill value. Highest number wins. Hard to do with physical dice, trivial with computers.
It doesn’t quite capture everything, though, so I brought in an idea familiar to players of D&D Modern: advantage. Roll two dice, take the better result. But, I don’t plan on using it primarily for rolling character skills with a bonus. Instead, in a form I’m calling ‘capped advantage’, it’s a way to combine pilot skill with airplane characteristics.
Say a plane has Agility 50 and its pilot has Flying 70. I take that to mean that the pilot knows where the edge is, and can use every bit of the plane’s agility. So, behind the scenes, we roll Flying with capped advantage Agility: roll both skills, and take the better of the two, up to a cap of the best Agility result. If the rolls are Agility 37 and Flying 64, the pilot has hit the cap, and the final result is 503.
I’ll go into the representation of planes and characters at some later date, but I wanted to make sure we got through the week with some content here, even if it’s not the allegedly-weekly news update.
While the exclamation mark is part of my official branding plan, I am likely to omit it in the running text for reasons of forgetfulness. ↩
The Secret Horsepower Race relates a story of six production Spitfires, which varied in tested top speed from 330 mph to 360 mph. ↩
I plan on doing something similar with aerial gunnery: roll the gun’s accuracy with capped advantage the pilot’s Gunnery skill. For simulation-fun reasons, lighter guns are more inherently accurate, but that doesn’t mean a pilot can shoot better than his overall skill just because the gun helps. ↩
Anomalies at the Large Hadron Collider and Fermilab point toward the Standard Model being incomplete](https://www.quantamagazine.org/muon-g-2-experiment-at-fermilab-finds-hint-of-new-particles-20210407/) – Different anomalies: the LHC is seeing unusual decay in b-mesons, while Fermilab is looking into the magnetic moment of muons. Complicating the latter story, a new calculation of the expected value matches the observed value more closely than the presently-accepted value.
A Chinese invasion of Taiwan would wreck the global economy for years – Because even if TSMC’s fabs survive undamaged, and even if TSMC retains its employees, and even if China can immediately get a state-owned TSMC back into operation, it’s still a dead company walking, because its supply chain is deeply dependent upon Western technology and equipment.
It’s matchseason again – The wheelgun has been giving me some reliability problems to start the year. Going up to the range with parvusimperator and company this weekend, in the hopes of confirming my diagnosis.
You may remember Random Carrier Battles, if you’ve been here for long enough. That project is now abandoned, because modern alternatives like Task Force Admiral exist, and although they lack the Random element, they hit the Carrier Battles part of the project with more verisimilitude and much prettier graphics.
But the germ of the idea stuck around, and a better, easier 2d engine in the shape of Flutter presented itself. The idea (small-scale strategy-game air combat in the Pacific) got me thinking: what other settings would fit this kind of design?
Enter Skypirates! (Exclamation mark included.) Skypirates! is a game of air piracy, zeppelin aircraft carrier combat, and high adventure in the South Seas. My current, very preliminary design document covers three main gameplay layers.
Send your zeppelin’s air wing into combat against all challengers: other planes and airships, surface targets, ships at sea, and more. From your radio room, direct squadrons of your own construction, staffed with pilots and officers whose personalities and particular abilities affect the way dogfights play out.
Airship and Crew Management
Design a zeppelin, or choose from premade options, with which to tackle the unfriendly skies of the Far East. Pick and choose aircraft to fill its hangars, and crew to fill its cabins.
Careful weighting of the options will pay off! Pilots with certain temperaments and skills match certain planes better than others.
Daring deeds and thrilling exploits are just around the corner in every port of call. Choose your own path through branching stories of treacherous pirates, ancient civilizations, and treasures thought lost to the mists of time.
These are the very early days, so it’s time for some generalities!
“Flutter?” I hear the technologically-inclined in the audience asking. “The mobile app framework?”
It is an unusual choice, but not an unreasonable one, from where I stand.
Reason one: I’m familiar with Flutter right now, thanks to work. It’s simple and expressive, easy to extend, and ludicrously cross-platform. (I don’t intend to support anything beyond desktop, though.) It being a UI-centric toolkit, it makes the hard part (pretty UI) easy.
Reason two: Dart has gone from a pretty good language to a great one, with the addition of null safety. It’s concise without being unreadable, I like having named parameters, and it doesn’t go overboard on the punctuation.
Reason three: it’s less opinionated than most game engines about how world and data ought to be structured. This isn’t an attack on traditional game data modeling practice, merely a note that I find it easier to reason about when there’s a world state on one hand, and a rendering engine on the other, and they only talk in strictly limited ways.
Design: Scope and Scale
The world map image above is a lot of the map, but not the whole thing: it runs from about the top of Honshu west to Afghanistan, and south to about the northern third of Australia.
In this alternate history, that region of the planet has all of the ingredients for a vigorous population of pirates: namely, a lot of territories belonging to a lot of different powers, most of whom are busy in their home theater(s) with more pressing threats, and all of whom want to obstruct their opponents’ progress in overseas holdings as much as possible. Nearly every player in Europe is represented somewhere on the map: Britain, France, the Dutch Republic (alternate history, remember), Germany, Italy, Portugal… There are American colonies too, in and around the Philippines, from all the several American nations, and local powers too.
Because I am lazy, I’m using Cartesian geometry instead of spherical geometry, so distances aren’t quite accurate. Eventually, that may change, if I decide to expand the scope of the world, but India, Southeast Asia, and some very near parts of Oceania seem like plenty of room to run to start with.
The world runs on one-minute time steps, and although positional accuracy is basically ‘as high as floating-point numbers allow’, I’m planning on an ‘interaction range’ of 5-10 miles, at which point other systems (dogfights, visiting a port or point of interest, etc.) come into play. Maybe. This part’s still up in the air.
The typical player faction is a single zeppelin, its crew, and its air wing, an independent with an eye toward privateering or outright piracy. The design likely admits some mild variations on the theme (employee of an aviation security company, a task force of two or three airships…), but those will come later if they come at all. As alluded to in the elevator pitch, crew will have relatively detailed character sheets, and crew characteristics and aircraft characteristics intersect somewhat. A pure virtuoso pilot might prefer a more agile machine, while a tactician might want something with better energy fighting. An instinctive gunner might do best with a few heavy guns, carefully choosing his shot. A more exuberant personality might prefer more ammo.
Characters under the player’s command get placed into three categories, to reduce skill management minutiae: the player’s avatar, over whose sheet the player has full control; officers, who the player can guide down certain paths; and ordinary crew, who level up and gain skills on their own, according to templates.
All of which will be accounted for in aircraft design—although designing airframes is outside of the player’s scope. On the other hand, souping up an existing model, swapping its engine for a bigger one, or adding guns are within reason.
I have a lot more to say about aircraft, because getting the math down took a ton of effort, so I’ll save it for its own post.
Anyway, that’s a very brief introduction to a few parts of Skypirates! As I continue the creative process, I’ll have more to say.
This is about as far from a Wednesday update as it’s possible to get, and it’s also a bit on the late side, but so it goes. At least 4/3/21 is a fun countdown.
The spam-stopper plugin is doing its job (1.5 million spam registrations/comments blocked!). If it’s doing its job too well and preventing any of you regulars (or newcomers who happen to read this) from commenting, let me know in the Discord, and I’ll try whitelisting you.
The 3D printer had recently ceased to go brr, because printing tabletop-quality miniatures is a very, very tricky affair at the knife edge of the machine’s capabilities, but it’s running again after an afternoon picking thin coatings out of threads on two mating parts.
A book recommendation from the Discord (The Secret Horsepower Race) has been great reading so far. I think I got to page 53 before I came across a full four-column, two-page spread with no fascinating pictures or diagrams. Serendipitously, this is What We’re Reading 109, an auspicious number given the subject matter of the book.
I caught wind of this on Tuesday, March 23, and if I’d published it in the scheduled timeslot, I would have been well ahead of the curve. As it stands, I’d be a little behind the curve linking a postmortem. Oh well. I imagine you don’t come here for breaking news, and if you do, I’m a little concerned about how up-to-date you are on any number of current events.
On that note, I saw someone on Twitter remark that, given his long experience in Egypt, he was surprised the shouting over the situation wasn’t audible in space.
The four quadrants of an alliance – “[…] not all nations are of equivalent utility at war. Due to national caveats, a company of Estonians are many orders of magnitude [my emphasis] to any commander than a company of Belgians.” Harsh.
Sub-hunting Intruders: a missed opportunity? – Not just a history of that, but a brief history of fixed-wing ASW through the middle of the Cold War, courtesy of The War Zone. I think I knew some of it already from Friedman’s Carriers, but it’s a good refresher and/or short treatment. Oh, and here the article cites Friedman.
USMC fielding Squad Common Optic – That’s Uncle Sugar’s name for the Trijicon 1-8×20 VCOG, if you’d forgotten. The existing Rifle Combat Optic is a fixed 4x number. Having a 1-6x scope on a rifle of mine, and having run that rifle once or twice at two-gun matches, I can confidently say being able to drop to no magnification is a huge advantage.
Russia making a move on Ukraine? – Lots of Russian hardware moving in that direction, along with the trick from Red Storm Rising (and real life, I guess) where units who rotated in for exercises stay after the exercises are over. Maybe this makes up for Suez—a pre-breaking story!
On US arctic strategy – In the Discord, we did some short analysis: every US base is a long way from the middle of the Bering Strait, but the situation isn’t any better for the Russians or the Chinese.
Creating a new map projection more accurate than others – Speaking of flat maps, here’s one that makes a claim (a map projection better than others) without remarking on its main disadvantage (it’s a two-sided disk, as though you ran over a globe with a steamroller, which means it’s not ideal for display use).
I’ve done some rewiring of the Many Words spam-prevention infrastructure, and hopefully the Conclave is open again (not that anyone uses it). I’ll be keeping an eye open for the next few days to see if it’s working.
If you get caught in the spam dragnet, don’t type like a computer.
I believe we’ve made a near-final carpet selection here at Many Words Press World HQ, which means the library will soon be a) done and b) capable of hosting the largest Little Wars battles yet, on the order of 15′ x 10′, which should easily support coalitions of more than 100 soldiers. Hopefully, we can bring you one of those in the not too distant future.
Well, in the intervening time I had to sell my Mini and buy a new car (blew a valve, or maybe a head gasket), among other things. So it goes.
Korea to buy a light carrier – Hasn’t your resident extremely-amateur navalist said that the promise of the F-35B is giving any yobbo with a few billion behind the couch cushions access to aircraft carriers?
Finalized design for Korea’s next-generation destroyer – It’s turning into boost Korea and bash Boeing week. Anyway, this one has fewer VLS cells and fewer anti-ship missile canister launchers, and switched from RAM+Goalkeeper to Phalanx. The lower missile count arises from South Korean strategists’ concerns about having too many missiles on one hull. We don’t have an explanation for their decision to ditch the fancy modern CIWS for the old champion.
Abolish the RAF – In favor of a Royal Naval Air Service and a Royal Army Air Service.
Why you shouldn’t invade America – Coming to you live from the intersection of ‘CMP People’ and ‘Backwoods People Who Still Know the Old Ways’, although there are a lot of ‘Backcountry Hunters’ around these parts too.
I got a chance to play a game of Little Wars with our very own parvusimperator last weekend, taking advantage of the slightly larger amount of floor space available at his apartment to bring out the printed scenery and the expanded armies I’ve been working on since the last game. Since it’s parvusimperator’s baptism by fire, we decided to play without any extra rules, Original Wells style. So, without further ado…
The Battle of Chopinburg House
The red and blue armies meet at the ruins of Chopinburg House, a manor on the Continent destroyed in an earlier battle, and a vital point in the local road network.
North is to the upper right. I’m controlling the red forces; parvusimperator has the blue.
The central feature of the battlefield is Chopinburg House itself, just north of the center of the field. To the west of Chopinburg House is the orchard, and south of the orchard is the chapel. On the north and south of the house are the northern and southern fields, marked by stone walls. Southeast of the house is Chopinburg Wood, and the various remaining ruins and buildings (one represented by a book) are various outbuildings for the manor itself.
The red forces deploy in what’s becoming my traditional formation: infantry in staggered files to make a harder artillery target, cavalry striking force on the left, one unit of horse artillery and one of foot artillery.
Parvusimperator’s deployment is ‘blob’, which is faster to set up and doesn’t make much difference beyond aesthetics. His cavalry is largely concentrated on his right, opposite my left.
My opponent, given that this is his first game, let me move first.
One and a half rounds in, I’ve moved twice and parvusimperator has moved once. My artillery has reached the positions where it’ll spend most of the game: my horse artillery gun, on the strength of its faster movement, takes up position in Chopinburg Wood, while my infantry gun sets up in the southern fields.
This picture is two turns later, halfway into round 3: parvusimperator has had two turns, and I’ve had three, so my artillery has opened up. Lucky shooting on my part knocks out a number of his cavalrymen on my left, while the gun in the wood hits a few of his men in the northern fields.
The enemy gun on my left returned fire, clearing out a few of the cavalry massing behind the chapel. Heavy but ineffectual fire from parvusimperator’s center gun hits the stone wall sheltering my center infantry repeatedly, but there are no casualties.
In the meantime, parvusimperator moves some of his cavalry up, obscured from my guns by the shelter of the orchard.
Our first melee! My cavalry at the chapel, along with the detachments that pushed forward therefrom last turn, charge parvusimperator’s squadron in the orchard, eliminating it. My artillery has a poor turn, only accounting for a pair of infantry.
From the last photo to this one, it’s a gap of two turns again. Parvusimperator has begun to advance on my right, sheltered from my guns by the eastern outbuilding. My center gun did take some shots at the advancing blue infantry, but had little effect.
The biggest story of this round was the utter annihilation of my advance cavalry force: parvusimperator’s center gun, with a single shot, took down five horsemen, domino-style. My five remaining cavalry on the left hunker down behind the chapel, while my center infantry advance toward the manor proper, taking cover as the blue guns turn in their direction. I’ve begun to move men north of Chopinburg Wood, arraying them to meet parvusimperator’s impending attack.
Another melee: parvusimperator’s cavalry at the orchard and the northern wall of the ruins charge my infantry at the southern edge of the manor, after artillery fire weakens them sufficiently for the charge to succeed. On the other flank, his infantry gather behind the outbuilding at Chopinburg House, preparing to advance on my right.
My artillery opens the turn with a key victory: my gun in Chopinburg Wood disables the enemy gun in the orchard. My other gun chips in by taking out parvusimperator’s detachment advancing through the ruins, hitting individual infantrymen three of four times—accurate fire!
With the gun in the orchard out of action, I’m free to do two things: first, my cavalry at the chapel makes a run for it, hoping to reach and capture parvusimperator’s orchard gun. Second, my infantry sheltering in the southern outbuilding charge parvusimperator’s two remaining cavalrymen who made the attack last turn, killing them.
Regrettably, I missed taking a picture after parvusimperator’s turn again, so this is another two-turn gap. It’s also where we decided to end the battle by mutual agreement.
Parvusimperator’s center gun, which earned its keep many times over, hit three of my five cavalry moving on the orchard gun. Even so, he decided to withdraw: his cavalry on the gun were badly placed, far enough apart so that I could engage one without engaging the other, and sheltered from the center gun to boot. My gun in the wood, with some very careful aiming, managed to put a few shots into the infantry massed behind the eastern outbuilding, reducing their strength to the point that parvusimperator no longer felt comfortable making an attack into the teeth of the gun. We tallied the forces on the field, and I emerged the victor with a score of 67 to 35 (counting the partially-captured gun for half).
At this point, neither of us thought we could push our advantage to a decisive victory. According to Wells’ rules, I could have made him play out the retreat, giving myself the chance to reduce his forces further. This would have been deeply unsporting, however, since I realized that I never actually put ‘how to retreat’ in my rewriting of the rules. Oops.
Here are some glamor shots of the final state of the battlefield, followed by some analysis.
Looking north from my position in Chopinburg Wood, the bastion that survived until the end of the game.
French soldiers shelter behind Modern English Usage, which we thought was funny.
The view of the field from Parvusimperator’s center gun. A commanding position, fire from which adroitly and repeatedly stymied my attempts to assault in the center and down my left.
This is the first game I played where we reduced the turn time limits as men were killed. As it turns out, this is a critically important feature of the rules. On my turns through most of the game, I wasn’t able to use my cannons to their fullest and move all my men. Parvusimperator, a bit speedier, usually had a few tens of seconds left. The pressure is key: there simply isn’t time to get up and measure out a potential countermove, or who exactly will be in a melee. You have to rely on feel, which is a kind of randomization.
Cavalry still feel a little wimpy. They’re massive artillery targets, and in making their bases narrow enough so that frontal cannon fire can knock them over, I made them poorly-balanced enough so that they’re at risk of domino effect, one knocking the next over, if hit by enfilading fire. The cavalry charge rules will certainly help to some degree, although the rifle fire rules might count in opposition.
It also feels a bit strange that infantry can charge cavalry and bring them to combat. I’m not quite sure if or how to fix that organically.
The printed terrain pieces were fantastic. The stone walls provided good cover to men in proximity without being impossible to shoot over, and the trees and ruin sections helped break up artillery sight lines without promoting quite the same amount of hiding all your men behind the largest piece of cover.
Cover being decent but not perfect was a major contributing factor to the number of melees we saw: it was much easier to get men in close in sufficient quantity than it has been in battles past.
In rereading Little Wars before this battle, I realized that the forces we fought with are very similar to those in Wells’ example Battle of Hook’s Farm. There, two forces of 48 infantry, 25 horse, and 3 guns fought; here, the forces were 45 infantry, 24 horse, and 2 guns.
45/24/2 felt like a near-perfect ratio to me: the cavalry got into it in the early stages of the battle; infantry held positions and occasionally made attacks; the guns were important but not so much so that they overwhelmed the importance of maneuver.
If I want to do limited ammo, I think I probably need to have a stock of 25 or 30 shells per gun. It should be expensive to bring that much artillery firepower, but given the four-shots-per-turn limit, it’s entirely possible to use that many if your guns are well-placed.
We both remarked that limited ammo would have led to some extremely interesting choices: some of the shots we took were pretty low-percentage, especially early in the battle, and if we had to count shells, we might have skipped some of it, leading to more action in the mid-battle rounds.
I have strategic location variants written in the rules right now, but I’m not sure if there’s a place for them, given further thought. In Wells’ rules, the battle ends when one side retreats or is entirely eliminated. That doesn’t leave much room for divvying up victory points based on real estate held.
On the other hand, ending battles like we’ve done so far, with one side offering the other a truce, eliminates retreats from the game, and managing a fighting retreat seems like the kind of skill Little Wars ought to reward.
I wonder if there’s some way to combine the two: a two-stage battle, say. If one side holds an advantage in strategic locations for N rounds, it’s won the day, and the other side must then retreat from the field. Worth some thought.
The largest battle Wells mentions in his book is hundreds of soldiers on an eighteen-foot front.
Today’s battle was played on a front of about 5-6 feet, with a depth of 10-12 feet. Given furniture, a 12-foot front with 9 feet of depth is possible at my house, maybe a little more if we move things around.
The very largest room I have access to is at my mother’s house, if we move a couch and a table, and is maybe 12 by 12, given the furniture we can’t move. I’d love to play on an 18-by-12 field someday (in teams, perhaps, to keep turn times from getting too out of hand), but I can’t think of anywhere I could do that for free beyond maybe my driveway (impractical, because I wouldn’t want to pit PLA against south-facing blacktop) or the lobby at my church (not impossible, but I don’t know if I’d call it plausible).
I suppose I could also try the clubhouse at one of my shooting ranges.
Even though I spent a bunch of time just now thinking about ways to make the game better, that doesn’t mean it isn’t already good. The two people I’ve played with so far have both been nearly as enamored with it as me, and neither one said, “You know, once was enough.”