nathanrw Zola 2025-01-09T00:00:00+00:00 https://nathanrw.dev/atom.xml What did I do in 2024? 2025-01-09T00:00:00+00:00 2025-01-09T00:00:00+00:00 https://nathanrw.dev/posts/20250109-what-did-i-do-in-2024/ <p>I realised that in 2024 I made no updates to this website! There are a number of reasons for this:</p> <ul> <li>I didn't get round to it</li> <li>I felt compelled to say something about Israel's genocide in Gaza before talking about other things, but couldn't find the words.</li> </ul> <h2 id="contents">Contents</h2> <!-- toc --> <h2 id="october-2023">October 2023</h2> <h3 id="murder-mystery">Murder Mystery</h3> <p>Much of September and early October I spent working on a <a href="../20231125-the-curse-of-the-blood-eagle/">murder mystery party game.</a></p> <h3 id="gaza">Gaza</h3> <p>Then began the still-ongoing genocide in Gaza. I've felt obligated to say something about it on here ever since, but what words would be adequate, given what is being done with the full-throated support (and material and military aid!) of ones own country? So I ended up not posting anything at all.</p> <p><a href=".&#x2F;images&#x2F;protest.jpg"><img src=".&#x2F;images&#x2F;protest.jpg" alt="An image of a protest march in London"></img></a></p> <p>Aside from going to one of the protests in London (perversely labelled 'Hate Marches' in our execrable and complicit press by the cartoon-villain then-home-secretary Suella Braverman), one thing I did was to learn more about the recent political history of the Middle East. An invaluable resource for this was the <a href="https://thedigradio.com/podcast/introducing-thawra/">excellent <em>Thawra</em> podcast</a>:</p> <blockquote> <p>a miniseries on 20th century Arab politics. Over the coming 16 episodes, host Daniel Denvir and historian Abdel Razzaq Takriti delve into the history of the diverse political radicalisms and revolts that have swept across Arab lands in the past century. Denvir and Takriti demystify the fundamental coloniality of the modern Middle East—including of Israel, the Zionist settler colony launched by the British.</p> </blockquote> <p>The website links an MP3 file, but you can also find it on Spotify etc.</p> <h4 id="the-bds-campaign">The BDS Campaign</h4> <p>It is important to support the <a href="https://bdsmovement.net/Act-Now-Against-These-Companies-Profiting-From-Genocide">BDS Campaign.</a></p> <p>BDS stands for 'Boycott, Divestment and Sanctions'. It is led by the Palestinian BDS National Committee. It is a campaign of <em>targetted</em> boycotts of goods and services.</p> <blockquote> <p>The BDS movement uses the historically successful method of targeted boycotts inspired by the South African anti-apartheid movement, the US Civil Rights movement, the Indian anti-colonial struggle, among others worldwide. </p> <br> <p>We must strategically focus on a relatively smaller number of carefully selected companies and products for maximum impact. We need to target companies that play a clear and direct role in Israel’s crimes and where there is real potential for winning, as was the case with, among others, G4S, Veolia, Orange, Ben &amp; Jerry’s and Pillsbury. Compelling large, complicit companies, through strategic and context-sensitive boycott and divestment campaigns, to end their complicity in Israeli apartheid and war crimes against Palestinians sends a very powerful message to hundreds of other complicit companies that “your time will come, so get out before it’s too late!”</p> </blockquote> <p>The point is <em>not</em> simply to avoid feeling as an individual that one is complicit. As a UK citizen, a certain degree of complicity in the genocide is unavoidable -- our government is supporting, arming and participating in it, and aside from a few independent candidates it has not been possible to vote against it. It is therefore not a problem that the list of companies and products to boycott is 'arbitrary' or 'incomplete' -- it has to be, in order to stand the chance of having an effect.</p> <p>Similarly, a common objection to calls for solidarity with Palestine is: why oppose regime X and not regime Y? What about Xinjiang, the Congo, Sudan, ...? There are a few fairly obvious answers to this:</p> <ul> <li>Our government is not directly backing those atrocities. Nobody in our press is argueing that the treatment of the Uyghurs is Good Actually. Our government isn't selling F-35 parts to Congolese militias or providing them with access to airbases. (There are other forms of complicity in various atrocities, but the point is that it isn't nearly so direct!)</li> <li>Any campaign is by definition not another campaign. If you're doing one thing you are not doing another thing. If we never did anything because 'why not do the other thing' then nothing would ever happen at all. And quite often this is precisely the aim when this point gets made by the ghouls that write in newspapers.</li> </ul> <h4 id="medical-aid-for-palestinians">Medical Aid for Palestinians</h4> <ul> <li><a href="https://www.map.org.uk/">medical aid for palestinians</a></li> </ul> <h2 id="projects-in-2024">Projects in 2024</h2> <p>In terms of personal project work, 2024 was a period of dabbling in various different things.</p> <h3 id="contingency">Contingency</h3> <p><a href=".&#x2F;images&#x2F;contingency.jpg"><img src=".&#x2F;images&#x2F;contingency.jpg" alt="An image of Contigency in its current state"></img></a></p> <p>To the great surprise of nobody I'm sure, progress on my magnum opus economic simulation has stalled. This is because I went down a few ultimately unproductive rabbit holes, and because I spent a lot of time dabbling in other areas.</p> <h4 id="quantities-optimization">Quantities Optimization</h4> <p>The first tarpit was optimization of my <code>Quantities</code> type. I found that calculating land use for the entire world every frame was taking a lot of time, due to lots of arithmetic operations involving <code>Quantities</code>. I'll probably do a post about this because the problem itself and the solutions I tried are fairly interesting (to me). I didn't find a completely satisfactory solution but the one I did find <em>was</em> much faster than what I started with.</p> <h4 id="imgui-experiments">IMGUI Experiments</h4> <p>Second, I experimented with making a simple UI system as an alternative to Dear ImGUI for game UI. The motivation for this is that Dear ImGUI is designed to be used for tools, and you only have limited control over how it looks.</p> <p><a href=".&#x2F;images&#x2F;imgui.jpg"><img src=".&#x2F;images&#x2F;imgui.jpg" alt="An image of my a UI example"></img></a></p> <p>This might be worth taking further at some point, but really it took up a fair bit of work for not a lot of reward. For now, I think the best approach is to just use Dear ImGUI for everything and accept things looking like Dear ImGUI as the price of its ease of use.</p> <h4 id="stalled-progress">Stalled Progress</h4> <p><a href=".&#x2F;images&#x2F;contingency2.jpg"><img src=".&#x2F;images&#x2F;contingency2.jpg" alt="An image of Contigency in its current state"></img></a></p> <p>This project is now on hold whilst I aim to fully complete a less ambitious project first. I'm actually quite happy with how the project is looking at the moment, but it's too big to be able to declare it finished in any reasonable length of time -- and the aforementioned distractions sapped my enthusiasm somewhat.</p> <h3 id="workbench">Workbench</h3> <p>The Workbench is probably the most useful thing I made this year.</p> <p>Often, I want to implemented a technique or debug an algorithm. In the context of a running game this can be too clumsy -- you really just want to be executing the code you are interested in and nothing more, and you don't want to have to do a bunch of work to set up your test case.</p> <p>It's possible to make a separate MonoGame project for each case like this, but there is a lot of boilerplate involved and switching between cases is slow.</p> <p>The Workbench gives me a way of quickly adding new self-contained graphical applications without as much work as creating a new project, and allowing me to re-use all assets, and in a way that allows me to quickly switch between test cases.</p> <p>All I now have to do is derive a class from the following, and it is automatically picked up via reflection as a bench that I can select:</p> <pre data-lang="C#" style="background-color:#2b303b;color:#c0c5ce;" class="language-C# "><code class="language-C#" data-lang="C#"><span> </span><span style="color:#b48ead;">public abstract class </span><span style="color:#ebcb8b;">Bench </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public </span><span style="color:#eff1f5;">WorkbenchGame </span><span style="color:#bf616a;">Game</span><span style="color:#eff1f5;">; </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public void </span><span style="color:#8fa1b3;">Initialise</span><span style="color:#eff1f5;">(WorkbenchGame </span><span style="color:#bf616a;">game</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#bf616a;">Game </span><span>= </span><span style="color:#bf616a;">game</span><span style="color:#eff1f5;">; </span><span style="color:#eff1f5;"> </span><span style="color:#bf616a;">Initialised</span><span style="color:#eff1f5;">(); </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">Initialised</span><span style="color:#eff1f5;">() </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">BeginFrame</span><span style="color:#eff1f5;">(GameTime </span><span style="color:#bf616a;">gameTime</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">GUI</span><span style="color:#eff1f5;">(GameTime </span><span style="color:#bf616a;">gameTime</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">Update</span><span style="color:#eff1f5;">(GameTime </span><span style="color:#bf616a;">time</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">Input</span><span style="color:#eff1f5;">(GameTime </span><span style="color:#bf616a;">time</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">Draw</span><span style="color:#eff1f5;">(GameTime </span><span style="color:#bf616a;">time</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual void </span><span style="color:#8fa1b3;">EndFrame</span><span style="color:#eff1f5;">(GameTime </span><span style="color:#bf616a;">gameTime</span><span style="color:#eff1f5;">) </span><span style="color:#eff1f5;"> { </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> } </span><span style="color:#eff1f5;"> </span><span style="color:#eff1f5;"> </span><span style="color:#65737e;">/// &lt;</span><span style="color:#bf616a;">summary</span><span style="color:#65737e;">&gt; </span><span style="color:#65737e;"> /// Should return &#39;true&#39; unless the bench wants to host the workbench UI </span><span style="color:#65737e;"> /// itself via Game.DoMainGUI(). </span><span style="color:#65737e;"> /// &lt;/</span><span style="color:#bf616a;">summary</span><span style="color:#65737e;">&gt; </span><span style="color:#eff1f5;"> </span><span style="color:#b48ead;">public virtual bool </span><span style="color:#bf616a;">WantDefaultMainUI </span><span style="color:#b48ead;">=&gt; </span><span style="color:#d08770;">true</span><span style="color:#eff1f5;">; </span><span style="color:#eff1f5;"> } </span></code></pre> <p>A Bench can easily do custom drawing, input and make Dear ImGUI calls.</p> <p>Here's a Bench for debugging the Delaunator library:</p> <p><a href=".&#x2F;images&#x2F;workbench_delaunator.jpg"><img src=".&#x2F;images&#x2F;workbench_delaunator.jpg" alt="An image of the workbench debugging Delaunator"></img></a></p> <p>And here's a more complex Bench for prototyping 4x game rules on a sphere:</p> <p><a href=".&#x2F;images&#x2F;workbench_4x.jpg"><img src=".&#x2F;images&#x2F;workbench_4x.jpg" alt="An image of the workbench debugging a 4x map"></img></a></p> <p>The other win here is my decision to keep all of my game projects within a single solution in a single repository. They all share a lot of code with one another, and they don't 'rot' over time. Despite me having not touched Contingency in a while, I can still easily fire it up and work on it.</p> <h3 id="ommerum">OMMERUM</h3> <p>Two things are fascinating to me:</p> <ol> <li>Tunnels</li> <li><a href="https://youtu.be/D1T-s8jaksM?feature=shared&amp;t=28">The 100% perfect combat system of Baldurs Gate: Dark Alliance</a></li> </ol> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/198065566@N05/albums/72177720323079805" title="Tunnels"><img src="https://live.staticflickr.com/65535/54257800678_9154c84bf8_z.jpg" width="640" height="480" alt="Tunnels"/></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script></p> <p>So I experimented with making an isometric ARPG in a precedurally-generated tunnel system.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/dDZk8IuE0io?si=floguFQwrrdoigNA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/g7ctxJih0Q0?si=GGzxsGPRHHz4zmrP" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <h4 id="skeletal-animation">Skeletal Animation</h4> <p>This project stalled when I got side-tracked into writing a tool for skeletal animation. I was dismayed by the complexity involved in making animations in tools like Blender, and in importing them into MonoGame. I looked at the GLTF format and was quite intimidated by it! Surely I could come up with something simpler myself?</p> <p><a href=".&#x2F;images&#x2F;skeleton.jpg"><img src=".&#x2F;images&#x2F;skeleton.jpg" alt="An image of the skeleton editor"></img></a></p> <p>As you might expect, making even a simple tool for this is going to take more work than learning to do it the normal way and import the result. So I need to do that (learn blender) before I continue with this! Otherwise it will be a game about a cube with a floating sword, and I'm not too inspired by that!</p> <p>It did help me flesh out my Workbench tool though!</p> <h3 id="get-annihilated">Get Annihilated</h3> <p>I've been working on a 'hex and counter' style wargame on the surface of a sphere, which I am provisionally calling 'Get Annihilated' as a reference to <a href="https://en.wikipedia.org/wiki/Total_Annihilation"><em>Total Annihilation</em></a> and <a href="https://en.wikipedia.org/wiki/The_World%27s_End_(film)"><em>The World's End</em></a>.</p> <p><p><a href=".&#x2F;images&#x2F;getannihilated_menu.jpg"><img src=".&#x2F;images&#x2F;getannihilated_menu.jpg" alt="An image of a wargame main menu"></img></a></p> <p><a href=".&#x2F;images&#x2F;getannihilated.jpg"><img src=".&#x2F;images&#x2F;getannihilated.jpg" alt="A screenshot from a _Get Annihilated_ prototype"></img></a></p></p> <p>I love hex grid maps and I've been wanting to make a game around one for ages. One thing I always wanted from Civilization 5 was for the map to be on a true sphere, not a 2D grid projected onto a cylinder. Now, it's mathematically impossible to tesselate a hex grid onto a sphere, but there are compromises that allow you to do it: include a few pentagons, or have arbitrary polgons instead of true hexes. That's what I've gone for here: lay out points on the surface of a sphere using the fibonacci spiral, perturb them a bit, then compute the convex hull. On a sphere, the convex hull is the same as the delauney triangulation, which is itself the same as the voronoi diagram. So instead of hexes, we have voronoi cells on the sphere surface. If you don't perturb the points, you get 'mostly hexes' in a very recognizable pattern. If you perturb the points a bit, you get more irregular shapes in a less obvious pattern.</p> <p>The inspirations here are a cocktail of miniature wargames like <em>Epic Armageddon</em> and <em>Legions Imperialis</em>, and videogames such as <em>Shadow Empire</em>, <em>Supreme Commander</em> and <em>Dominions</em>.</p> <p>I took a deliberately slapdash approach to the initial implementation, which I think has paid off. I even made the very first prototype wholly within the Workbench. The current version is fully playable with hot-seat and play-by-email (PBEM) multiplayer.</p> <p>Subsequently, I have been experimenting with different combat systems for it in the Workbench -- the current version is highly abstracted, whereas what I want is something like Dominions where hundreds of little blokes duke it out:</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/r0EGNVkrd14?si=Xhz5AW8xVxfsZypz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <p>Art assets here are from various assets packs I bought.</p> <p>I'm currently working on a more sophisticated economic model with unit design, where units are composed from devices that have to be built in factories. It's a big step-up in complexity which I'm trying to manage by working on small parts at a time in the Workbench. I'd like soon to be able to make another full game prototype integrating my economic model and combat system.</p> <p>I have all sorts of ideas for this including different factions, events and weapons of mass destruction. I'm hoping that because the scope of this game is deliberately limited -- it's a pure wargame which you win or lose, not an open-ended simulation -- I can get a lot of this stuff implemented and actually sell copies of it...</p> <h2 id="miniatures">Miniatures</h2> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/198065566@N05/albums/72177720323098703" title="Minis"><img src="https://live.staticflickr.com/65535/54256692192_caa318aebb_z.jpg" width="640" height="480" alt="Minis"/></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script></p> <p>I got back into miniature wargaming with friends. I'd been wanting to get into epic-scale warhammer since finding the <em>Epic Armageddon</em> rulebook in a charity shop a few years ago. With the release of <em>Legions Imperialis</em> a few of us got into it and now I have lots of tiny plastic men. My aim has been to collect miniatures I can use in either system, so I actually don't have all that many official LI miniatures -- mostly old <em>Epic</em> stuff or third party miniatures. But now I have the bug I'll probably be getting some more...</p> <p>The LI rules are a bit of a mixed bag. It's a fun game that looks great, but the rules themselves are somewhat inelegant, and released in a dribble of overpriced rulebooks. I'll probably write a post about them at some point.</p> <h2 id="driving">Driving</h2> <p>I got my driving license in late 2023, so much of 2024 was spent driving to the countryside.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/198065566@N05/albums/72177720323084111" title="Outside"><img src="https://live.staticflickr.com/65535/54257692551_a521403f90.jpg" width="640" height="480" alt="Outside"/></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script></p> The Curse of the Blood Eagle 2023-11-25T00:00:00+00:00 2023-11-25T00:00:00+00:00 https://nathanrw.dev/posts/20231125-the-curse-of-the-blood-eagle/ <div class="title"> <h1> <img src="./images/coin.png" alt="Image of a coin with a face on it." width="400pt"></img> <span class="pre-title">The Curse of the<span> <br> <span class="main-title">BLOOD EAGLE</span> </h1> </div> <hr/> <h1 id="contents">Contents</h1> <div class="columns"> <!-- toc --> </div> <hr/> <h1 id="introduction">Introduction</h1> <blockquote> <p>October, 1919. Almost a year has passed since the ending of the Great War, but its scars are still raw. You have received a mysterious summons to the Yorkshire estate of Count Halfdan Selby, a reclusive and eccentric armaments manufacturer famed for his delusions of grandeur and obsession with his dubiously-established norse heritage.</p> <br/> <p>Selby made the news just before the war, when a fabulous treasure trove of viking gold, thought to have been buried with a commander of the Great Heathen Army of 865, was discovered on his land by THE ARCHAEOLOGIST, who had been hired by the Count to inspect a barrow. Soon after its discovery, the gold disappeared and was never found. The initial suspicion of all involved, that it had been stolen by THE ARCHAEOLOGIST herself, was never proven.</p> <br/> <p>For your own reasons, on the dark and stormy night of the 20th of October 1919, you arrive at the gates of Selby Manor; in your pocket is the single gold coin you acquired all those years ago…</p> </blockquote> <p><i>The Curse of the Blood Eagle</i> is a murder mystery party game for around 20 people. It revolves around a treasure hunt wherein the guests search for clues and solve the mystery.</p> <p>⚠️ <strong>Note:</strong> This has been played <em>once</em> with some ad hoc modifications. Please see the <a href="https://nathanrw.dev/posts/20231125-the-curse-of-the-blood-eagle/#errata">'errata'</a> section.</p> <hr/> <h1 id="the-story">The Story</h1> <p>Selby Manor, now an extensively-renovated National Trust property with a nice garden and tearoom, had stood empty for much of the 20th century after the terrible happenings of 1919…</p> <h2 id="the-great-heathen-army-of-865">The Great Heathen Army of 865</h2> <ul> <li>In the year 865, the Scandinavian King Ragnar Lodbrok was killed by Ælla, the King of Northumbria, who cast him into a pit of serpents. The slow worms, not being venomous, were in more danger from him than he was from them; nevertheless, he was killed by the fall.</li> <li>Vowing revenge, his three sons Halfdan Ragnarsson, Ivar the Boneless and Ubba mounted an invasion of England. They landed at Thanet and were bribed with gold by the people of Kent in exchange for peace. For more than a decade, they marched up and down the British Isles, looting and pillaging. The conquered territories became established as what was known as the Danelaw in 878.</li> <li>The size of the Great Heathen Army, as it was known, has been the subject of debate. Despite the name, historians estimate based on the capacity of a Viking ship, that it could have consisted of no more than 1000 men. Yes these men were able to rampage up and down the country.</li> <li>Some less reputable sources refer to an object known as the Ring of Multiplicity.. Supposedly this artefact was referenced obliquely in the Anglo-Saxon Chronicle, and gave its owner mystical powers, including the ability to transform base metals into gold, to prolong his life unnaturally, to be in many places at once or even to make phantasmatic copies of living people.</li> <li>This is indeed what happened. The three brothers set sail in three ships, with no more than 100 men in total. Halfdan, bearer of the ring, used it to create hundreds of copies of each of them, resulting in an army of 10,000 phantoms. In their terrifying white masks, they raided the monasteries of England.</li> </ul> <h2 id="the-blood-eagle-and-the-selby-barrow">The <span class="gothic">BLOOD EAGLE</span> and the Selby Barrow</h2> <ul> <li>Ubba secretly coveted the Ring. One day, he set off with his brothers into the woods near what would become Selby Manor. There, his trusted men waited in ambush, ready to slay his brothers so that he could take it for himself. Yet Ivar and Halfdan were able, through their own cunning or through the power of the Ring, to overcome their attackers. Ubba was captured and his men were slain. Ivar, however, was mortally wounded. For the slaying of Ivar, Ubba was dealt the ultimate punishment. He was taken to the woods, and staked to the ground, where Halfdan implored the gods to curse him forever. <i>Legends tell of the <b>BLOOD EAGLE</b> which burst from his chest and flew away.</i></li> <li>Halfdan raised a barrow in which the remains of his brothers were interred. As weregild for the murder, all the wealth of Ubba’s household was confiscated; this hoard of coins was buried with Ivar. Along with the coins, Halfdan left the Ring – he blamed it for corrupting the heart of his brother. Ubba was interred at the opposite end of the barrow, impaled on a pair of swords.</li> <li>The gold is coveted by the angry spirit of Ubba, imprisoned in the form of the BLOOD EAGLE. All who touch it are cursed. The swords impaling Ubba keep his angry spirit in check. But if they are removed, he will come for all who touch his gold.</li> <li>The brothers Ivar and Ubba were said to have died much later. This is because they were copied using the Ring. Phantoms created by the Ring are under the control of the ringbearer that created them. Eventually Halfdan Ragnarsson and all of the phantoms had died in battle, and the Ring of Multiplicity passed out of history… Until now!</li> </ul> <h2 id="halfdan-selby">Halfdan Selby</h2> <ul> <li>Halfdan Selby is an eccentric industrialist who inherited the family textile mill in Bradford, using this fortune to branch out into armaments manufacture. This proved lucrative during the Boer War, and he used the proceeds to purchase Selby Manor, an estate he believed to have previously belonged to his ancestors.</li> <li>He is obsessed with his family heritage, believing himself to be descended from a line of Jarls of the Danelaw. He pulled some strings with friends in high places aiming to get himself made an Earl; he had to settle with being a Viscount instead – he goes by Count hoping that nobody will notice.</li> <li>His real reason for wanting the Selby Estate is because he has stumbled on esoteric accounts of the Ring of Multiplicity. He believes that if it can be found, he can study it and use it for military purposes. (He also believes it to be rightfully his.) The last location where it was hinted to be was here…</li> </ul> <h2 id="the-incident-of-1913">The Incident of 1913</h2> <ul> <li>Selby immediately began searching his lands, discreetly, for Viking burial sites. It was not until several years later, however, that he stumbled upon the entrance to the Selby Barrow. It did not take much poking about to find the Ring. Halfdan pocketed this, along with a gold coin and some interesting swords for good measure, and then contacted the ARCHAEOLOGIST about the barrow.</li> <li>The ring proved difficult to master. Selby, of course, immediately put it on, only for it to do nothing. It was just an ordinary gold band.</li> <li>It was not until he brought it into contact with the coin he had taken that he started to notice some effect. He was able to make a single phantom copy of himself which lasted for a few minutes. The coin was transmuted into lead. Immediately the night air was pierced by a shriek, and he heard a buffeting sound as if from the wings of some giant bird. Whenever he turned, in the corner of his vision was the image of the BLOOD EAGLE. He knew he had to recover the coins.</li> <li>He stole the Selby Hoard and sequestered it in the Manor, dropping hints to implicate the ARCHAEOLOGIST. The angry spirit seemed to have been placated. For now…</li> <li>Tentative experiments with ordinary non-cursed gold have allowed Selby to unlock some of the ring’s powers.</li> </ul> <h2 id="selby-manor-during-the-great-war">Selby Manor During the Great War</h2> <ul> <li>Part of Selby Manor was taken over by the Government during the War and used as a hospital.</li> <li>Many people who were stationed there have bloodcurdling stories to tell of the place, though skeptics are inclined to disbelieve them.</li> <li>As the years passed, and the Great War only grew the coffers of Selby’s armaments factory, he began to see the BLOOD EAGLE more and more frequently. He knew that some coins were still missing, and that he would have to recover them…</li> </ul> <h2 id="the-mysterious-summons-of-1919">The Mysterious Summons of 1919</h2> <ul> <li>Through whatever means, natural or supernatural, Selby has tracked down all of the bearers of cursed coins, and has issued them with an invitation to his manor. An invitation they can’t refuse…</li> <li>The <span class="gothic">BLOOD EAGLE</span>, the accursed spirit of Ubba, wants to recover all of the coins so that it can free itself and exact revenge on the world. <ul> <li>It can only be contained by returning the viking swords to Ubba’s remains.</li> <li>It cannot fully manifest itself in the world without recovering all of the coins, but it can influence people and cause them to experience strange things. It is controlling Halfdan Selby.</li> </ul> </li> </ul> <hr/> <h1 id="sequence">Sequence</h1> <p>The scenario proceeds as follows.</p> <h2 id="introduction-1">Introduction</h2> <p>Instruct the guests to assemble in the dining room at 20:00.</p> <p>The guests assemble in the dining room at the appointed time. Halfdan Selby is DEAD.</p> <blockquote> <p>You see before you the body of Halfdan Selby, the man who invited you all here and whom you know only from his image in the newspapers; any previous dealings you might have had with him having been undertaken by his servants. He is slumped at a seat at the table in the grand dining hall, a room as baroque with gothic ornament as the shadowy entrance hall from which you just emerged; the walls, adorned with tapestries and armaments, loom upwards into darkness. Your surroundings are dimly lit by inadequate electric lamplight and from the glow of a fire in the great hearth; the occasional flash of lightning from the storm outside fills the room through enormous stained-glass windows that are hammered by raindrops and which rattle with the blowing gale.</p> </blockquote> <p><b>Sound: storm</b><br/> <b>Sound: fireplace</b></p> <hr/> <h2 id="treasure-hunt">Treasure Hunt</h2> <blockquote> <p>Out of the corner of your eye, in the shadows, you each occasionally glimpse the face of Selby. Are you imagining it? Or does his spirit yet linger here?</p> </blockquote> <p>Read out the rules:</p> <ul> <li>Aim of the game is to search the house for clues</li> <li>If you see a padlock on something, that thing is <strong>LOCKED</strong>. You <b><i>must not open or move it.</i></b> Guess where the codes are…</li> <li>Notes represent <strong>ITEMS.</strong> Mostly these are texts, but if you couldn’t logically pick something up then don’t!</li> <li>You <strong>MIGHT</strong> be in possession of valuable information already.</li> </ul> <p>Next to the body is a CLUE. Someone can READ IT OUT to the group.</p> <p><b>Clue: The Body of Halfdan Selby</b><br/> <b>Clue: The Bloody Note</b></p> <p>You are locked inside. You have no choice but to search the house and talk to your fellow guests for clues as to your predicament.</p> <h3 id="prep">Prep</h3> <ul> <li>Hide clues throughout house</li> <li>Four locks <ul> <li>Locked room A</li> <li>Locked room B</li> <li>Sword 1</li> <li>Sword 2</li> </ul> </li> <li>Locked room A <ul> <li>Sword 1, locked</li> <li>Sword 2, locked</li> </ul> </li> <li>Locked room B <ul> <li>Ubba’s remains</li> <li>The hoard</li> </ul> </li> <li>Main room <ul> <li>Laptop</li> <li>Speaker</li> <li>Lights</li> <li>Suitcase with extra props</li> </ul> </li> <li>Guests <ul> <li>Coin to each guest</li> <li>Provide bird to GAMEKEEPER</li> <li>Pens / paper</li> </ul> </li> </ul> <h3 id="puzzles">Puzzles</h3> <h4 id="lock-1">Lock 1</h4> <p>Door to the sword room. 2334, note on a scrap of paper.</p> <h4 id="lock-2">Lock 2</h4> <p>Door to the hoard. This will be the hardest puzzle.</p> <ul> <li>Code is in an encrypted message.</li> <li>Secret key given by crossword puzzle.</li> <li>9234</li> </ul> <h4 id="lock-3">Lock 3</h4> <ul> <li>Sword, 1143, BLOD note</li> </ul> <h4 id="lock-4">Lock 4</h4> <ul> <li>Sword, 3458, as letters ROT13 encoded.</li> </ul> <hr/> <h2 id="event-murder-in-the-dark">Event: Murder in the Dark</h2> <p><b>Trigger: The guests open either the door to Ubba’s remains, or to one of the swords.</b></p> <p>When it seems around the halfway point has been reached, sound the gong to summon the guests back to the dining room.</p> <p>Explain what is about to happen</p> <ul> <li>You must stand facing the wall with a blindfold on (or go somewhere in the house, TBD)</li> <li>The lights will go out</li> <li>If the killer taps you on the shoulder, wait for the signal, which will be a sound</li> <li>At this point, make the most bloodcurdling scream you can! You are dead!</li> </ul> <blockquote> <p>As you enter the dining room, all lights in the house go out. (Turn off the lights.) You find yourselves in complete darkness… One among you senses their moment!</p> </blockquote> <ul> <li>Tap a couple of people on the shoulder.</li> <li>Return to the laptop, and play the sound.</li> <li>Dead people die.</li> <li>Turn the lights back on.</li> <li>Place markers and clues for dead people.</li> </ul> <p>Someone should read the clues.</p> <p>Dead people accompany me to another room. I will go there and brief them shortly.</p> <p>The others can continue their search.</p> <hr/> <h2 id="event-the-menacing-phantoms">Event: The Menacing Phantoms</h2> <p><b>Trigger: The guests open the door to Ubba’s remains (if they have unlocked a sword) or they unlock a sword (if they have unlocked Ubba’s remains).</b></p> <p>The killing should have taken place at around the halfway point or after, when it won’t be long until the end of the mystery.</p> <p>The dead people should equip themselves with masks and cloaks and run in to menace the other guests!</p> <hr/> <h2 id="event-end">Event: End</h2> <ul> <li>To contain the angry spirit of the blood eagle, the remains of Ubba must again be impaled upon the swords. This is what Halfdan Selby has been trying to do, when he has been able to resist the influence of the blood eagle.</li> <li>To release the angry spirit of the blood eagle, all of the coins must be placed near Ubba’s remains. This is what the blood eagle wants, and what it has been trying to force Halfdan Selby to do</li> </ul> <p>If the curse is broken, the real Halfdan Selby, possessed by the Blood Eagle, is found dead in the dining room next to the original body. He has two parallel wounds in his skull, as if impaled on two swords...</p> <hr/> <h1 id="handouts-and-clues">Handouts and clues</h1> <h2 id="guest-introduction-handout">Guest Introduction Handout</h2> <blockquote> <p>October, 1919. Almost a year has passed since the ending of the Great War, but its scars are still raw. You have received a mysterious summons to the Yorkshire estate of Count Halfdan Selby, a reclusive and eccentric armaments manufacturer famed for his delusions of grandeur and obsession with his dubiously-established norse heritage.</p> <br/> <p>Selby made the news just before the war, when a fabulous treasure trove of viking gold, thought to have been buried with a commander of the Great Heathen Army of 865, was discovered on his land by THE ARCHAEOLOGIST, who had been hired by the Count to inspect a barrow. Soon after its discovery, the gold disappeared and was never found. The initial suspicion of all involved, that it had been stolen by THE ARCHAEOLOGIST herself, was never proven.</p> <br/> <p>For your own reasons, on the dark and stormy night of the 20th of October 1919, you arrive at the gates of Selby Manor; in your pocket is the single gold coin you acquired all those years ago…</p> </blockquote> <hr/> <h2 id="clues">Clues</h2> <p>Each clue should be placed in an envelope and hidden. Some clues are more important than others; special care should be taken arround puzzle dependencies.</p> <div class="clue"> <h3 id="the-body">The Body</h3> <p>Selby is dead. Most definitely dead. This is the deadest you’ve ever seen anyone or anything – even those of you who were in the trenches. </p> <p>When you realise that <b>the body has been nailed to the table, and that the lungs have been removed by sawing through the ribcage,</b> you are surprised that there is so little blood…</p> <p>There is nobody else in the house. Is there? <b>Which one of you did this?</b></p> </div> <div class="clue"> <h3 id="the-body-of">The Body of _______</h3> <p>Your fellow guest is dead. <i>Could you be next?</i></p> <p>The cause of death appears to be <i>bludgeoning to the back of the head.</i></p> </div> <div class="clue"> <p><img src="./images/2334.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/alnum.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/alphabet.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/armoury.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/barrow_location.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/blod.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/brewer.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/bugle.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/burial.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/capacity.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/coin.png"></img></p> </div> <div class="clue"> <p><img src="./images/crossword.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/crossword_answers.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/dig_site_diagram.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/hoard.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/inventory.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/jutland.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/last_puzzle.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/lead.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/lindisfarne.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/lookalike.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/manor_photo.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/mask.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/nurse.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/progress.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/qrsv.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/quarelled.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/remains.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/rot13.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/scientist.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/table1.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/table2.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/table3.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/table_note.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/telegraaf.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/telegraph_and_argus.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/thanet.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/the_blood_eagle.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/traitor.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/vengeance.jpg"></img></p> </div> <div class="clue"> <p><img src="./images/weregild.jpg"></img></p> </div> <h1 id="characters">Characters</h1> <div class="character"> <h2 id="the-archaeologist">The Archaeologist</h2> <h3 id="who-you-are">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>An archaeologist specialising in Anglo-Saxon burial practices</li> <li><b>Hired by Halfdan Selby to investigate the Selby Hoard</b>, discovered on his land just before the war</li> <li><b>Accused</b> of stealing the hoard when <b>it went missing</b>. There was not enough evidence to convict you. <ul> <li>You in fact made off with a single coin.</li> <li>The CONSTABLE has his eye on you.</li> </ul> </li> <li>You are are a <strong>kleptomaniac</strong></li> </ul> <h3 id="goals">Goals</h3> <ul> <li>Find the rest of the Selby Hoard and clear your name. <em>It belongs in a museum!</em></li> <li>Steal at least 5 objects from other people and keep them hidden</li> <li>Avoid the attention of the CONSTABLE</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-scientist">The Scientist</h2> <h3 id="who-you-are-1">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>A research chemist working in the experimental lab of the Selby Armaments co, which was shut down at the beginning of the war in favour of more practical pursuits</li> <li>Secretly pursuing your own alchemical experiments in search of the <b>philosophers stone</b>, which will allow you to turn lead into gold and live forever</li> <li><b>You believe the Selby Hoard to have been created using the philosopher’s stone</b>, that Selby is in possession of it, and that this is why he closed your lab.</li> <li>When your lab was shut down, and before the Selby Hoard vanished, you made off with a single coin as a sample</li> </ul> <h3 id="goals-1">Goals</h3> <ul> <li>Find Selby’s magical artefact</li> <li>Mix a magical elixir from five different ingredients and have someone drink it</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-engineer">The Engineer</h2> <h3 id="who-you-are-2">Who you are</h3> <ul> <li>NAME: Mr. REDACTED Warner Esq.</li> <li>An engineer and autocar racer</li> <li>Famous for managing to come last in a race where every other car was rendered inoperable by a <b>freak seagull attack</b>, but you have not been seen racing in years…</li> <li>During a visit to the Selby estate following a professional visit to the Armaments Factory, Halfdan Selby showed you his prized Selby Hoard.</li> <li>In an uncharacteristic episode of larceny, <b>you pocketed a single coin</b>, which you have been <i>unable to put down ever since</i></li> <li>Since taking up the coin, you began to notice that <i>strange things had started to happen to your motor racing opponents…</i></li> </ul> <h3 id="goals-2">Goals</h3> <ul> <li>Find out the truth about the cursed coin!</li> <li>Engage every other guest in conversation about motor cars</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-mathematician">The Mathematician</h2> <h3 id="who-you-are-3">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>A mathematical prodigy from an early age, you are an assistant lecturer at the University of Birmingham</li> <li>Over the course of the war, you became known for your increasingly <b>eccentric theories about the structure of the universe resembling that of a giant crossword puzzle.</b> You now refuse conventional mathematical notation entirely, and your lectures exclusively assume the crossword format.</li> <li>Before the war, you gave an after-dinner lecture on mathematics to an exclusive group, which was attended by Count Halfdan Selby. Selby presented an array of gold coins from a barrow discovered on his land. <b>That night, you found a single gold coin in your purse. It has been there ever since.</b> It is your precious.</li> </ul> <h3 id="goals-3">Goals</h3> <ul> <li>Solve at least one crossword puzzle, and explain at length to the other guests how this validates your theories</li> <li>Discreetly return the coin – but can you let it go?</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-aristrocrat">The Aristrocrat</h2> <h3 id="who-you-are-4">Who you are</h3> <ul> <li>NAME: Dirkjan van Sprinkle</li> <li>A disgraced aristocrat from the Netherlands, you entered Britain disguised as a Belgian refugee after gambling away your entire fortune and fleeing your creditors.</li> <li>Years before your descent into bankruptcy, whilst on a shooting tour of Britain’s moors, <b>you attended a public fête held at Selby Manor in celebration of the discovery of the Hoard.</b></li> <li>Afterwards, <b>you won a mysterious gold coin in a game of cards</b> with the stablehands. <i>Since that victory, your luck has run dry…</i> but you can’t bring yourself to part with it.</li> </ul> <h3 id="goals-4">Goals</h3> <ul> <li>Obtain more of the gold coins for yourself so that you can pay off your creditors and return home</li> <li>Either win or lose something by engaging in gambling</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-soldier">The Soldier</h2> <h3 id="who-you-are-5">Who you are</h3> <ul> <li>NAME: Sgt. 'Pepper' Collins</li> <li>A decorated war veteran. At the Somme, when your battalion was out of ammunition, you stole all of the ground black pepper from the officer’s mess and chucked it into the German barracks during a surprise attack, making them all sneeze and thus incapacitating them, giving you chance to escape.</li> <li>Upon attempting to do this again, you were immediately shot by an incredulous German and spent the rest of the war recuperating at Selby Manor, part of which had been repurposed as a hospital.</li> <li>On your last day in hospital, you left your bed to explore. In an attic room, you came across a photograph of an old coin. As you peered at the image, eventually you blinked – and the coin was gone! <i>Only later did you feel the weight in your pocket…</i></li> </ul> <h3 id="goals-5">Goals</h3> <ul> <li>Always carry a pepper grinder on your person, and place it in front of you when seated</li> <li>Do not allow yourself to be photographed, lest you be trapped within…</li> <li>Return the coin to the photograph from whence it came</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-heiress">The Heiress</h2> <h3 id="who-you-are-6">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>You are the Viscountess Halesmount.</li> <li>Your wealthy parents died in a tragic accident when their canal boat collided with a bridge at 2mph and subsequently exploded, like in the movies. Your childhood interest in explosives and absence at the scene were not deemed to be suspicious at the time.</li> <li>Your inheritance has left you independently wealthy. You used your society connections to secure a tour of the Selby Armaments Factory firing range, <i>where you happened across a curious gold coin in a bomb crater.</i> You have kept it with you ever since.</li> <li>Since that time, <b>electrical appliances have behaved strangely around you.</b> You are now careful to have your servants turn the lights on and off for you, in case of incidents.</li> </ul> <h3 id="goals-6">Goals</h3> <ul> <li>You must not operate any electrical device, whether this be a light switch or the kettle. You mustn’t explain why.</li> <li>Find out why you have become cursed</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-ornithologist">The Ornithologist</h2> <h3 id="who-you-are-7">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>An esteemed ornithologist, a renowned authority on birds</li> <li>Your London townhouse is bursting at the seams with your collection of taxidermied birds. You aim to collect one of every bird. </li> <li>Having collected nearly every mundane bird known to man, your attention has turned to the esoteric. You were struck by a paper published by the ARCHEOLOGIST after the discovery of the Selby Hoard on the subject of certain pictograms found in the Selby Barrow, depicting all sorts of fantastical birds.</li> <li>Some time after this, the hoard vanished. Nevertheless, you surreptitiously arranged to visit the barrow when Count Selby was away on business. Whilst the pictograms of the barrow were indeed fantastical, there was nothing to link them to anything you could have shot and stuffed. <b>But as you left the barrow, you were menaced by a murder of crows.</b> Staggering back under the onslaught, you tripped and fell back inside the barrow. Your questing fingers closed around something cold and metallic. Instantly, the angry birds departed. You put the gold coin into your pocket.</li> <li>One face of the coin <b>depicts the ‘blood eagle’ ritual method of execution,</b> otherwise appearing only twice in Norse literature. <b>You have become more and more convinced, in the years since, that, rather than an unspeakable torture, these examples actually refer to a rare type of bird</b> with an unusual habit of predation on human beings. You occasionally sneak back to the barrow to try to find it…</li> </ul> <h3 id="goals-7">Goals</h3> <ul> <li>The GAMEKEEPER’s bird is an interesting specimen and would look very handsome in your collection of stuffed birds</li> <li>Find evidence of the BLOOD EAGLE</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-gamekeeper">The Gamekeeper</h2> <h3 id="who-you-are-8">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>You are the gamekeeper on the Selby estate. You never saw much of the man himself, but you know the 300 acres like the back of your hand.</li> <li>Whilst secretly poaching game on the Selby estate four years ago, you stumbled across a gold coin in the mud. You picked it up, and kept it for yourself.</li> <li>Since this time, game animals have been nowhere to be found as you walked the woods of the estate. They have developed an uncanny ability to avoid you. The exception to this is your pet bird, SPECKLED JIM, who came to your window one day and who seems fascinated by the coin.</li> <li>SPECKLED JIM tells you that the coin is yours and you should protect it. You trust SPECKLED JIM. But the others won’t understand if you tell them about his words.</li> </ul> <h3 id="goals-8">Goals</h3> <ul> <li>You will be given a BIRD. Protect it with your life.</li> <li>Beware the ORNITHOLOGIST. Protect your bird from her.</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-commodore">The Commodore</h2> <h3 id="who-you-are-9">Who you are</h3> <ul> <li>NAME: Cdre. REDACTED Robinson</li> <li>You, Commodore Robinson, served in the Great War as part of Britain’s Grand Fleet, participating in the Battle of Jutland in the North Sea aboard HMS Agincourt. The ship sustained no damage and was recently put into reserve, but you affect a limp and talk about ‘the old war wound’ nonetheless – you find it easier to explain than the real reason for your early retirement…</li> <li>A keen rambler, whilst on holiday in 1913 visiting relatives in Yorkshire, <b>you stumbled upon the Selby Hoard before its official discovery.</b> You felt it best that the find should remain where it belonged, in the ground, but you could not resist the urge to take a <i>single coin</i> for yourself…</li> <li>Departing Scapa Flow on 30th May 1916, gripping your lucky coin, you were seized by an ill feeling that intensified as you headed into the North Sea. On the afternoon of the 31st of May, the ship became embroiled in a <b>thick bank of fog.</b> On deck, at the edges of your vision, you caught glimpses of figures rowing wooden boats back towards England – yet when you looked directly, there was nothing there. Just as they appeared to be gone, <i>you turned around and came face to face with an apparition who attempted to seize your coin!</i> Falling backwards to the deck, you let out a scream, only to emerge from the fog into the guns of the High Seas Fleet…</li> <li>Since that time, <b>you have avoided water-based travel in all its forms,</b> which has somewhat hampered your naval career</li> </ul> <h3 id="goals-9">Goals</h3> <ul> <li>Affect a limp the entire time. Do not allow your leg to be inspected, as there is nothing really wrong with it.</li> <li>You must avoid conversations about swimming</li> <li>Find out why the coin has so afflicted you</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-paleographer">The Paleographer</h2> <h3 id="who-you-are-10">Who you are</h3> <ul> <li>NAME: Ms. REDACTED Rosetta</li> <li><b>A self-taught linguistic expert of extraordinary talent,</b> you made a name for yourself as part of Lord Carnarvon’s excavations in Deir el-Bahri, successfully translating a number of hieroglyphic passages which had perplexed your peers.</li> <li><b>When the Selby Barrow was discovered, you were part of the investigation</b> along with the ARCHAEOLOGIST. You became fascinated with a curious inscription with which each of the coins in the hoard had seemingly been defaced – letters in a script resembling Old Norse, but which made no sense. You secretly kept a coin for yourself, to study.</li> <li>In the years since, <b>you have made no progress in translating the letters,</b> which appear never to be the same on re-inspection. You have become convinced that this is evidence of the <i>profane nature of the act of writing itself</i> – and you now refuse to put pen to paper, publishing work only via dictation.</li> </ul> <h3 id="goals-10">Goals</h3> <ul> <li>You may not engage in the act of writing</li> <li>Discover the true nature of the cursed script</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-botanist">The Botanist</h2> <h3 id="who-you-are-11">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li><b>A talented amateur botanist and all-round nature lover,</b> you, Lady Moffatt, first gained <b>notoriety</b> when you <b>launched a prison break to free Robert, an American Black Bear</b> being held in captivity in the bearpit of the Sheffield Botanical Gardens. Rumour has it that Robert is now living peacefully in the extensive parkland of your Sheffield estate, Wentworth Woodhouse.</li> <li>Having heard rumours of a rare species of plant that grows only on an overgrown barrow somewhere on the Selby estate, you mounted a stealthy expedition in the summer of 1913. Securing an invitation to the Manor, you absconded to the grounds after dinner, walking deep into the woods. You <i>did not</i> find the Selby Barrow, but, close to turning back in frustration, you did catch the <i>glint of gold</i> near the base of a tree. <b>You pocketed the coin.</b></li> <li>Since this day, you have noticed that the plants of the world have become quite talkative; you don’t know how you could have missed it before. You are sure that those special plants at the barrow would have something remarkable to say…</li> </ul> <h3 id="goals-11">Goals</h3> <ul> <li>The GAMEKEEPER’s bird SPECKLED JIM yearns for freedom! Liberate him!</li> <li>Learn more about the plants of the estate</li> <li>Whenever you meet a plant, <i>you must talk to it</i></li> </ul> </div> <hr/> <div class="character"> <h2 id="the-constable">The Constable</h2> <h3 id="who-you-are-12">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>You, the local policeman, joined the war effort in 1914. In 1917 <b>you took a shrapnel wound to the head, and pieces of metal remain lodged to this day in your brain</b> – the doctors advised you that any sudden movements or even a profound psychological shock could result in a <i>‘cataclysmic neurological event’.</i></li> <li>You ran the original investigation into the disappearance of the Selby Hoard. <i>You suspected the ARCHAEOLOGIST the entire time,</i> but never found enough evidence to make a conviction stick. At the time, you <b>impounded the single remaining coin as evidence.</b> Somehow, you neglected to return it, and kept it in your pocket after clearing out the evidence room one day.</li> <li>The coin accompanied you to the trenches. On the day you were wounded, the bullet deflected from the coin in your breast pocket and hit you square in the head. Ever since, when the coin and your <b>government-issued cranium</b> come close together, they begin to vibrate in unison. You think this gives you valuable insights.</li> <li>You are sure there should be more evidence at Selby Manor, and you are <i>buzzing</i> to find it with your newfound powers.</li> </ul> <h3 id="goals-12">Goals</h3> <ul> <li>Gather enough evidence to convict the ARCHAEOLOGIST <i>(you know it was her what done it, see.)</i></li> <li>Make a note of any criminality that you observe</li> <li>When stuck, try holding your coin to your head and going ‘bzzzzzz’</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-clairvoyant">The Clairvoyant</h2> <h3 id="who-you-are-13">Who you are</h3> <ul> <li>NAME: Mystic Maggie</li> <li>The greatest clairvoyant of her age, she regurgitates ectoplasm in particularly challenging séances. With the help of her spirit guide, Patricia, Maggie has comforted many a grieving war widow and mother in the wake of the Great War. </li> <li>You were in your fortune teller’s tent at a public fete on the grounds of Selby Manor when a mysterious stranger entered. You recall nothing of their appearance; the one thing you do remember is that they paid you for a palm reading with a <i>large gold coin,</i> which you have kept to this day.</li> <li>When you hold the coin, you feel a greater connection to the spirit world. Sometimes you can almost see Patricia at the edge of your vision. <i>But are the living starting to fade away, or is your mind merely playing tricks on you?</i></li> </ul> <h3 id="goals-13">Goals</h3> <ul> <li>Give tarot card readings to 3 other guests</li> <li>Speak to Patricia in the manner of Derek Acorah talking to Sam</li> <li>Find out more about the mysterious coin</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-photographer">The Photographer</h2> <h3 id="who-you-are-14">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>You worked for the family portraiture business, CEFW Portraiture Parlour, before volunteering as an auxiliary nurse in 1914. Armed with your trusty Vest Pocket Kodak, you saw action in Salonika, treating men injured whilst fighting the Bulgarian Army on the Macedonian front in the battles of Horseshoe Hill, and at Doiran in 1917, documenting the experience on camera.</li> <li>Before the war, you visited a public fete on the grounds of Selby Manor. On display is a glass case containing samples of gold coins from the newly discovered Selby Hoard. You snapped a picture of one of them. In the darkroom a few days later, on your lunch break, you developed your personal photographs from the trip. <b>The coin had vanished from the image.</b> <i>It was not until later that you found it had turned up in your pocket…</i></li> </ul> <h3 id="goals-14">Goals</h3> <ul> <li>The SOLDIER has an interesting face. Take a photograph of the SOLDIER.</li> <li>Learn more about the mysterious coins</li> </ul> <hr/> </div> <div class="character"> <h2 id="the-brewer">The Brewer</h2> <h3 id="who-you-are-15">Who you are</h3> <ul> <li>NAME: REDACTED</li> <li>You led a quiet life tending to your allotment, in the hopes of cultivating the perfect hop for beer brewing. But after a mishap with an overly-energetic still you were never quite the same, and your crop-splicing drew the attention of the Authorities. When War broke out, you were spirited away to a covert government establishment somewhere in West Yorkshire, where <i>strange experiments were underway in a bid to win the War by whatever means necessary…</i></li> <li>You are haunted by the memories of your unholy creations, brought to life by you and the other boffins at <b>PROJECT T.R.I.F.F.I.D.</b> When the sight of these nightmare creatures became too much, you burned the greenhouses to the ground, resulting in your being sent to convalesce at the nearby military hospital at Selby Manor. But even at the manor, you weren’t safe from the vegetable menace; you set about razing the greenhouses there too. In the ashes, you noticed a single gold coin, which you managed to keep hold of even after being thrown out of the hospital.</li> <li>Since taking up the coin, your nightmares of hostile plantlife have only worsened. You have become convinced that the TRIFFID command centre is somewhere on the manor grounds.</li> </ul> <h3 id="goals-15">Goals</h3> <ul> <li>Have 6 other guests try your homebrew</li> <li>Be alert for people talking to plants – those plants could be TRIFFIDS.</li> <li>Find out what is going on at the manor</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-nurse">The Nurse</h2> <h3 id="who-you-are-16">Who you are</h3> <ul> <li>NAME: Nurse Beaudouin</li> <li>You, Nurse Beaudouin, served as a volunteer nurse at Selby Manor military hospital during the war.</li> <li>When you arrived, the other nurses warned you to stay out of the dark and dusty corridors at night. Yet the house seemed perfectly ordinary; the most unnatural occurrence being the snoring of Nurse Beatrice…</li> <li>One night, you and your colleagues stayed up late drinking <b>absinthe</b> smuggled in from France by one of the wounded soldiers in your care. Nurse Beatrice, ever the butt of the joke, was dared to venture into the abandoned wine cellars of the manor alone and bring back a bottle. When she did not return, concerned, you went after her. <b>The unspeakable horror you witnessed in the cellar left an indelible mark on your psyche.</b></li> <li><b>You have no recollection of subsequent events yourself,</b> but you are told by the other nurses that <i>you ran screaming from the cellar and raised the alarm.</i> Yet when you returned to the cellar with the police, <i>it was as if nothing had happened.</i> <b>Nurse Beatrice was never seen again,</b> and was assumed to have absconded. What you saw was put down to the influence of the ‘green fairy’ – <i>there is no way that so much blood could have left no trace…</i></li> <li>Later, you found in your pocket a <i>bloodstained gold coin.</i> You have never told anyone of this. <i>When you hold it to your ear it whispers faintly of ‘the blood eagle…’</i></li> </ul> <h3 id="goals-16">Goals</h3> <ul> <li>Bandage the Commodore’s leg</li> <li>Find out what really happened to Nurse Beatrice</li> </ul> </div> <hr/> <div class="character"> <h2 id="the-art-historian">The Art Historian</h2> <h3 id="who-you-are-17">Who you are</h3> <ul> <li>You are an Art Historian who specialises in paintings</li> <li>You came to the manor to establish the provenance of </li> <li>Found out it was a forgery</li> <li>Paid off with a gold coin. But who knows how to cash in a gold coin. Kept in desk drawer in office.</li> <li>Over the years since, you have suffered from memory loss. The one thing that is always clear is the moment you picked up the coin.</li> </ul> <h3 id="goals-17">Goals</h3> <ul> <li>Give at least 5 business cards out to people so that they remember you</li> </ul> </div> <hr/> <h1 id="errata">Errata</h1> <p>Things that aren't quite right.</p> <h2 id="characters-1">Characters</h2> <p>Characters and clues have been anonymised, so things might look or sound a bit weird.</p> <h2 id="source-images">Source images</h2> <p>I need to go through and check I can actually use various source images, and change things where not.</p> <h2 id="crossword">Crossword</h2> <p>The crossword ended up in a scrambled order. The correct order is (now) annotated on the clue.</p> <h2 id="cipher-puzzle">Cipher Puzzle</h2> <p>The final cipher puzzle proved to be possible, but too intricate for the party setting. It should be simplified to reduce the number of arithmetic operations you need to get right.</p> <p>The source code of the script I used to implement it is here:</p> <pre data-lang="Python" style="background-color:#2b303b;color:#c0c5ce;" class="language-Python "><code class="language-Python" data-lang="Python"><span>letters = [</span><span style="color:#96b5b4;">chr</span><span>(</span><span style="color:#96b5b4;">ord</span><span>(&#39;</span><span style="color:#a3be8c;">a</span><span>&#39;) + i) </span><span style="color:#b48ead;">for </span><span>i </span><span style="color:#b48ead;">in </span><span style="color:#96b5b4;">range</span><span>(</span><span style="color:#d08770;">26</span><span>)] </span><span>numbers = [</span><span style="color:#96b5b4;">chr</span><span>(</span><span style="color:#96b5b4;">ord</span><span>(&#39;</span><span style="color:#a3be8c;">0</span><span>&#39;) + i) </span><span style="color:#b48ead;">for </span><span>i </span><span style="color:#b48ead;">in </span><span style="color:#96b5b4;">range</span><span>(</span><span style="color:#d08770;">10</span><span>)] </span><span>punctuation = [&quot; &quot;, &quot;</span><span style="color:#a3be8c;">,</span><span>&quot;, &quot;</span><span style="color:#a3be8c;">.</span><span>&quot;, &quot;</span><span style="color:#a3be8c;">&#39;</span><span>&quot;, &quot;</span><span style="color:#96b5b4;">\&quot;</span><span>&quot;] </span><span>characters = letters + numbers + punctuation </span><span>mapping = {c:i </span><span style="color:#b48ead;">for </span><span>i, c </span><span style="color:#b48ead;">in </span><span style="color:#96b5b4;">enumerate</span><span>(characters)} </span><span>nchar = </span><span style="color:#96b5b4;">len</span><span>(characters) </span><span> </span><span style="color:#b48ead;">def </span><span style="color:#8fa1b3;">l2n</span><span>(</span><span style="color:#bf616a;">l</span><span>): </span><span style="color:#b48ead;">return </span><span>mapping[l] </span><span style="color:#b48ead;">def </span><span style="color:#8fa1b3;">n2l</span><span>(</span><span style="color:#bf616a;">n</span><span>): </span><span style="color:#b48ead;">return </span><span>characters[n] </span><span> </span><span style="color:#b48ead;">def </span><span style="color:#8fa1b3;">offset</span><span>(</span><span style="color:#bf616a;">secret</span><span>, </span><span style="color:#bf616a;">i</span><span>): </span><span> </span><span style="color:#b48ead;">return </span><span>(</span><span style="color:#bf616a;">l2n</span><span>(secret[i % </span><span style="color:#96b5b4;">len</span><span>(secret)]) % (nchar - </span><span style="color:#d08770;">7</span><span>)) + </span><span style="color:#d08770;">3 </span><span> </span><span style="color:#b48ead;">def </span><span style="color:#8fa1b3;">rot</span><span>(</span><span style="color:#bf616a;">text</span><span>, </span><span style="color:#bf616a;">secret</span><span>): </span><span> chars = [</span><span style="color:#bf616a;">n2l</span><span>((</span><span style="color:#bf616a;">l2n</span><span>(c) + </span><span style="color:#bf616a;">offset</span><span>(secret, i)) % nchar) </span><span style="color:#b48ead;">for </span><span>i, c </span><span style="color:#b48ead;">in </span><span style="color:#96b5b4;">enumerate</span><span>(text)] </span><span> mapped = &quot;&quot;.</span><span style="color:#bf616a;">join</span><span>(chars) </span><span> </span><span style="color:#b48ead;">return </span><span>mapped </span><span> </span><span style="color:#b48ead;">def </span><span style="color:#8fa1b3;">unrot</span><span>(</span><span style="color:#bf616a;">text</span><span>, </span><span style="color:#bf616a;">secret</span><span>): </span><span> chars = [</span><span style="color:#bf616a;">n2l</span><span>((</span><span style="color:#bf616a;">l2n</span><span>(c) + (nchar - </span><span style="color:#bf616a;">offset</span><span>(secret, i))) % nchar) </span><span style="color:#b48ead;">for </span><span>i, c </span><span style="color:#b48ead;">in </span><span style="color:#96b5b4;">enumerate</span><span>(text)] </span><span> mapped = &quot;&quot;.</span><span style="color:#bf616a;">join</span><span>(chars) </span><span> </span><span style="color:#b48ead;">return </span><span>mapped </span><span> </span><span style="color:#65737e;">#secret = &quot;f22&quot; </span><span>secret = &quot;</span><span style="color:#a3be8c;">deadbeef</span><span>&quot; </span><span style="color:#96b5b4;">print</span><span>() </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">********</span><span>&quot;) </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">TABLE</span><span>&quot;) </span><span style="color:#b48ead;">for </span><span>c </span><span style="color:#b48ead;">in </span><span>characters: </span><span> </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#d08770;">%s</span><span style="color:#a3be8c;">:</span><span>&quot; % c, </span><span style="color:#bf616a;">l2n</span><span>(c)) </span><span style="color:#96b5b4;">print</span><span>() </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">********</span><span>&quot;) </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">SECRET=</span><span>&quot;, secret) </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">DIGEST=</span><span>&quot;, &quot;&quot;.</span><span style="color:#bf616a;">join</span><span>([</span><span style="color:#bf616a;">str</span><span>(</span><span style="color:#bf616a;">offset</span><span>(secret, i)) </span><span style="color:#b48ead;">for </span><span>i </span><span style="color:#b48ead;">in </span><span style="color:#96b5b4;">range</span><span>(</span><span style="color:#96b5b4;">len</span><span>(secret))])) </span><span style="color:#96b5b4;">print</span><span>() </span><span> </span><span>val = </span><span style="color:#bf616a;">rot</span><span>(&quot;</span><span style="color:#a3be8c;">the code is 9234</span><span>&quot;, secret) </span><span style="color:#65737e;">#val = rot(&quot;hello world&quot;, secret) </span><span style="color:#65737e;">#val = rot(&quot;yes&quot;, secret) </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">encoded</span><span>&quot;, val) </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">decoded</span><span>&quot;, </span><span style="color:#bf616a;">unrot</span><span>(val, secret)) </span><span style="color:#96b5b4;">print</span><span>(&quot;</span><span style="color:#a3be8c;">with bad key &#39;foobar&#39;:</span><span>&quot;, </span><span style="color:#bf616a;">unrot</span><span>(val, &quot;</span><span style="color:#a3be8c;">foobar</span><span>&quot;)) </span></code></pre> <p>This is based on the 'rot13' or <a href="https://en.wikipedia.org/wiki/Caesar_cipher">Caesar cipher</a>, modified such that the value of the rotation for each letter is determined by the corresponding letter in a secret key at the same index.</p> <p>One problem with this is that only programmers know about the modulus operator, other people aren't used to thinking in this way.</p> <p>I think a good simplification would be to remove the <code>-7</code> and <code>+3</code> from <code>offset()</code>. These were indended to avoid the offset being too small. But I don't think that's really important since the secret key is chosen ahead of time. They aren't really adding anything, and contribute to a lot of error-prone arithmetic.</p> <h2 id="missing-clues">Missing clues</h2> <p>Some character sheets hint at clues that don't exist. I ran out of time to make them.</p> <h2 id="clue-formatting">Clue formatting</h2> <p>Clues are currently jpegs as this was quickest; clue text should be transcribed and formatted properly.</p> <hr/> <h1 id="unused-ideas">Unused Ideas</h1> <p>Some things I thought of doing, but did not have time for or couldn't quite figure out.</p> <ul> <li>During the 'murder in the dark' section, whilst the murders are happening, play a <a href="https://youtu.be/Av1_AE--4Xw?feature=shared&amp;t=58">suitably</a> <a href="https://youtu.be/19XuxziBaH4?feature=shared&amp;t=158">ominous</a> <a href="https://www.youtube.com/watch?v=4KeuUyzEi1c">snippet</a> of <a href="https://youtu.be/PhXQEUEFAx0?feature=shared&amp;t=87">music</a>.</li> <li>Use remote control lights for flashes of lightning</li> <li>Use a short throw projector to establish atmosphere, project images of the house, fireplace etc.</li> <li>Use a portable record player as a 'gramophone' and pretend to play a recorded message on it.</li> <li>'Sanity' or 'horror' system whereby certain clues become accessible to you after you have sustained sufficient 'psychic damage'</li> <li>Scatter speakers throughout the house with spooky sound effects. Use them for a jump scare.</li> <li>Have a room in complete darkness with unsettling sounds, a torch and battery can be found somewhere.</li> </ul> Nicer water and biomes 2023-09-21T00:00:00+00:00 2023-09-21T00:00:00+00:00 https://nathanrw.dev/posts/20230921-nicer-water-and-biomes/ <p>I've played around a bit with how rivers and the sea are drawn, as well as with the assignment of biomes to tiles based on moisture and temperature. It's looking quite nice now.</p> <p>Rivers have flow direction. I pass this to the shader as vertex attribute. I then sample Perlin noise in the fragment shader offset along this direction to make the water appear to flow. I also darken the river towards the centre to give the illusion of deeper water. I find it looks very pleasing.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/qcwl4bF31RE?si=ga_1U3t18lSkDjt1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <h2 id="shader-tweaker">Shader Tweaker</h2> <p>You can also see the little shader parameter tweaker I made to help tune the ocean rendering. MonoGame exposes shader uniforms, so I can simply query what is there and if the types match something I know how to edit, I can display an edit field to tweak them. I have a simple scene graph where the geometry to be rendered with a shader lives under a node with a reference to that shader, so the tweaking fields are shown in the scene graph debug viewer.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/6tLu0XMCdrc?si=F381518U5HPeXAya" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> Better hydrology 2023-09-21T00:00:00+00:00 2023-09-21T00:00:00+00:00 https://nathanrw.dev/posts/20230924-better-hydrology/ <p>Thinking about improvements to hydrology.</p> <p>Rainfall per-tile should be measured in mm.</p> <p>Multiply by area to get volume of water. Measure this in m<sup>3</sup>.</p> <p>This is river flow at that tile, unless tile is a water tile.</p> <p>How much moisture evaporates from an ocean tile? How much atmospheric moisture falls as rain?</p> <p>Quite hard to find data for this.</p> <p>A couple of approachs at redblob. One just uses distance from water to determine moisture. The other simulates the water cycle.</p> <p>Approach 1:</p> <ul> <li>https://simblob.blogspot.com/2010/09/polygon-map-generation-part-2.html</li> </ul> <p>Approach 2:</p> <ul> <li>https://simblob.blogspot.com/2018/09/mapgen4-rainfall.html</li> </ul> <p>My approach was based on approach 2. But I don't do any sorting, I traverse the board following the wind direction. I didn't really follow the precipitation rules to the letter either. Simply making my approach line up more with the approach given there would probably improve my results a bit.</p> <p>To be honest though what I have right now looks OK. The main worry is about physical units, and about how i'm conflating rainfall and river flow in terms of moisture at a tile.</p> <p>In terms of physical units, I can probably stick with some variation of the current approach, but convert to physical units where appropriate.</p> Contingency 2023-09-15T00:00:00+00:00 2023-09-15T00:00:00+00:00 https://nathanrw.dev/posts/20230915-contingency/ <p>Things are what they are, but they don't have to be. </p> <p>Provision for future eventualities. The absence of certainty.</p> <p>I've been working on a simulation project in my spare time that I've called 'contingency'. It's early days, and progress is fairly slow. But it's reached a stage now where I feel I have something to post about. This post will be a bit of a 'brain dump' of the current state of things, and then I might make further posts on interesting problems I have encountered.</p> <h2 id="summary">Summary</h2> <p><a href="./images/screen3.jpg"><img src="https://nathanrw.dev/posts/20230915-contingency/./images/screen3.jpg" alt="rivers" /></a></p> <p>Contingency is a map-based game about running an economy, which you will watch develop over time. The current plan is for the game to play out in real-time, like a <a href="https://en.wikipedia.org/wiki/Paradox_Interactive">Paradox</a> game, because the game should be a little like a train set - you should be able to watch things tick along pleasantly, with people going about their business in various ways. I am hedging my bets a little though. My thinking is that I can code everything around real time increments and physical units, and should I wish to go with a turn-based approach I could make ‘end turn’ run the simulation for a certain length of time. The sorts of decisions you need to make in the game should not take effect immediately anyway.</p> <h2 id="points-of-interest">Points of interest</h2> <p>In no particular order.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/Y_lYy0olepk?si=HoxmbyqvFO3qZXJt" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <h3 id="terrain-generation">Terrain generation</h3> <p>Approach is based on the excellent <a href="https://www.redblobgames.com/x/2022-voronoi-maps-tutorial/">voronoi maps</a> page at Red Blob Games. I intend to revisit it at some point.</p> <h3 id="hydrology">Hydrology</h3> <p>Rainfall is calculated per-tile and based on this rivers flow downhill. The biggest rivers get drawn.</p> <h3 id="map-representation">Map representation</h3> <p>The map topology is represented as a graph. Arbitrary topologies are supported: square tiles, hexagonal tiles, or polygonal tiles (as pictured.) I'll probably use the hexes for something one day, but for this project the voronoi polygons seem to give the most pleasing results.</p> <h3 id="land-distribution">Land distribution</h3> <p><a href="./images/screen4.png"><img src="https://nathanrw.dev/posts/20230915-contingency/./images/screen4.png" alt="land distribution" /></a></p> <p>Land on a tile is subdivided into categories and is measured in square kilometers. Certain kinds of feature can 'use' land. Entities at a tile with the LandUse component consume land. Farms use land, and so do Forests. Tile drawing reflects the land use distribution.</p> <h3 id="name-generation">Name generation</h3> <p>Place, river and person names are generated using a simple Markov Chain word generator. The generator is fed a corpus of British place names (and river names, and person names) and spits out (for the most part) uncannily plausible sounding made-up names. To be honest it could be replaced with a simple list of names, but this is more fun.</p> <h3 id="data-model">Data model</h3> <p>Everything lives in <a href="https://github.com/genaray/Arch">Arch ECS</a>. It's in early development but is very simple and fast, and the author is very helpful and friendly. Other such libraries were either not simple (Svelto) or not fast (Entitas.)</p> <h3 id="ui-library">UI library</h3> <p>The UI is implemented using <a href="https://github.com/ocornut/imgui">Dear ImGUI</a>, the Only Good UI library.</p> <p>One day when there is a playable game, I might replace this with a more 'aesthetic' interface, but for now this is perfect as it's easy to work with.</p> <h3 id="social-simulation">Social simulation</h3> <p>As well as the coarse-grained economic simulation, I have a fine-grained 'sample' set of individual people. The idea is that eventually the economic simulation will cause things to happen to them.</p> <h3 id="map-drawing">Map drawing</h3> <p>Most work is done in the shader. The same simple mesh (which uses a vertex attribute to associate vertices with tile ids) can be drawn in various ways.</p> <p>MonoGame doesn't support passing an arbitrary buffer as input to a shader, so I encode various tile data as textures and decode that in the fragment shader. It wouldn't surprise me if this was less efficient than just generating a bigger mesh on the CPU, but it's certainly fun. I haven't tried to optimise the shader; the slow thing at the moment is actually calculating the land use to pass to the shader.</p> <p>Based on a per-tile land-use vector, the shader splits each tile into a number of subtiles proportional to the land-use breakdown specified by the vector.</p> <pre data-lang="c" style="background-color:#2b303b;color:#c0c5ce;" class="language-c "><code class="language-c" data-lang="c"><span style="color:#65737e;">/// @brief A shader that assigns colour based on terrain texture. </span><span>float4 </span><span style="color:#8fa1b3;">TileTerrainTextureWithLandUsePS</span><span>(VertexShaderOutput </span><span style="color:#bf616a;">input</span><span>) : COLOR </span><span>{ </span><span> </span><span style="color:#b48ead;">int</span><span> TileIndex = </span><span style="color:#b48ead;">int</span><span>(input.</span><span style="color:#bf616a;">TileId</span><span>); </span><span> </span><span style="color:#b48ead;">float</span><span> TileValue = </span><span style="color:#bf616a;">ReadBufferValue</span><span>( </span><span> TileValuesSampler, TileIndex, TileValuesWidth).</span><span style="color:#bf616a;">r</span><span>; </span><span> </span><span style="color:#b48ead;">float</span><span> TileElevation = </span><span style="color:#bf616a;">ReadBufferValue</span><span>( </span><span> TileElevationsSampler, TileIndex, TileValuesWidth).</span><span style="color:#bf616a;">r</span><span>; </span><span> </span><span style="color:#b48ead;">int</span><span> TileTerrainIndex = </span><span style="color:#bf616a;">ReadBufferValueAsInt</span><span>( </span><span> TileTerrainsSampler, TileIndex, TileValuesWidth); </span><span> </span><span> </span><span style="color:#65737e;">// Read land type proportions. </span><span> </span><span style="color:#b48ead;">float</span><span> proportionForest = </span><span> </span><span style="color:#bf616a;">ReadLandUseValue</span><span>(TileIndex, LAND_USE_FOREST); </span><span> </span><span style="color:#b48ead;">float</span><span> proportionHabitation = </span><span> </span><span style="color:#bf616a;">ReadLandUseValue</span><span>(TileIndex, LAND_USE_HABITATION); </span><span> </span><span style="color:#b48ead;">float</span><span> proportionFarm = </span><span> </span><span style="color:#bf616a;">ReadLandUseValue</span><span>(TileIndex, LAND_USE_FARM); </span><span> </span><span style="color:#b48ead;">float</span><span> proportionBare = </span><span> </span><span style="color:#bf616a;">ReadLandUseValue</span><span>(TileIndex, LAND_USE_BARE); </span><span> </span><span style="color:#b48ead;">float</span><span> proportionMountain = </span><span> </span><span style="color:#bf616a;">ReadLandUseValue</span><span>(TileIndex, LAND_USE_MOUNTAIN); </span><span> </span><span> </span><span style="color:#65737e;">// Calculate thresholds. </span><span> </span><span style="color:#b48ead;">float</span><span> maxForest = proportionForest; </span><span> </span><span style="color:#b48ead;">float</span><span> maxHabitation = maxForest + proportionHabitation; </span><span> </span><span style="color:#b48ead;">float</span><span> maxFarm = maxHabitation + proportionFarm; </span><span> </span><span style="color:#b48ead;">float</span><span> maxBare = maxFarm + proportionBare; </span><span> </span><span style="color:#b48ead;">float</span><span> maxMountain = maxBare + proportionMountain; </span><span> </span><span> </span><span style="color:#65737e;">// UV should be roughly in interval 0..1. So map to subtile like </span><span> </span><span style="color:#65737e;">// so </span><span> </span><span style="color:#b48ead;">int</span><span> uSubdivs = </span><span style="color:#d08770;">3</span><span>; </span><span> </span><span style="color:#b48ead;">int</span><span> uvX = </span><span style="color:#b48ead;">int</span><span>(</span><span style="color:#bf616a;">frac</span><span>(input.</span><span style="color:#bf616a;">UV</span><span>.</span><span style="color:#bf616a;">x</span><span>) * </span><span style="color:#b48ead;">float</span><span>(uSubdivs)); </span><span> </span><span style="color:#b48ead;">int</span><span> uvY = </span><span style="color:#b48ead;">int</span><span>(</span><span style="color:#bf616a;">frac</span><span>(input.</span><span style="color:#bf616a;">UV</span><span>.</span><span style="color:#bf616a;">y</span><span>) * </span><span style="color:#b48ead;">float</span><span>(uSubdivs)); </span><span> </span><span style="color:#b48ead;">int</span><span> uvIndex = uvY * uSubdivs + uvX; </span><span> </span><span> </span><span style="color:#65737e;">// Now, based on the land distribution, assign a land use to the </span><span> </span><span style="color:#65737e;">// subtile. </span><span> </span><span style="color:#b48ead;">int</span><span> textureIndex = TerrainTextures[TileTerrainIndex]; </span><span> </span><span style="color:#b48ead;">float</span><span> uvDistance = </span><span style="color:#b48ead;">float</span><span>(uvIndex) / </span><span style="color:#b48ead;">float</span><span>(uSubdivs * uSubdivs); </span><span> </span><span style="color:#b48ead;">if </span><span>(uvDistance &lt; maxForest) { </span><span> textureIndex = LandUseTextures[LAND_USE_FOREST]; </span><span> } </span><span style="color:#b48ead;">else if </span><span>(uvDistance &lt; maxHabitation) { </span><span> textureIndex = LandUseTextures[LAND_USE_HABITATION]; </span><span> } </span><span style="color:#b48ead;">else if </span><span>(uvDistance &lt; maxFarm) { </span><span> textureIndex = LandUseTextures[LAND_USE_FARM]; </span><span> } </span><span style="color:#b48ead;">else if </span><span>(uvDistance &lt; maxBare) { </span><span> </span><span style="color:#65737e;">// Use terrain. </span><span> } </span><span style="color:#b48ead;">else if </span><span>(uvDistance &lt; maxMountain) { </span><span> textureIndex = LandUseTextures[LAND_USE_MOUNTAIN]; </span><span> } </span><span> </span><span> </span><span style="color:#65737e;">// Now sample the appropriate terrain texture. </span><span> float2 xy = input.</span><span style="color:#bf616a;">WorldXY</span><span>; </span><span> float4 TileTerrainColour = </span><span style="color:#bf616a;">SampleTextureAtlas</span><span>( </span><span> TerrainTextureAtlasSampler, </span><span> TerrainTextureAtlasWidth, </span><span> TerrainTextureAtlasTextureWidth, </span><span> textureIndex, </span><span> xy * TerrainTextureScale); </span><span> </span><span style="color:#b48ead;">float</span><span> elevationFactor = </span><span style="color:#d08770;">0.4</span><span>; </span><span> float3 baseColour = TileTerrainColour.</span><span style="color:#bf616a;">xyz</span><span>; </span><span> </span><span style="color:#b48ead;">return </span><span style="color:#bf616a;">float4</span><span>(baseColour * (</span><span style="color:#d08770;">1 </span><span>- elevationFactor) + </span><span> baseColour * TileElevation * elevationFactor, </span><span> </span><span style="color:#d08770;">1</span><span>); </span><span>} </span></code></pre> <h2 id="what-took-all-this-time">What took all this time???</h2> <p>I started working on this some time in late 2021. Much of the early time was spent learning Unity whilst working on an initial prototype. Throughout 2022 I worked on this prototype off and on, whilst growing more frustrated with Unity -- why is serialization so hard? why is there no good user interface library? Why is it so hard to debug? The list of frustrations went on and on. As an attempt to alleviate the frustrations, I ended up writing a separate WPF frontend to the simulation (which I had deliberately structured to be ignoring of Unity) which was more pleasant to work with than Unity. But then I had the problem of maintaining two different clients, neither of which was ideal.</p> <p>By the end of 2022 I decided to bin Unity and use MonoGame -- more of a library than a game engine -- instead. The straw that broke the camel's back was attempting to use the Unity profiler, which used all of the memory on my machine. In a sense it's probably my own fault for attempting to use my 7 year old computer for development, but at the same time, man got to the moon with much less!</p> <p>Switching to MonoGame would allow me to combine the best of the Unity and WPF integrations into a single program and (eventually!) allow me to make progress faster. At the same time, I found that my simulation prototype needed some sort of structured data model. I had deliberately avoided Unity DOTS and GameObject as I did not want to couple my code to Unity (which is what made it relatively straightforward to 'port' it to MonoGame) and had followed the philosophy of 'just write some code', which worked well up to a point but became unwieldly with the introduction of more different kinds of entity, and as I attempted to make changes to the code. So I experimented with various 'entity component system' libraries and settled on the very pleasant Arch.</p> <p>Much of 2023 has been concerned with finishing the MonoGame port. Whilst it's more pleasant to work with (for me, as a programmer) than Unity, there are various things you simply have to implement yourself which came 'out of the box' with Unity, and that takes time. I've also been working on an adventure game, also using MonoGame, which I might post about at another point, and that took a few months of work.</p> <p>Finally, I got a bit bogged down thinking about how to represent land use, and users of land -- is a Farm an entity on a Tile, or is a component of a Tile? That kind of thing. I seem to have cracked that one recently though, so now (fingers crossed) it's time to make a bit more progress.</p> <h2 id="next-steps">Next steps?</h2> <ul> <li>Make rivers look nicer (perhaps animate them)</li> <li>Make water look nicer (perhaps animate it)</li> <li>Functioning economy <ul> <li>At the moment people simply consume food. Goal for the prototype has always been to get various commodities circulating in some sort of equilibrium.</li> </ul> </li> </ul> Ancient Dreams 2023-04-17T00:00:00+00:00 2023-04-17T00:00:00+00:00 https://nathanrw.dev/posts/20230417-ancient-dreams/ <p>published 1988</p> <p>verdict: an enjoyable slice of generic fantasy, some weirdness, nicely written, i will read the sequels</p> <p><img src="https://nathanrw.dev/posts/20230417-ancient-dreams/./images/ancient_dreams.jpg" alt="front cover" /></p> <ul> <li>there is quite a lot of surprisingly enjoyable writing, especially e.g. descriptions of wooden houses &amp; clockwork toys.</li> <li>compelling section in a boat along a haunted river, exploring ancient ruins, finding lost villages... and then hundreds of miles traversed 'off screen' because we need to finish the book &amp; we're back in the city of nonces</li> <li>(i will flesh this out!)</li> </ul> Lords of the Starship 2023-04-17T00:00:00+00:00 2023-04-17T00:00:00+00:00 https://nathanrw.dev/posts/20230417-lords-of-the-starship/ <p>published 1967</p> <p>verdict: very weird and good</p> <p><img src="https://nathanrw.dev/posts/20230417-lords-of-the-starship/./images/lords_of_the_starship.jpg" alt="front cover" /></p> <ul> <li>https://en.wikipedia.org/wiki/Lords_of_the_Starship</li> <li>he wrote this when he was 19</li> <li>(i will flesh this out!)</li> </ul> Medusas's Children 2023-04-17T00:00:00+00:00 2023-04-17T00:00:00+00:00 https://nathanrw.dev/posts/20230417-medusas-children/ <p>published 1977</p> <p>verdict: good!</p> <p><img src="https://nathanrw.dev/posts/20230417-medusas-children/./images/medusas_children.jpg" alt="front cover" /></p> <ul> <li>just what one is looking for in an old paperback scifi book.</li> <li>descendents of a ships crew are marooned in a sphere of water in space, eking out an existence in the extreme conditions.</li> <li>this happened because of global warming causing sea levels to rise. people used wormholes to suck the extra water into space. some people got sucked in by accident.</li> <li>I think the name refers to the raft of the medusa? Can't remember if this is mentioned in the text.</li> </ul> Mythago Wood 2023-04-17T00:00:00+00:00 2023-04-17T00:00:00+00:00 https://nathanrw.dev/posts/20230417-mythago-wood/ <p><img src="https://nathanrw.dev/posts/20230417-mythago-wood/./images/mythago_wood.jpg" alt="front cover" /></p> <ul> <li>This is a great book!</li> <li>(i will flesh this out!)</li> </ul> The Survivor 2023-04-17T00:00:00+00:00 2023-04-17T00:00:00+00:00 https://nathanrw.dev/posts/20230417-the-survivor/ <p>published 1976</p> <p>verdict: pretty good</p> <p><img src="https://nathanrw.dev/posts/20230417-the-survivor/./images/the_survivor.jpg" alt="front cover" /></p> <ul> <li> <p>A plane crashes into Eton and the Standard James Herbert Protagonist, who mysteriously survived the crash, must work out what happened and whether it was his fault.</p> </li> <li> <p>Some good horror set-pieces loosely threaded together. I read the book a few weeks ago and I can't remember why it was all happening. Something about industrial espionage and occultism. I do remember a section where it was deemed <em>impossible</em> to bring down a passenger jet these days without it being an inside job because of security being impenetrable, which was interesting to read in the post-9/11 world.</p> </li> </ul> The Spear 2023-04-12T00:00:00+00:00 2023-04-12T00:00:00+00:00 https://nathanrw.dev/posts/20230411-the-spear/ <p>published 1978</p> <p>£1.99, oxfam</p> <p>verdict: mostly good supernatural thriller but also very cursed</p> <p><img src="https://nathanrw.dev/posts/20230411-the-spear/./images/the_spear.jpg" alt="the spear front cover" /></p> <p>the good</p> <ul> <li>car chase where a mini is pursued by a chieftain tank possessed by the ghost of Heinrich Himmler</li> <li>final boss is zombie (you guessed it) Heinrich Himmler complete with little spectacles (they do fall off) aided and abetted by MI5 and elements of the US military</li> <li>zombie's head explodes when shot, both removing the head <em>and</em> destroying the brain as per the proper procedure</li> </ul> <p>the bad</p> <ul> <li>sustained and very nasty weapons-grade transphobia rears its head toward the end of the book (there's more to be said on violence and misogyny in this book but this particularly stuck out!)</li> <li>the villain has a prosthetic nose so you know he's evil</li> </ul> <p>the weird</p> <ul> <li>each chapter begins with an epigraph by Adolf Hitler, Heinrich Himmler, Richard Wagner or similar, weaving in the story of <a href="https://en.wikipedia.org/wiki/Parsifal">Parsifal</a> and the Nazis appreciation of it.</li> <li>elements of the deep state in thrall to a nazi cult are behind the IRA, the Baader-Meinhof group, the Japanese Red Army, industrial militancy in the united kingdom (which is in the same category), as well as Palestinian resistance in a bid to discredit the left and take over the world, in a sort of proto-QAnon conspiracy</li> </ul> <p>misc</p> <ul> <li>protagonist is of the same alcoholic loner template used in the other two James Herbert books I have read, this time a former arms dealer who used to work for Mossad, who epitomise a sort of action-hero ethic of righteous violence meted out against a dehumanised enemy. at the start of the book he is disillusioned with the cycle of violence and revenge and has quit to work as a PI. but by the end we're perpetrating hate crimes and machine-gunning nazis so theres a bit of having-your-cake-and-eating-it going on. it's a very violent book and perhaps a bit fascist itself.</li> </ul> A picture 2023-04-11T00:00:00+00:00 2023-04-11T00:00:00+00:00 https://nathanrw.dev/posts/20230411-a-picture/ <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/198065566@N05/albums/72177720307429629" title="Test"><img src="https://live.staticflickr.com/65535/52810228938_894918f034_z.jpg" width="640" height="480" alt="Test"/></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script></p> <p>Testing out use of flickr for embedding photos. I dont want to host them on here as they are very large.</p> MonoGame on Mac 2023-04-08T00:00:00+00:00 2023-04-08T00:00:00+00:00 https://nathanrw.dev/posts/20230407-monogame-on-mac/ <p>I have been migrating my game project from Unity to MonoGame because of various issues I had with Unity. Mostly I use a Windows PC but sometimes I use a Macbook. So I need my project to build on both. MonoGame works fine on Windows, but the process of getting it to work on Mac has not been smooth.</p> <h1 id="content-builder">Content Builder</h1> <p>This was the most serious, though not the first, problem. So I will start here.</p> <h2 id="shaders">Shaders</h2> <p>MonoGame comes with <a href="https://docs.monogame.net/articles/getting_started/1_setting_up_your_development_environment_macos.html">official instructions</a> for setting up your development environment on Mac. These contain instructions to run a <a href="https://raw.githubusercontent.com/MonoGame/MonoGame/master/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh">script</a> in order for shader compilation to work. MonoGame uses a tool <a href="https://icculus.org/mojoshader/">mojoshader</a> to transate HLSL shaders into GLSL in the <code>Desktop.GL</code> backend, which is the default cross-platform desktop backend.</p> <p>This tool only works on Windows. On Linux and Mac, shader compilation requires Wine. When the environment variable <code>MGFXC_WINE_PATH</code> is detected, the MonoGame effect compiler will re-invoke itself via a <code>dotnet</code> installed in the Wine prefix at that path.</p> <p>The setup script creates this Wine prefix and adds a line to <code>.profile</code> and <code>.zprofile</code> to create that environment variable. The MonoGame project template creates a configuration file in the project directory which points to particular versions of the <code>dotnet-mgcb*</code> tools, so running <code>dotnet mgcb-editor</code> in your project directory will run the correct version of the editor and (provided you ran it from an environment with the <code>MGFXC_WINE_PATH</code> variable set) it will be able to compile effects.</p> <p>The first problem is that Visual Studio does <em>not</em> (of course) have that environment variable set as a consequence of changing <code>.profile</code>. So starting the content editor from within Visual Studio results in a content editor that cannot build shaders. OK, fine, I will start it from the terminal.</p> <p>Starting the content builder from the terminal, I was able to get it to find Wine. Hurrah! But effect compilation failed with no error message.</p> <p>I think the Wine prefix configured by the script was suppressing error messages, but I could be wrong:</p> <pre data-lang="Bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-Bash "><code class="language-Bash" data-lang="Bash"><span style="color:#65737e;"># disable wine crash dialog </span><span style="color:#bf616a;">cat </span><span>&gt; &quot;$</span><span style="color:#bf616a;">SCRIPT_DIR</span><span>&quot;/crashdialog.reg &lt;&lt;</span><span style="color:#b48ead;">_EOF_ </span><span style="color:#a3be8c;">REGEDIT4 </span><span style="color:#a3be8c;">[HKEY_CURRENT_USER</span><span style="color:#96b5b4;">\\</span><span style="color:#a3be8c;">Software</span><span style="color:#96b5b4;">\\</span><span style="color:#a3be8c;">Wine</span><span style="color:#96b5b4;">\\</span><span style="color:#a3be8c;">WineDbg] </span><span style="color:#a3be8c;">&quot;ShowCrashDialog&quot;=dword:00000000 </span><span style="color:#b48ead;">_EOF_ </span></code></pre> <p>Anyway, I read the source code of the effect compiler to figure out what it was trying to do, and wrote a script to do the same thing. It was something like</p> <pre data-lang="Bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-Bash "><code class="language-Bash" data-lang="Bash"><span style="color:#b48ead;">export </span><span style="color:#bf616a;">WINEARCH</span><span>=</span><span style="color:#a3be8c;">win64 </span><span style="color:#b48ead;">export </span><span style="color:#bf616a;">WINEDLLOVERRIDES</span><span>=</span><span style="color:#a3be8c;">d3dcompiler_47=n </span><span style="color:#b48ead;">export </span><span style="color:#bf616a;">WINEPREFIX</span><span>=</span><span style="color:#a3be8c;">/Users/nathan/.winemonogame </span><span> </span><span style="color:#bf616a;">assembly</span><span>=&quot;</span><span style="color:#a3be8c;">/Users/nathan/.nuget/packages/dotnet-mgcb/3.8.1.303/tools/net6.0/any/mgfxc.dll</span><span>&quot; </span><span> </span><span style="color:#bf616a;">wine64</span><span> dotnet &quot;$</span><span style="color:#bf616a;">assembly</span><span>&quot; &quot;$</span><span style="color:#bf616a;">@</span><span>&quot; </span></code></pre> <p>At this point I did a lot of googling, tried various Wine versions, and got a bunch of different error messages. But nothing actually worked. After some time, and after stumbling across the correct answer in a forum post, it turns out the problem was that the <a href="https://github.com/MonoGame/MonoGame/blob/15fd99a8189bfc9f4319ac39f5eb1c0bbe2ec66b/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh">script</a> linked in the official instructions at time of writing installed the 32-bit .NET SDK to the Wine prefix. Recent macs have no support for 32-bit applications. So it did not work. The fix, as mentioned in <a href="https://community.monogame.net/t/mgfxc-8-3-1-wine/17809">this forum thread</a>, is to install the 64-bit .NET SDK instead. Indeed, this has already been done in the <code>develop</code> branch of MonoGame. But it has not reached <code>master</code>, and the docs link to the script from <code>master</code>. This meant I had originally dismissed this as the cause of the problem, since I had seen that it had been fixed. It was not until I carefully re-read the setup script I noticed it still had the problem.</p> <h3 id="what-is-the-wine-prefix-setup-script-doing">What is the Wine prefix setup script doing?</h3> <p>If you boil it down to the essentials, it's not doing all that much.</p> <pre data-lang="Bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-Bash "><code class="language-Bash" data-lang="Bash"><span style="color:#b48ead;">export </span><span style="color:#bf616a;">WINEARCH</span><span>=</span><span style="color:#a3be8c;">win64 </span><span style="color:#b48ead;">export </span><span style="color:#bf616a;">WINEPREFIX</span><span>=$</span><span style="color:#bf616a;">HOME</span><span style="color:#a3be8c;">/.winemonogame </span><span style="color:#bf616a;">wine64</span><span> wineboot </span><span> </span><span style="color:#bf616a;">7z</span><span> x &quot;</span><span style="color:#a3be8c;">/Users/nathan/Downloads/dotnet-sdk.zip</span><span>&quot;</span><span style="color:#bf616a;"> -o</span><span>&quot;$</span><span style="color:#bf616a;">WINEPREFIX</span><span style="color:#a3be8c;">/drive_c/windows/system32/</span><span>&quot; </span><span style="color:#bf616a;">cp -f </span><span>&quot;</span><span style="color:#a3be8c;">/Users/nathan/Downloads/d3dcompiler_47.dll</span><span>&quot; &quot;$</span><span style="color:#bf616a;">WINEPREFIX</span><span style="color:#a3be8c;">/drive_c/windows/system32/d3dcompiler_47.dll</span><span>&quot; </span></code></pre> <p>The actual script downloads the .NET SDK. It also downloads Firefox in order to extract <code>d3dcompiler_47.dll</code>.</p> <h2 id="textures">Textures</h2> <p>I got errors compiling a texture. Thankfully I was not using it, so I deleted it. I will probably end up needing to deal with this at some point</p> <h2 id="fonts">Fonts</h2> <p>SharpFont fails to load freetype. This is a binary compatibility issue.</p> <pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>lipo -info dotnet-mgcb/3.8.1.303/tools/net6.0/any/libfreetype6.dylib </span><span>Non-fat file: dotnet-mgcb/3.8.1.303/tools/net6.0/any/libfreetype6.dylib is architecture: x86_64 </span></code></pre> <pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>lipo -info /usr/local/share/dotnet/dotnet </span><span>Non-fat file: /usr/local/share/dotnet/dotnet is architecture: arm64 </span></code></pre> <p>This is an arm64 mac. The .NET SDK is arm64. The freetype bundled with MonoGame is x64.</p> <p>I installed freetype using homebrew. Then I copied the <code>.dylib</code> to a temporary directory using the expected name.</p> <pre data-lang="Bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-Bash "><code class="language-Bash" data-lang="Bash"><span style="color:#65737e;">#!/bin/bash </span><span> </span><span style="color:#b48ead;">export </span><span style="color:#bf616a;">DYLD_LIBRARY_PATH</span><span>=</span><span style="color:#a3be8c;">/Users/nathan/Projects/NGLBuild/NGLMonoGame/libs </span><span> </span><span style="color:#bf616a;">dotnet</span><span> mgcb Content/Fonts/File.spritefont </span></code></pre> <p>This worked!</p> <h2 id="vs-plugin">VS Plugin</h2> <p>Does not install successfully. Need to debug this some more. Thankfully everything seems to work without it more or less, so not as urgent.</p> MÖRK BORG Quick Start 2023-01-19T00:00:00+00:00 2023-01-19T00:00:00+00:00 https://nathanrw.dev/posts/20230119-mbqs/ <p>This is a simple introductory scenario I made for <a href="https://morkborg.com/">MÖRK BORG</a> based on output from the fabulous <a href="https://dngngen.makedatanotlore.dev/">dngngen</a> in order to learn the ropes.</p> <p><img src="https://nathanrw.dev/posts/20230119-mbqs/dngn.png" alt="Dngngen output" /></p> <h2 id=""><span class="gothic"> Prerequisites </span></h2> <ul> <li> <p>Character sheets</p> </li> <li> <p>Rules reference</p> </li> <li> <p>Set of dice: d20, d10, 2d6, d4</p> </li> <li> <p>Pencils</p> </li> <li> <p>Paper</p> </li> </ul> <h2 id="-1"><span class="gothic"> The world </span></h2> <p>The world is ending as prophesied by the two-headed basilisks.</p> <p><img src="https://nathanrw.dev/posts/20230119-mbqs/world.png" alt="World map" /></p> <h2 id="-2"><span class="gothic"> The end of the world </span></h2> <p>The world will end after seven miseries have befallen it. Roll 2d6 to determine the first misery.</p> <h2 id="-3"><span class="gothic"> You </span></h2> <p>Create a character. Either pick a premade one, or <a href="https://scvmbirther.makedatanotlore.dev/">roll a new one.</a></p> <h3 id="-4"><span class="gothic"> Where are you? </span></h3> <p>After several days travel into the mountains of the Kergus wastes, you approach the ice-blue wall of a glacier, its frozen ramparts bearing down from the gloomy sky. A thunderclap rolls along the valley and a sheet of ice calves off, crashing down into the shallow meltwater below. As the ice settles, silence returns. Ahead, protruding from the water like a shipwreck at low tide, at the foot of the glacier, you see a plinth of cyclopean masonry emerging from the ice.</p> <p><img src="https://nathanrw.dev/posts/20230119-mbqs/kergus.png" alt="Kergus" /></p> <ul> <li>Kergüs is a desolate icy expanse</li> <li>To the north is the obsidian citadel Alliáns, wherein resides the Blood-Countess Anthelia</li> </ul> <h3 id="-5"><span class="gothic"> Why are you here? </span></h3> <ul> <li> <p>You heard a rumour?</p> <ul> <li>Whilst travelling, you happen upon an old man with one eye, one ear, one arm, one finger, one leg and one toe. He tells you that on the advent of the first misery, a sealed vault in the icy wastes of Kergus was opened...</li> </ul> </li> <li> <p>You were hired?</p> <ul> <li>Immediately following the first misery, you are summoned from the dungeons beneath the obsidian citadel of Allians. The steward of the Blood Countess offers you freedom. In exchange, you will plumb the depths of an ancient vault which has opened inside a glacier...</li> </ul> </li> <li> <p>You had a dream?</p> <ul> <li>On the night of the first misery, your sleep is disturbed by terrible visions. Walls of flesh and bone beneath the ice, monstrous and limbless birds that spread terrible plagues. You find yourself compelled to walk into the mountains...</li> </ul> </li> <li> <p>You read about it?</p> <ul> <li>Whilst studying in the archives of the obsidian citadel, you happen across mention of an ancient vault beneath a glacier. You head off in search of riches.</li> </ul> </li> </ul> <h2 id="-6"><span class="gothic"> The entrance </span></h2> <p>A massive stonework plinth emerges from the shallow lake of meltwater at the foot of the glacier. You know this marks the entrance. Ice occasionally falls from the glacier and hits the plinth below. Water runs off it in streams.</p> <p>Getting to the top of the plinth will require climbing up from the bottom - or down from atop the glacier.</p> <h3 id="-7"><span class="gothic"> The Inquisitors </span></h3> <ul> <li> <p>Atop the plinth is a camp. On PRESENCE DR10 you notice smoke from the campfire.</p> </li> <li> <p>The camp belongs to D3+1 <span class="gothic"> Inquisitors. </span></p> <ul> <li> <p><span class="gothic"> Inquisitors </span> seek out and punish heresy against the church of the Two-Headed Basilisks.</p> </li> <li> <p>The <span class="gothic"> Inquisitors </span> wear masks and robes, and under their robes is armour.</p> </li> <li> <p>Stats and weapon as Berserker but without the Special.</p> </li> </ul> </li> <li> <p>The camp contains equipment and items</p> <ul> <li> <p>D4 random items</p> </li> <li> <p>An oil lamp</p> </li> <li> <p>Several torches</p> </li> <li> <p>Flint and tinder</p> </li> </ul> </li> <li> <p>The <span class="gothic"> Inquisitors </span> claim to be guarding the site from heretics. Heretics such as <strong>YOU!</strong>. To the side of the camp lie the bodies of previously encountered heretics. They have been staked to the ground, their chests split open, and their lungs removed.</p> <ul> <li> <p>If approached, the <span class="gothic"> Inquisitors </span> will be hostile and attempt to kill you.</p> </li> <li> <p>It might be possible (very difficult) to convince them otherwise.</p> </li> </ul> </li> <li> <p>The Inquisitors are really after the treasure.</p> </li> <li> <p>During the day, they will be attempting to get into the vault.</p> </li> </ul> <h2 id="-8"><span class="gothic"> The Gateway </span></h2> <p>At the centre of the plinth is a massive stone gateway. The gateway is sealed by <span class="gothic"> an overgrowth of pulsating flesh and teeth, </span> but the <span class="gothic"> Inquisitors </span> have been at it with tools. Perhaps there is a knack to it? Or maybe brute strength will get you through.</p> <p>Once you open the gate, more ice breaks off the glacier and the plinth cracks. You feel the earth tremble beneath you and you are thrown to the ground. (Test AGILITY to avoid damage.) When you regain your feet, the ground beneath you has dropped several feet and is noticeably sloping. Water streams down the stairs, mixing with the gore from the fleshburg. This place won't last long!</p> <h2 id="-9"><span class="gothic"> The Dungeon </span></h2> <h3 id="-10"><span class="gothic"> 0. Collapse </span></h3> <p>Every 6 times you move between rooms, roll d6. On a 1, the earth shakes. The dungeon sinks deeper into the earth. Cracks appear in the walls and the torrent of water from above grows stronger. The 3rd time this happens, the entrance collapses and you are sealed inside.</p> <h3 id="-11"><span class="gothic"> 1. Staircase </span></h3> <p>You enter the maw. A stream of meltwater, viscera and black bile flows into darkness and the walls are pulsating fleshy matter studded with nubs of bone; eventually stone steps become solid granite hewn from the bedrock as you descend.</p> <p>The staircase is regular; the water does not pool unless obstructed by fleshy outgrowths. Your way is occasionally impeded by smaller fleshburgs and mucous membranes which can be overcome by brute force. As you do so, the walls pulsate furiously. Risk of tripping on the slick, uneven floor. There is no source of light other than that which you bring.</p> <h3 id="-12"><span class="gothic"> 2. The Upper Shaft </span></h3> <p>You emerge into a larger space. This is a shaft about 20m in diameter -- your light source might not reach all the way to the other side. The torrent flowing down the staircase sluices out over the edge of a walkway that curves to the left along the wall of the shaft, and which descends in as another staircase, all cut into the rock.</p> <p>If you inspect the walls, you see that there are oil lamps embedded in sconces in the wall. You could light them if you wish. This is true of all the subsequent rooms; larger rooms have braziers.</p> <p>The walls of the shaft are thick with the fleshy growths. At the bottom of the staircase, a long way down, is a circular sphincter that leads to the digestion chamber. The floor slopes down into the centre of the room. Water coming down from above flows down into the sphincter.</p> <p>If you fall from above, you fall down into the digestion chamber.</p> <p>At the bottom of the shaft, there is a locked door which leads to a long staircase.</p> <h3 id="-13"><span class="gothic"> 3. The Bone Chapel </span></h3> <p>The approach to this room is dark. Upon entering it, however, rows of upside-down candles burst into flame, illuminating a shadowy nave and vaulted ceilings in the distance above. There are pews to either side of the nave, made of polished bone. At the end of the nave is an altar, upon which lie 3 horse skulls.</p> <p>As you approach the horse skulls they glow with a sickly green light. You hear the galloping and screaming of three ghostly stallions. The skulls float into the air and approach you. They speak to you, offering assistance in exchange for a portion of your soul. If you accept, roll d6 on the table for the souls merchant. They vanish, and a silver key appears on the altar. If you refuse, they vanish, and the bone pews reassemble themselves into d6 skeletal warriors! If you beat them, a silver key appears on the altar.</p> <p>The silver key unlocks the door at the bottom of the Upper Shaft.</p> <h3 id="-14"><span class="gothic"> 4. The Armoury </span></h3> <p>This room seems to have escaped the worst of the creeping flesh growth. A vial of life elixir sits on a pedestal in the middle of the room. Racks of rusty weapons and armour line the walls. At the far side of the room is a chest containing d6 items.</p> <p>In here is one of the plaguebearing snakebirds. It is roosting on the ceiling. You can spot it with a PRESENCE check DR12. If you approach the pedestal, it flies down to attack you.</p> <p> <table> <tr> <th>NAME</th> <td colspan="3">PLAGUERIDDEN SNAKEBIRD</td> </tr> <tr> <th>ARMOUR</th> <td colspan="3">FEATHERY HIDE D2</td> </tr> <tr> <th>HP</th> <td>8</td> <th>MORALE</th> <td>8</td> </tr> <tr> <th>DAMAGE</th> <td colspan="3">PUTRID FANGS D4*</td> </tr> <tr> <td colspan="4"><pre>* On receiving damage roll d10. On a 1, become INFECTED. Your skin is covered in weeping sores; take d2 damage per day.</pre></td> </tr> </table> </p><h3 id="-15"><span class="gothic"> 5. The Digestion Chamber </span></h3> <p>An organic sac which hangs in a larger stone chamber. The sac is filled with acid and half-digested flesh. It can be cut.</p> <p> <table> <tr> <th>NAME</th> <td colspan="3">DIGESTION CHAMBER</td> </tr> <tr> <th>ARMOUR</th> <td colspan="3">-</td> </tr> <tr> <th>HP</th> <td>24</td> <th>MORALE</th> <td>-</td> </tr> <tr> <th>DAMAGE</th> <td colspan="3">STOMACH ACID D4*</td> </tr> <tr> <td colspan="4"><pre>* You cannot dodge stomach acid. This only affects you if you are inside the stomach. + The digestion chamber takes 6x damage from inside.</pre></td> </tr> </table> </p><h3 id="-16"><span class="gothic"> 6. The Torture Vault </span></h3> <p>Hundreds of dormant snakebirds roost on the ceiling. If you attack the digestion chamber, d4 snakebirds wake up and attack you.</p> <p>The floor of the room is lined with skulls and bones. Skulls are piled against the wall, which are lined with disturbing paintings and instruments of torture. Some of these could be usable weapons. Presence is lowered by 1.</p> <p>A hole in the middle of this room leads to a sump where the blood of the sacrifices was pooled. This is depicted in the paintings on the walls, which show people being dismembered, disembowelled, exsanguinated etc, in this room.Work is performed by the slaves of the snakebirds, in their honour. The slaves eventually either share the same fate, or are depicted covered in sores and pustules and are thrown into the sump.</p> <p>Where there is furniture, it is typically made from polished bone. This includes the picture frames.</p> <p>The digestion chamber is in the centre of the room -- you may or may not have slashed your way out. Great cords flesh and veins spiral round it and lead up to the shaft.</p> <p>The digestion chamber blocks the stairs leading down to the lower shaft.</p> <h3 id="-17"><span class="gothic"> 6.1 Return to the Torture Vault </span></h3> <p>If you enter the Torture Vault after the Fleshgod has been killed, you hear a roaring from below. A tide of gore erupts into the Vault. D3+1 fleshy tendrils sprout from the walls and floor. The gore vortex scours the room, and you are thrown to the ground; snakebirds are torn from the ceiling and eviscerated in mid-air. The rusted instruments of torture around the room are swept up in the vortex, and a great armoured serpent of flesh and bone is formed in the middle of the room. The Fleshgod is back!</p> <p> <table> <tr> <th>NAME</th> <td colspan="3">FLESHGOD (FINAL FORM)</td> </tr> <tr> <th>ARMOUR</th> <td colspan="3">RUSTED SHELL D4</td> </tr> <tr> <th>HP</th> <td>30</td> <th>MORALE</th> <td>-</td> </tr> <tr> <th>DAMAGE</th> <td colspan="3">DEVOUR D2*, STOMACH ACID D4** </td> </tr> <tr> <td colspan="4"><pre>* If the fleshgod hits you, test AGILITY DR14. If you fail, you are DEVOURED and end up in its stomach ** You cannot dodge stomach acid. This only affects you if you are inside the stomach. You can cut your way out of his stomach (STRENGTH DR10). This does 4x damage and his armour is negated.</pre></td> </tr> </table> </p><p> <table> <tr> <th>NAME</th> <td colspan="3">FLESH TENDRIL</td> </tr> <tr> <th>ARMOUR</th> <td colspan="3">-</td> </tr> <tr> <th>HP</th> <td>4</td> <th>MORALE</th> <td>-</td> </tr> <tr> <th>DAMAGE</th> <td colspan="3">BASH D4*</td> </tr> <tr> <td colspan="4"><pre>-</pre></td> </tr> </table> </p> <p>When the fleshgod is finally killed, the earth shakes some more. This place is collapsing! You need to run back to the surface. As you ascend, rooms collapse behind you, and the flow of water from above intensifies. It's difficult to make progress. It's possible you will need to swim to the surface.</p> <h3 id="-18"><span class="gothic"> 7. The Sump </span></h3> <p>A drain from the torture vault leads to the sump, a subeterranean lake where the bodies and fluids of the snakebirds victims ended up. The great mass of flesh has achieved sentience and has been growing up through the dungeon trying to escape.</p> <p>The lower shaft leading down to the sump is really a drain. It has a ladder which leads most of the way down, but at the end you will need to drop. There is water at the bottom.</p> <p>When you land in the sump the water immediately starts to bubble around you. The piles of bones and gore and fleshy extrusions around you combine into the many-armed FLESHGOD, his giant snake-form bristling with skeletal arms and his face a grinning skull.</p> <p> <table> <tr> <th>NAME</th> <td colspan="3">FLESHGOD (FIRST FORM)</td> </tr> <tr> <th>ARMOUR</th> <td colspan="3">RUSTED SHELL D4</td> </tr> <tr> <th>HP</th> <td>30</td> <th>MORALE</th> <td>-</td> </tr> <tr> <th>DAMAGE</th> <td colspan="3">MANY ARMS D4-1*</td> </tr> <tr> <td colspan="4"><pre>* The flesh god pummels you with its many arms; it makes 3 attacks per round. + If the cables connecting the fleshgod have been severed, the fleshgod’s health is 15.</pre></td> </tr> </table> </p> <p>When the fleshgod is killed, the earth shakes and a passageway opens leading up to the treasure room.</p> <h3 id="-19"><span class="gothic"> 8. The Treasure Room </span></h3> <p>D4+1 chests. 1 chest is cursed. 1 chest contains an item from the tenebrous reliquary. The rest contain random loot.</p> <p>Stairs from the treasure room lead back up to the torture vault.</p> <h2 id="-20"><span class="gothic"> Appendix </span></h2> <p><img src="https://nathanrw.dev/posts/20230119-mbqs/dungeon.png" alt="Dungeon map" /></p> <h2 id="-21"><span class="gothic"> Rules </span></h2> <p>See <a href="https://drive.google.com/file/d/1372heBerUrMiDONWURthu7kyVClOEdTv/view?usp=sharing">reference</a></p> Hercule Poirot's Machine for Pigs 2021-12-23T00:00:00+00:00 2021-12-23T00:00:00+00:00 https://nathanrw.dev/posts/20211223-hpmfp/ <div class="poirot-title"> <h1> Hercule Poirot's <br> <span class="machine-for-pigs">MACHINE FOR PIGS</span> </h1> </div> <p>This is a scenario for <a href="https://www.chaosium.com/call-of-cthulhu-rpg/"><em>Call of Cthulhu</em></a> or similar systems. It is a loose parody of <a href="https://en.wikipedia.org/wiki/Hercule_Poirot%27s_Christmas"><em>Hercule Poirot's Christmas</em></a> and <a href="https://store.steampowered.com/app/239200/Amnesia_A_Machine_for_Pigs/"><em>Amnesia: A Machine for Pigs</em></a>, though it is mainly about the midlanders' insatiable lust for pork.</p> <p>Despite the name, it can be played with any set of investigators.</p> <blockquote> <p>⚠️ <strong>Warning:</strong> Any references to real entities, history or geography are likely to be wildly inaccurate or misleading. In particular the stuff featuring Egyptian history wants going over to make it better informed and to avoid the sort of Orientalism you tend to find in works such as this, assembled from tropes and wikipedia. These materials are my notes from running the scenario precisely once and have not been substantially edited; they are provided as-is.</p> </blockquote> <h1 id="premise">Premise</h1> <p>You, a prominent investigator and/or writer, have been staying at one of the colleges at Oxford University on professional business over the Christmas holiday. You receieve summons to the country estate of Stjohn Cavendish, wealthy owner of a pork pie factory, who fears for his life...</p> <h1 id="contents">Contents</h1> <div class="columns"> <!-- toc --> </div> <h1 id="character-list">Character List</h1> <div class="columns"> <h2 id="investigators">Investigators</h2> <p>See below.</p> <h2 id="cavendish-household">Cavendish household</h2> <p><strong>Stjohn Cavendish</strong>, financier &amp; industrialist</p> <p><strong>Miriam Cavendish</strong>, his wife, American, archaeologist, deceased.</p> <p><strong>Geoffrey 'Jeffers' Butler</strong>, manservant</p> <p><strong>Gertrude White</strong>, housekeeper</p> <p><strong>Stjohn Cavendish Jnr</strong>, a Tory MP</p> <p><strong>Anne Cavendish</strong>, his wife</p> <p><strong>Reginald Cavendish</strong>, a gambler</p> <p><strong>Emily Cavendish</strong>, an adventurer</p> <p><strong>Barry Lovegood</strong>, her partner, a magician</p> <h2 id="cavendish-works">Cavendish Works</h2> <p><strong>Recalcitrance Emmett</strong>, an engineer</p> </div> <h1 id="background">Background</h1> <h2 id="timeline">Timeline</h2> <ul> <li> <p><strong>1500BC</strong>, A cannibal cult of pig-worshippers construct an underground temple complex near Cairo, Egypt. For 1000 years their activities feed the Entity. The cult is suppressed by various powers, from the Ptolemies to the Romans, though it persists.</p> </li> <li> <p>646, Cult all but eradicated during Islamic conquest when Egypt is wrested from the Eastern Roman Empire.</p> </li> <li> <p>1842, Mineworkers exposed to the Dudley Barrow Tablet, infected by the Hunger.</p> </li> <li> <p>1886, Recalcitrance Emmett born into the afflicted community</p> </li> <li> <p>1924, Miriam returned from expedition</p> </li> <li> <p>1925, Emmett Works Co. contracted to build the Cavendish Works.</p> </li> <li> <p>1926, Miriam discovers translation tablet, publishes paper on the subject</p> </li> <li> <p>1926, Miriam receives anonymous letters warning her not to publish further and to desists from her work.</p> </li> <li> <p>1927, Cavendish Works completed</p> </li> <li> <p>1927, Miriam succumbs to the Hunger and is hanged - or so it seems...</p> </li> <li> <p>1927, Cavendish Works opens</p> </li> </ul> <h2 id="beneath-the-city-of-the-dead">Beneath the City of the Dead</h2> <ul> <li> <p>Pigs actually a substitute for cannibalism, and their sacrifice intended to ward off an entity that possesses the minds of its victims and hungers for human flesh</p> </li> <li> <p>Cult suppressed following the Islamic conquest in 646AD and their tunnels were sealed and built over. Yet rumour had it that the hunger persisted in anyone who spoke their accursed language or read their texts, which were systematically destroyed.</p> </li> <li> <p>The entity can possess you if you read its words and understand them. Its presence can also emanate a short distance from the objects in which its essence is trapped.</p> </li> <li> <p>The practice of cannibalism creates a bridge to the entity and allows it to manifest itself and imprint itself on the cannibals. This is why its cults manifest in disparate locations.</p> </li> </ul> <h2 id="the-dudley-barrow">The Dudley Barrow</h2> <ul> <li> <p>A tablet in a script similar to that found in the City of the Dead was found in a barrow near Dudley which was disturbed by early surface coal mining. The script was badly damaged, yet translations in Old English and Latin were better preserved. The tablet was found by locals who found themselves being slowly but surely transformed. They face a daily increasing lust for flesh which can only be temporarily sated through consumption of pork products. Eventually they will be overcome with the desire to consume their fellow men.</p> </li> <li> <p>The great engineer Recalcitrance Emmett, secretly one of their number, seeks a solution. To begin with he settles on the idea of limitless pork. He offers to build a factory for Stjohn at a knockdown price...</p> </li> </ul> <h2 id="the-statue">The Statue</h2> <p>The statue depicts a man and a woman with the heads of bigs, bearing a chalice from either side. Stjohn keeps it in the dining room in pride of place, it being a gift from Miriam. Other residents of the house hate it; they swear they feel a strange uneasiness around it - but that could be due to what happened with Miriam... Some say that since it appeared in the dining room, meat would disappear from their plates when they weren't looking ... and that everything now tastes like pork. Stjohn swears this is simply because the cook refuses to cook anything else, it being in such plentiful supply.</p> <p>The statue is the key which was used to lock the Entity in its pocket dimension, fashioned by the pig cult of Cairo shortly before their demise. It was to be their salvation, yet they only managed a single turn of the lock, leaving the Entity partially trapped. With enough sacrifice, the lock could be fully closed -- or fully opened. The presence of the Entity emanates from the key - wherever the key goes, the door is present too.</p> <p>When blood is poured into the chalice, it vanishes, consumed by the Entity. With enough blood, the Entity can be made sluggish and the key can be turned. Yet feeding the Entity is incredibly dangerous; it is momentarily strengthened, and complex rituals are needed to keep it in check. The tunnels under Cairo followed this design - as does the Factory.</p> <h1 id="the-investigators">The Investigators</h1> <p>Feel free to substitute a different set of investigators. The only real requirement is that they be prominent detectives or investigators of strange events. We used the following; you would need to make your own character sheets for them.</p> <h2 id="agatha-crane">Agatha Crane</h2> <p>Parapsychologist and paranormal investigator, from <a href="https://www.fantasyflightgames.com/en/products/mansions-of-madness-second-edition/">Mansions of Madness 2nd Edition</a>.</p> <p>On sabbatical at the University of Oxford, writing a book on the paranormal.</p> <h2 id="wilbur-crane">Wilbur Crane</h2> <p>Her husband, see <a href="https://www.fantasyflightgames.com/en/products/mansions-of-madness-second-edition/">Mansions of Madness 2nd Edition</a>.</p> <h2 id="hercule-poirot">Hercule Poirot</h2> <p><a href="https://www.agathachristie.com/en/characters/hercule-poirot#about">Famous detective.</a></p> <p>Skeptical of the paranormal, as it does not gel with his orderly and rational view of the world, but respects use of the scientific method.</p> <h2 id="miss-lemon">Miss Lemon</h2> <p><a href="https://en.wikipedia.org/wiki/Hercule_Poirot#Miss_Felicity_Lemon">His secretary.</a></p> <p>Fascinated by the occult.</p> <h2 id="inspector-japp">Inspector Japp</h2> <p>The <a href="https://en.wikipedia.org/wiki/Hercule_Poirot#Chief_Inspector_James_Harold_Japp">only policeman in the entire country</a>. Some say there are multiple copies of him. Will likely arrive if the police become involved.</p> <h1 id="characters">Characters</h1> <h2 id="miriam-cavendish">Miriam Cavendish</h2> <p>Archaeologist from Boston, Massatchusetts.</p> <p>In 1924, Miriam Cavendish returned from an archaeological expedition beneath the City of the Dead in Cairo, Egypt. The dig had found an extensive network of subterranean tunnels, deeper and more ancient than the Islamic necropolis above. Among the artifacts recovered, some of the most fascinating were the reliefs of pigs and pig-headed people - previously the pig was not thought to be held in such reverence by the ancient Egyptians. More curious still, several human skeletons appeared to have been combined in mummification with those of pigs. Miriam brought back with her a small statue along with several stone tablets covered in indecipherable text.</p> <p>Miriam's dig was funded by the new American University at Cairo, which was seeking to raise its profile by making an archeological discovery. The initial discovery was made when a tomb floor collapsed in the city of the dead, revealing a much older network of tunnels which had been bricked up some time around 600AD. Some, particularly a group of scholars from al-azhar university, were not keen on a dig going ahead, argueing that the tunnels should remain sealed. But modernisers won out and the exploration went ahead.</p> <h3 id="return-to-egypt">Return to Egypt</h3> <p>Miriam presented Stjohn with the statue as a gift, and he proudly displayed it in the dining room, where it sits to this day. She obsessed over the stone tablets, travelling back and forth to the dig at Cairo, and consulting experts in obscure and dead languages. When a later tablet was discovered, containing text in both the mysterious script and Arabic, she at last appeared to be making progress.</p> <h3 id="descent-into-madness">Descent into Madness</h3> <p>Those around her became alarmed by her behaviour; she was becoming more and more obsessive and withdrawn. She began to refuse vegetables and would eat only meat. One night, Miriam killed and butchered a maidservant with the aid of two other servants - who later claimed to have no memory of the incident (having been mesmerised by Miriam.) They fed the meat into the meat grinding apparatus of the newly opened factory, making pies from the resulting mince and consuming them. Having done this, they returned to their beds covered in gore. The human remains were quickly discovered by factory workers and the perpetrators, including Miriam, were arrested and hanged, the evidence against them all being incontrovertible.</p> <p>The families of the victim and of the two accomplices blame the Cavendishes and their accursed works for what happened - the works was never popular owing to the commercial threat it posed to traditional pie making. And the workers are from out of town and keep to themselves.</p> <h3 id="in-hiding">In Hiding</h3> <p>Miriam is not dead and actually faked her death: she mesmerised the guards at the prison and took the place of the executioner. He lived alone, and as far as anyone was concerned he was still there going about his business. Miriam started a fire in the morgue where 'her' body was stored, and so nobody was able to identify her subsequently. As the executioner, she had a steady supply of human remains on which to feed, and additionally stalked the city of Leicester at night via the sewers.</p> <h3 id="return">Return</h3> <p>Shortly before the game begins a guard is reported missing - this is because Miriam has returned to the Cavendish estate to perform the ritual to free the Entity. She is now completely mad and wants revenge on Stjohn for reporting her to the authorities.</p> <p>She is hiding out in the tunnels beneath the factory. A couple of workers have gone missing - she has killed them and is eating them.</p> <p>She wants her notes from her study, which is why she has been breaking into the house. Eventually, she will find that what she needs is the idol, in order to release the Hunger from its prison. But Recalcitrance will already have stolen it!</p> <h3 id="current-state">Current state</h3> <p>Miriam is a ghoul who knows the Mesmerise spell.</p> <h2 id="stjohn-cavendish">Stjohn Cavendish</h2> <p>Wealthy man who made his fortune trading futures contracts using capital bequeathed to him by his uncle. After many years of success, including during the war, through a clerical error he came into posession of a large number of 'pork futures' which came due almost immediately. When life gives you pork, make pork pies; he is now a big name in the meat pie business and the pie works is his most profitable asset.</p> <p>He is an amateur Egyptologist; he met his late wife Miriam at a lecture at the Natural History Museum. He financed her expeditions after she was cut off by Miskatonic University.</p> <p>No 'mythos' knowledge as such; he does not understand the significance of anything he might have gleaned. But has a keen interest in antiquities and has a sharp mind.</p> <p>Stjohn thinks he has seen the ghost of Miriam haunting the house at night. Locks have been found smashed, but nothing taken. The police found no other evidence of burglary. He doesn't know what to believe, but fears for his safety - could it be the families of the servants sent to the gallows exacting their revenge? He has therefore sent for the best detective and the best paranormal investigator to find out.</p> <h2 id="geoffery-jeffers-butler">Geoffery 'Jeffers' Butler</h2> <ul> <li>Longstanding member of the household</li> <li>Has his fingers in the till <ul> <li>If you inspect his records, you find some odd purchases (accounting)</li> <li>If confronted he will admit they were fake and that he took the money (persuade/intimidate)</li> </ul> </li> <li>No interest in Miriam's work</li> <li>Thought the statue had 'bad vibes'.</li> </ul> <h2 id="gertrude-white">Gertrude White</h2> <ul> <li>The cook</li> <li>Make something up!</li> </ul> <h2 id="stjohn-cavendish-jnr">Stjohn Cavendish Jnr</h2> <p>A tory MP</p> <ul> <li>Eldest son of Stjohn Cavendish. Miriam wanted him named after his father in the American fashion.</li> <li>Managed to get out of fighting in the war pleading ill health; he got his father to make a substantial donation to a relevant official.</li> <li>Supports the idea of a surprise attack on France and will not shut up about it -- &quot;it's the last thing they will expect!&quot;</li> <li>Relies on an allowance for income and wishes there was more</li> <li>Alcoholic</li> </ul> <h2 id="anne-cavendish">Anne Cavendish</h2> <ul> <li>Wife of Junior</li> <li>Brains of the operation; manages political career</li> <li>née Bucket</li> <li>Quarrels with Stjohn Snr over his Liberal leanings</li> <li>Immaculate appearance</li> <li>Womens Institute</li> <li>Wants allowance raised</li> </ul> <h2 id="reginald-cavendish">Reginald Cavendish</h2> <ul> <li>Gambler</li> <li>Opium smoker &quot;it's for the old leg you know&quot;</li> <li>Went to pieces after his mothers death and spends his time gambling</li> <li>Formerly a financier like his father</li> <li>Might he steal to fund his gambling and opium? He has stolen jewelery from Emily in the past.</li> <li>A captain in the war, decorated for bravery, shrapnel wound in leg</li> </ul> <h2 id="emily-cavendish">Emily Cavendish</h2> <ul> <li>Adventurer</li> <li>Ran away to join the circus and travel the world. Spent time in Alexandria and Cairo. Speaks Latin, Greek and Arabic. Handy with a revolver.</li> <li>Rescued Barry from assailants in Damascus</li> <li>Was attempting to investigate her mother's work in Egypt in order to understand her disappearance but had to leave after the authorities got wind of it.</li> <li>Tried to contact institutions of her mothers Egyptian contacts, they seem to know something but dont let on.</li> <li>Was a fortune teller and medium in the circus. Doesn't believe in it though.</li> </ul> <h2 id="barry-lovegood">Barry Lovegood</h2> <ul> <li>A magician and diamond geezer</li> <li>The family disapprove of him and will not allow him in the house</li> <li>He visits in secret anyway</li> <li>Escapology expert</li> <li>Met Emily whilst travelling in the Orient.</li> <li>Speaks Arabic very badly</li> <li>Private in the war.</li> </ul> <h2 id="recalcitrance-emmett">Recalcitrance Emmett</h2> <p>Recalcitrance offered to build a pork works for Stjohn at a knockdown price, and brings with him those of his people worst affected by the Hunger, so as to look after them.</p> <p>He has followed Miriam's recent career with interest, and combs over it for hints of the rituals they used to subdue the entity - recognising that the ancient Egyptians were affected by the same Hunger as his fellows. The Factory is constructed as a great ritual device, following the pattern of the site at Cairo.</p> <p>He warned Miriam anonymously not to publish the text of the tablet but this spurred her on - she took it to be a deception from a rival.</p> <p>He has seen the tablet in the Dudley Barrow, being a scion of the pork cult there - but his people know by now not to read it. Since it is damaged, it is also less dangerous than the Cairo tablet.</p> <p>Recalcitrance is running the factory as part of a ritual to contain the hunger, and wants to seal it away forever. He has made copies of Miriam's notes, and knows he needs the idol to complete the ritual.</p> <p>His workers live in a nearby village called 'Domesday'. The village predates the works but its population has been doubled by the influx of workers. They live in a complex of barracks buildings reminiscent of a boarding house, and they are treated with some distrust by the locals. Their standard of living is spartan and their pay is low yet they are curiously loyal to Recalcitrance. They are directly employed by his company, the Emmett Works Co., which was contracted to build and run the factory. This arrangement results in a lot of value for money for Stjohn, so Recalcitrance's eccentricities are tolerated.</p> <blockquote> <p>💡 <strong>Note:</strong> Whilst he is not actually a villain he is supposed to be a suspicious character and draw the attention of the investigators. He is prickly, secretive and unhelpful.</p> </blockquote> <h1 id="locations">Locations</h1> <h2 id="oxford">Oxford</h2> <p>Agatha and Wilbur are staying in one of the colleges at Oxford university.</p> <h2 id="the-factory">The Factory</h2> <p>The factory is built in the Egyptian Revival art deco style. It was built on the former site of a chapel on the Cavendish Estate, and has its own shuttle line to the railway station.</p> <p>The factory was designed and built by the Emmett Works Co. on behalf of Stjohn Cavendish, who wanted to consolidate his presence in the pork pie industry. Animals and materials are delivered by train; the animals are slaughtered on site and then processed immediately into pies and pork products.</p> <blockquote> <p>💡 <strong>Note:</strong> This map uses <a href="https://www.fantasyflightgames.com/en/products/mansions-of-madness-second-edition/">Mansions of Madness 2nd Edition</a> tiles, but this isn't necessary.</p> </blockquote> <p><img src="https://nathanrw.dev/posts/20211223-hpmfp/./factory.png" alt="Factory layout" /></p> <h2 id="the-house">The House</h2> <p>An old stately home on a country estate.</p> <p>All the usual Cluedo rooms.</p> <blockquote> <p>💡 <strong>Note:</strong> This map uses <a href="https://www.fantasyflightgames.com/en/products/mansions-of-madness-second-edition/">Mansions of Madness 2nd Edition</a> tiles, but this isn't necessary.</p> </blockquote> <p><img src="https://nathanrw.dev/posts/20211223-hpmfp/./house.png" alt="House layout" /></p> <h2 id="the-tunnel">The Tunnel</h2> <p>Tunnel from the house to the factory.</p> <p><img src="https://nathanrw.dev/posts/20211223-hpmfp/./tunnels.png" alt="Tunnel layout" /></p> <p>The secret door should be very hard to find and almost impossible to open unless you have found Emmett's journal which explains it and the ritual.</p> <h2 id="the-ritual-chamber">The Ritual Chamber</h2> <p>Secret tunnels accessible from the main tunnel but hidden. Secret ritual chamber.</p> <p>The appearance is the same as that of the lower chamber described in Miriam's journal since it follows the same design. Drains from the factory above flow into ducts which bring blood to a central point.</p> <p>This is where the statue needs to go in order to perform the ritual of banishment.</p> <p>If you have the spell and the statue and get here, Miriam will attack! You must race to complete the ritual whilst fending her off and resisting the influence of the Entity.</p> <h2 id="the-deep-tunnels">The Deep Tunnels</h2> <p>Warren of tunnels off the main tunnel. Entrance not obvious. Hard to navigate -- like potholing. Ghoul burrow is somewhere off here but should be very hard to find; the 'intended' showdown with Miriam is during the ritual to banish the entity.</p> <h2 id="domesday">Domesday</h2> <p>Village where the workers' barracks is located.</p> <h2 id="melton-mowbray">Melton Mowbray</h2> <p>Town famous for its pies.</p> <h2 id="melton-mowbray-police-station">Melton Mowbray Police Station</h2> <p>The cop shop in Melton Mowbray. This is where Emmett (or anyone else arrested) will be taken.</p> <h2 id="the-prison">The Prison</h2> <p>Prison near leicester where Miriam was supposedly hanged. The investigaters may choose to go here and look around.</p> <blockquote> <p>💡 <strong>Note:</strong> We didn't go here.</p> </blockquote> <h1 id="plot">Plot</h1> <h2 id="oxford-morning-22nd-december-1933">Oxford, Morning, 22nd December, 1933</h2> <p>Perhaps the investigators are doing their Christmas shopping before returning to their lodgings.</p> <p>This is a chance to flesh out why they are here and what they are like.</p> <p>On your return, you find the central heating is broken (or perhaps there is a water leak.) It cannot be repaired before Christmas! Drat! Soon after, the phone rings. It is Geoffrey Butler, the butler to Stjohn Cavendish. His master has heard of you, and insists you join him at his estate for Christmas -- he fears for his life and has need of your expertise. He suspects the danger to be supernatural in nature.</p> <p>Prepare to travel to the estate and arrange travel.</p> <h2 id="train-to-leicester-morning-23rd-december-1933">Train to Leicester, Morning, 23rd December, 1933</h2> <p>Get the train to Melton Mowbray. Change at Leicester.</p> <p>The train races through countryside that is blanketed in thick snow, though the sun is shining and the sky is clear.</p> <p>Arrive in Melton Mowbray around 1PM, to be met by Butler in a car. Any other investigaters who arrived in a different way will also be here. Butler drives you all to the <em>factory office</em> of Stjohn Cavendish.</p> <h2 id="cavendish-works-afternoon-23rd-december-1933">Cavendish Works, Afternoon, 23rd December, 1933</h2> <p>You are dropped at the entrance.</p> <blockquote> <p>💡 Describe the factory. It's an imposing building in the Egyptian Revival art deco style, with ornate collonades and reliefs and statues of pigs.</p> </blockquote> <p>The door is open and you can talk to the receptionist. Most of the factory is off limits.</p> <p>You are ushered upstairs to Stjohn's office. It is an ornately furnished room, full of contemporary furniture and Egyptian antiquities. Stjohn sits behind a large walnut desk, and gestures for you to sit. He explains his concerns:</p> <ul> <li>The tragic death of his wife some years ago</li> <li>The recent break-in</li> <li>How he was sure he saw the figure of his late wife standing over him during an incident of sleep paralysis, as well as glimpses roaming the halls at night</li> </ul> <p>You can press him on the circumstances of her death. He will tell you what he knows.</p> <blockquote> <p><strong>Handout:</strong> Newspaper covering Miriam's death</p> </blockquote> <ul> <li>He is suspicious that the victims' families might be enacting their revenge on him, but he can't shake the feeling that he has actually seen a ghost.</li> <li>If you ask about the factory, he will tell you about Recalcitrance (who is at work in the factory right now) and his ingenious construction and surly temperament. How the style is a result of his and Miriam's shared love of ancient Egypt.</li> <li>Trouble with the local pie makers</li> <li>You can ask for a tour, but most of the factory is off limits right now because it is working and therefore not safe</li> </ul> <p>If you attempt to leave the foyer the receptionist will attempt to stop you and summon stout lads if you persist.</p> <p>The apartment upstairs (where Recalcitrance lives) is marked as off limits and is locked.</p> <p>When you are done, Butler will collect you and take you to the house.</p> <h2 id="cavendish-house-afternoon-evening-23rd-december-1933">Cavendish House, Afternoon-Evening, 23rd December, 1933</h2> <p>Jeffers conveys you to the Cavendish House, which is a large Georgian manor house. Dinner will be served at 7pm. Where has Wilbur got to? Poirot goes off to his room.</p> <p>Agatha can go to her room and unpack her stuff and talk to Wilbur. She might sneakily have a look round or make preparations, but she does not have long.</p> <h3 id="dinner">Dinner</h3> <p>At 7pm the dinner gong sounds; everyone should proceed to the dining room.</p> <p>Place all the family and guests in the dining room. Recalcitrance is present for this - but Barry is hiding in Emily's room. Agatha and Poirot can ask questions over dinner, and characters will chime in with conversation points pertinent to themselves.</p> <p>Eventually, somebody notices that Stjohn's prize statue is missing! He is furious, and after much kerfuffle requests Agatha and Poirot search the house. Someone e.g. Junior remarks that everyone hated that damned thing anyway. <strong>Recalcitrance has stolen it and hidden it in his apartment, which he did via the tunnels.</strong></p> <p>Can search the house and interview suspects</p> <h4 id="points-of-interest">Points of interest</h4> <ul> <li> <p>Miriam's study. Locked. Where is the key?</p> <ul> <li>In Stjohn's room, in the side table drawer.</li> </ul> </li> <li> <p>Talk to staff</p> </li> <li> <p>Talk to family</p> </li> <li> <p>Barry is hiding in Emily's room.</p> </li> <li> <p>Entrance to the tunnels in the basement <strong>VERY hard to find</strong>.</p> </li> <li> <p>Recalcitrance stays with Stjohn in the drawing room.</p> </li> </ul> <h3 id="night">Night</h3> <p>After the search is complete, everyone goes to bed. At midnight, you are awoken by a bloodcurdling scream!</p> <p>The scream came from Stjohn's room. You should probably investigate! He comes running out, half dressed, shouting 'Miriam!'. When he calms down, he explains he awoke in a state of paralysis and saw Miriam standing over him, her face angry and deathly pale. He managed to scream, at which point she vanished. There is no trace of a presence anywhere - but Miriam's office has been ransacked! Nothing has actually been taken though.</p> <p>Junior suspects the locals.</p> <p>Reginald is hysterical and pours himself a large drink.</p> <p>Emily thinks it was all in his head.</p> <p>You should probably check the doors etc and then return to bed. Perhaps it was all in his head?</p> <h2 id="morning-24th-december-1933">Morning, 24th December, 1933</h2> <p>Agatha can decide what to investigate and where to go:</p> <ul> <li> <p>The locals in the village</p> </li> <li> <p>The workers at Domesday and the Factory</p> </li> <li> <p>The Prison where Miriam was held and executed</p> </li> <li> <p>Interview the family about last night</p> </li> </ul> <p>That evening at dinner, there are some suspicious absences.... Emmett is at work too.</p> <h2 id="cavendish-house-midnight-24th-december-1933">Cavendish House, Midnight, 24th December 1933</h2> <p>The murder!</p> <p>You are again awoken by a scream. (Assuming you went to bed - if you lay in wait, then perhaps you were mesmerised by Miriam, or you heard the scream from elsewhere.)</p> <p>This time the scream is cut short by a sickening gurgle and a loud crash, a bestial shriek, animalistic snarling, and the sounds of frenetic violence being done. The noises come from the foyer.</p> <p>In the foyer is Stjohn's mangled body. There is blood everywhere. On the walls there is blood. On the ceiling, blood. His head has been pulled from his body and the rest of him has been torn to pieces. He is covered in blood. On examination you can see that great bloody chunks seemingly have been bitten from him. On <u>close</u> examination (a good roll) you can see that this was the work of a human jaw but with canine teeth. Bloody footprints lead away from the body towards the wine cellar. Elsewhere in the house, Miriam's study has again been ransacked. Notebooks are scattered prominently - unless you found them before.</p> <p>On the floor of the wine cellar is the silver key. This unlocks the secret door to the tunnels - which you might have located already via a good spot hidden roll, or you might need to search for it. This time there is a trail of blood leading to a wall so it should be easier to find.</p> <p>If you follow, you can enter the tunnels. The tunnels run from the house to the factory. The silver keys works at this end too. The deep tunnels are behind another secret door down there; its unlikely you will find it without a good light source and time to look around. This is where Miriam has dug her burrow.</p> <p>If you follow the tunnel you will end up in the factory, which throws some suspicion on Emmett! This is how he stole the statue. You might want to interrogate him and search his apartment. Someone should have called the police - you might do this with Inspector Japp if you wait long enough.</p> <p>In Emmett's apartment, you might find</p> <ul> <li> <p>The Statue (well-hidden, in a safe behind a painting)</p> </li> <li> <p>Copies of Miriam's notes, in his desk</p> </li> <li> <p>Copies of correspondence with Miriam where he sought to warn her off</p> </li> <li> <p>His diary, in code, hidden with the statue</p> </li> </ul> <p>He does <em>not</em> yet know about Miriam - he believes the Hunger is what caused her to go mad, but he doesn't know she survived. The evidence against him is probably strong enough for Japp to arrest him and take the statue as evidence.</p> <h2 id="cavendish-house-morning-25th-december-1933">Cavendish House, Morning, 25th December 1933</h2> <p>Christmas! Walter and Agatha exchange gifts. Perhaps she bought one for Poirot too!</p> <p>What do you do next?</p> <p>Tonight Miriam will assault the police station to get the statue (or Emmett's apartment if it is still there.)</p> <h2 id="remainder">Remainder</h2> <p>At this point all the pieces should be in place, either you find Miriam and seal away the hunger or you will be hunted down and killed. Or you can run away and everyone at the house will die.</p> <h1 id="emmett-s-journal">Emmett's Journal</h1> <p>Make a handout</p> <ul> <li>Factory/ritual based on Miriam's notes <ul> <li>Location of secret door to tunnels if not already found</li> <li>Location of secret door to ritual chamber from tunnels + how to open it e.g. a lever or key</li> </ul> </li> <li><em>Contain the Hunger</em> spell</li> <li>Community of those afflicted by the Dudley tablet</li> </ul> <h1 id="miriam-s-journal">Miriam's Journal</h1> <p>Found in Emmett's Desk. In cryptic shorthand. Each handout takes some time to decipher from the journal. It should not be possible for the investigators to obtain all of the information too early, but they should be able to get it all by the time they need it, so adjust the difficulty based on when the journal is found.</p> <blockquote> <p>💡 <strong>Note:</strong> There is perhaps too much material here and it might be best to cut it down.</p> </blockquote> <blockquote> <p><strong>Handout: 1925-26, Day 48</strong></p> <p>Day 48 of the dig. We have already learned so much, yet we have barely scratched the surface! And I mean this quite precisely. Yesterday, we discovered a vertical shaft, about 100 feet in diameter. A ramp would have originally spiralled down, yet the woodwork has long since decayed. I will need to secure additional funds in order to further plumb the depths, yet I cannot resist the lure of the unknown -- tomorrow, I will descend the shaft on a rope, using a winch powered by our diesel engine. The shaft descends almost to the extent of our longest rope, but we are in luck; I can just about make it. I will make what explorations and sketches as I can before my electric torch is exhausted and then return to finish our work on the upper level. </p> <p>Speaking of which, I already have enough material for at least two papers, perhaps more. From the objects and remains that we found, we can determine some of the nature of the society that left them along with a little of their history. The tunnel complex stems from before Roman or Ptolemaic rule, and it would seem what lies below is even older. The religion being practised here seems of a type with ancient Egyptian religions, such as we know of them, though the fixation on the pig is unusual -- absent are the sorts of animal typically venerated by the ancients. Disturbingly, from human remains we have examined, it is clear that these people at one point or another practised cannibalism -- human bite marks and signs of cooking are evident on some of the bones. The remains were not simply cast aside, but were found arranged in a sort of ossuary, curiously intermixed with those of swine, perhaps as part of some religious practice.</p> <p>Amongst the objects scattered in the tunnels, of particular note are a small statue which depicts a man and a woman with the heads of pigs, bearing a chalice from either side, and several stone tablets covered in the indecipherable glyphs of an unknown language. </p> <p>From an examination of the masonry at the entrance, and of human remains found on the upper level -- which bear the traces of violence done with weapons, and some of which possess curiously canine teeth -- we have determined that the cult was put to the sword and consigned to oblivion during the Islamic conquest of Egypt in the 7th century. I hope that tomorrow's survey of the depths will provide further insight.</p> </blockquote> <blockquote> <p><strong>Handout: Day 49</strong></p> <p><strong>Entry 1</strong></p> <p>Blast and damnation! Those gutless fools at the University have informed us that we have to stop our work at once! The site must be sealed immediately and no-one is to be allowed access. I am to attend a meetring this afternoon, where I intend to demand an explanation for this outrage! I have sequestered the statue I found, along with the best preserved of the cryptic stone tablets, with my luggage -- my work with those, at least, will continue.</p> <p><strong>Entry 2</strong></p> <p>Met with the Dean of my institution, along with two individuals claiming to be members of a secret society of scholars at Al-Azhar University. They say that they are guardians of of secret knowledge passed down from hundreds of years ago when the university was a centre of philosophical learning under the Fatimid Caliphate. When the vast library of the university was burned by Saladin, they preserved certain arcane manuscripts which were deemed too precious -- or too dangerous -- to be lost. Among these is a journal dating to the 7th century, which speaks of an underground cult of pig-eaters, whose excesses had developed into cannibalism, and whose language would afflict the reader or speaker with an insatiable hunger. They were put to the sword by brave men who blindfolded themselves and sealed their ears with wax so as not to be swayed by the cult's devilish whisperings. Neverthless, the legends tell of those who heard the eldritch words of that accursed tongue, or who attempted translations of it, who found themselves cursed. The strongest of these sealed themselves in stone chambers, there to perish, lest they give in to what they called 'the hunger'. Those who did not do so were consumed by it, and stories tell of the 'ghouls' who roam at night and feast on the flesh of the dead.</p> <p>Clearly, this is no more than a lurid superstition, and I will argue most stridently for the re-opening of the site! For now, I will return to England, consult experts on languages, and work on my papers.</p> </blockquote> <blockquote> <p><strong>Handout: 2 Months Later</strong></p> <p>Gave a lecture today at the British Museum with my preliminary findings, trying to drum up interest. Made quite a stir! Am in constant correspondance with the University, trying to get them to find their nerve, and things appear to be moving in our favour! I pulled a few strings at the foreign office and the secret scholars have been arrested for sedition; it looks like we will be able to go ahead.</p> </blockquote> <blockquote> <p><strong>Handout: 1 week later</strong></p> <p>Have received an anonymous letter titled 'beware the translations!' They are attempting to throw me off! Either this is one ofo the remaining secret scholars who slipped the net, or one of my rivals has found out about them and is attempting the same thing! No matter, I will continue! I must return to Egypt.</p> </blockquote> <blockquote> <p><strong>Handout: 1 month later</strong></p> <p>Egypt. We have re-opened the dig site. Things are as we left them thanks to the guards we posted at the entrance. We will continue our survey -- I have secured a grant from my alma mater Miskatonic University and have used it to purchase the supplies and labour necessary to expand our operation beyond the bottom of the great shaft. We have electric light and power, winches and climbing gear. Tomorrow, I make the initial descent.</p> </blockquote> <blockquote> <p><strong>Handout: next day</strong></p> <p>Numerous tunnels head off from the shaft at different levels. Of these, I have explored two, both of which were small chambers of unclear function. Another tunnel had collapsed, being blocked by fallen masonry. At the very bottom of the shaft, I made a most marvellous find -- a grand entrance flanked by pig-headed statues. Through this doorway, I entered what appeared to be a vast sacrificial chamber, containing a stone altar and channels in the floor leading to a series of drains -- evoking the Roman practice of augury. Beneath this chamber, accessed via a stairway, is another chamber of similar size, with ducts leading to a central pedestal -- perhaps a place for the priest or sacred receptacle to receive the blood from above. On my way back through the shaft, I made what could be my most significant find. An <em>intact</em> stone tablet, containing Arabic and Coptic inscriptions in addition to the strange language we have encountered elsewhere. I enclose sketches of the temple layout. (These are enclosed).</p> </blockquote> <p>Note: if you know the factory plans you can see it follows the same layout as the sacrificial chamber</p> <blockquote> <p><strong>Handout: 2 months later, England</strong></p> <p>I have left the dig in the capable hands of my team, and have returned to England bearing the new tablet. The Arabic text was translated for me thus:</p> <pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>This is the home of the people </span><span>who are delivered from their hunger </span><span>by the flesh of swine </span><span>long may these words be its prison </span></code></pre> <p>the tablet appears to be a multilingual sign that would have been displayed at the entrance. Its message is rather banal -- though on reading the words I must admit a stirring within me -- but a comparison between the arabic, the coptic and the original text should allow us to unlock other secrets as did the Rosetta stone for ancient Egyptian. I will redouble my efforts with the original tablets armed with new knowledge.</p> </blockquote> <blockquote> <p><strong>Handout: December 1926, England</strong></p> <p>As I unlock the secrets of the tablets, I have become certain that the warnings of the scholars, which I had dismissed as so much foolishness, were terrifyingly correct. Each night I am wracked by dreams of bloody slaughter, and each day I draw no nourishment from food save for meat. I dare not spend time amongst other people lest I lose control; I am confined now to my study. My one glimmer of hope is in the continuing translation of the tablets -- the ancients were afflicted with this same hunger, yet they had developed techniques and rituals with which to suppress it. These measures eventually failed, but they bought considerable time. And the tablets hint at a great ritual to imprison the hunger forever, using their language itself as its prison...</p> </blockquote> <blockquote> <p><strong>Handout: May 1927</strong></p> <p>I feel a great clarify in my mind -- how foolish and ignorant I was before! Such sights have I beheld in my dreams...</p> <p>(the remainder is nonsense, until...) <!-- TODO: Make the below a made up language. --></p> <p>𓀀 𓀁 𓀂 𓀃 𓀄 𓀅 𓀆 𓀇 𓀈 𓀉 𓀊 𓀋 𓀌 𓀍</p> <p>(A series of unintelligible signs in an unknown language. You feel hunger stirring within you. <strong>1/d3 horror.</strong>)</p> </blockquote> <h1 id="spells">Spells</h1> <h2 id="mesmerise">Mesmerise</h2> <p>This is <em>Dominate</em> from the CoC rulebook.</p> <p>Opposed POW roll.</p> <p>Miriam controls your actions. She has to look into your eyes in order to initiate but from then on the link is psychic. Must recast each round.</p> <h2 id="contain-the-hunger">Contain the Hunger</h2> <p>This is <em>Dismiss Deity</em> from the CoC rulebook.</p> <p>The Hunger has POW300, so 12MP is necessary to open the way.</p> <p>Cost: 1MP per participant Casting time: 1 round per participant</p> <p>Hunger can attempt Mesmerise whilst being dismissed.</p> <p>Each further MP sacrificed increases dismissal chance by 5%.</p> <h1 id="adversaries">Adversaries</h1> <h2 id="miriam">Miriam</h2> <p>Ghoul with <em>Mesmerise</em>.</p> <p>Could be accompanied by other ghouls or have stats buffed as needed.</p> <p>She can mesmerise any number of people so she could be assisted by mind-controlled humans.</p> <h2 id="the-entity">The Entity</h2> <p>Use stats for something big e.g. Yog Sothoth. But it can't physically manifest. It will try to control you during the ritual so you must resist its POW.</p>