Of pigeons, and long distance messaging in a game world
I've written long ago about the flow of news in a large game world. Person to person news spreads slowly, imperfectly, unevenly. You can outrun it. Most current large game worlds don't have organically flowing news at all. When non-player characters pass on news relevant to the progress of a plot, it's not because news has spread to them by the natural process of character talking to character, it's because the developer has intervened and scripted it. And, of course, in games I want to write, I still want the developer to be able to intervene and script such things — where it's essential to the plot that that character should have that news.
However, there's more to the spread of information than news. Sometimes the player character must communicate with allies — either other players or non-player character allies — who are distant. Most current generation role playing games would introduce some magical device — a scrying mirror or whatever — which allows instant communication. But I want to radically limit the use of magic in my games, simply because an incoherent magical physics leads to an incoherent world, while any coherent magical physics which is more than trivial tends to ruin plots. The god should be lowered out of the machine only rarely, and never in plot-destroying ways.
So, messaging. How would real bronze-age or iron age heroes have communicated with distant allies? Well, one way is to send a messenger. That means hiring a non-player-character messenger that the plot gives you reason to trust. You've got to find that messenger. The round trip time is just the round trip time for a journey over the distance, which is to say thirty kilometres per day if the messenger is on foot, about 120 kilometres a day if on horseback, about 160 if by sea with a fair wind. Obviously the cost of the hire has to be enough to pay the messenger a premium over what he could earn from his normal occupation over that period, and enough in addition to cover the expenses of the trip. So it's quite slow and quite expensive. And if you want a message back you've got to agree a rendezvous point with the messenger (or a poste restante, possibly an inn), and you've got to actually get there. The messenger may also be unreliable, either in failing to deliver the message or being suborned by an opposing faction.
101 uses for an old smartphone, 1
I'm about to install a freezer in the barn, which is half a mile from my home. How am I going to know if the power fails or the internal temperature rises?
Various companies sell ultra-low power temperature sensors which communicate via Bluetooth, for example the TI SensorTag (which actually does far more, but it's temperature I'm interested in just now)
It is said to run for a year on one button cell.
Editing and clojure revisited: this time, with structure!
Yesterday I blogged on editing Clojure, and commented that
"So after all that I'm going to talk about how wonderful it is to be able to do structure editing in Clojure, aren't I? No, sadly, I'm not, because (as yet) you can't."
Well, you can now. About tea-time yesterday, fooling around with Clojure, I worked out how the 'source' macro works — it retrieves the source of the function or macro whose name is its argument, by inspecting the metadata tagged to the symbol. So, you can retrieve function definitions. They're retrieved as strings from the file, but the read-string function parses s-expressions from strings, so that isn't a fatal problem. And having found that, a terminal based structure editor was not far away.
On editing, and Clojure
Back in the days when the world was young and we had proper software development tools, you'd write your top level function and evaluate it. And, of course, it would break, because you hadn't yet written your lower level functions. So you'd get a break inspector window pop up on the screen, and in that you could do one of several things.
Firstly and most obviously, you could supply a value as the return value of the function you hadn't yet written, and continue the computation. Secondly, you could inspect the stack, unwind a few levels of computation, and choose a different point to continue from, supplying a new return value there. But thirdly...
Thirdly, you could write your new lower level function right there on the stack, and continue the computation through your new function. And you could write it in a structure editor.
A staggered cantilever house
I'm back to worrying again at the structural design of a house to fit into the natural hollow in the north-east corner of my croft, a house to fit organically into the landscape. It isn't that I've fallen out of love with the Winter Palace, I haven't. I like it very much. So long as I remain single, and remain fit enough to climb its stairs, it suits me very well. But it is my ambition some day to cease to be single, and within the next twenty years the stairs will probably become beyond me. So in the long term another house is necessary. And the view from this house is very restricted; from the hollow in the north east corner I could see out to the Isle of Man.
So let's go over the options for that hollow. The first option I designed was the design I called Sousterrain: four tessellated concrete domes, supported by beautifully sculptural flying buttresses. The merits of that design remain that its irregular, sculptural shape would fit very well into the landscape, that it is iconic and would be beautiful; and, in so much as the design is modular, extending it would actually be easy. The demerit is that it uses a lot of concrete, a lot of embodied energy. An eco-house it is not. A further technical problem is that if the waterproofing of the back wall were to fail, it would be extremely expensive and difficult to fix.
So the next design was the design I called Singlespace: a mostly-timber conical roof over a single large, circular room, later (in the Longeaves variant) with some sheltered external storage and the possibility at a later stage of adding an earth closet attached to the building, which one could use without going out of doors. Again, the design is elegant. But for me the major demerit is that the regular cone, even if turf-roofed, would look significantly unnatural. It would draw the eye in the landscape, immediately announcing something artificial. Also, if the back wall were not to suffer the same waterproofing issues as with Sousterran, there would have to be a significant walkway round the back, which firstly wastes space and secondly interrupts the continuity of the walking surface between the natural hillside and the roof. There would be, in effect, a chasm to be stepped over, or fallen into.