Skip to content

Instantly share code, notes, and snippets.

@Zarkonnen
Zarkonnen / aliens.md
Last active July 2, 2021 12:19
aliens

I'm an avid reader of the blog A Collection of Unmitigated Pedantry (ACOUP), a blog about history, economics, material culture, and speculative fiction.

In a recent series of posts about the game Europa Universalis 4, he refers to the concept of interstate anarchy, a way of describing international relations as being about the need to acquire power to guarantee survival. He then references this when describing the situation of a West African ruler having to respond to the introduction of (improved) firearms by European traders:

Even a good-hearted West African ruler (and like all rulers, many were not so good-hearted) was strategically trapped; refuse to trade enslaved people for guns and you would be defeated and traded by those who did.

This connected to another thing I've been thinking about for a long time: alternate models of how the arrival of advanced aliens might look like. In general, the expectation has been either conquest or enlightenment, sometimes a mixture of the two. These tropes have cal

@Zarkonnen
Zarkonnen / catalina.md
Last active October 14, 2019 15:40
Signing and Notarizing for Catalina

Signing and Notarizing for Catalina

Introduction

With the newest version of macOS, Apple has made mandatory some requirements for applications that were previously recommended: 64-bit executables, signing, and notarization. Applications that don't satisfy these requirements will no longer run.

This is intended to make the experience safer for end-users and prevent the spread of malicious programs, but it does also make things more complicated, especially for people who aren't primarily Mac developers but would like to support or keep supporting Macs.

I just went through figuring out how to comply with this for my game, Airships: Conquer the Skies. Airships runs in Java and hence also has to bundle a JVM, but the rest of what I learned should be applicable in general.

So here's what I learned about signing and notarization a Mac app that wasn't directly compiled by Xcode. Please note that this is cobbled-together research to make things work for me and may not be 1

@Zarkonnen
Zarkonnen / stone_desert.json
Created September 25, 2019 08:00
Example LandscapeType that overrides all generation settings
{
"name": "STONE_DESERT",
"backgroundFlavors": [
"mountain", "sea", "plains"
],
"hills": 0.2,
"treeDensity": 0.3,
"largeTreeP": 0.2,
"soil": "STONE_MIDDLE",
"rock": "ROCK",
@Zarkonnen
Zarkonnen / airships_mp.md
Created March 7, 2019 06:40
RUNNING YOUR OWN AIRSHIPS MULTIPLAYER SERVER

RUNNING YOUR OWN AIRSHIPS MULTIPLAYER SERVER

Last edited: Mar 7, 2019

If the Airships multiplayer server is unavailable, you can also set up and run your own. By having bought a copy of Airships: Conquer the Skies you are explicitly permitted to operate your own multiplayer server instances for the game. This is also to ensure that the game can keep on being played in the long term.

Note that you can always create multiplayer matches by using the Host/Join options and connecting directly to another player's IP. But if that is not possible due to NAT, or if you'd like the lobby system that the multiplayer server provides, here is how to set it up:

You will need Java installed on your machine for this.

Hi! This is a giant writeup of the design and design options that I'm considering for the next, final major Airships update. I've done my best to be thorough and detailed here, and it also means that this comes with a whole bunch of notices and caveats.

You may be tempted to just say "do the most complex and in-depth of all these options", but consider:

  • Implementing this stuff takes time. Far more time than you think. Many, many months. It has to work with multiplayer, translations, and modding. It has to be balanced and tested. The AI has to be made to work with it in a competent fashion. It has to be comprehensible to new players.
  • When considering a complex option, don't just think of a scenario where having this complexity would be cool. Also consider whether there'd be a lot of scenarios where it ends up being tedious.
  • In general, I make this game for a broad audience of players, and at any given time many of them are new to the game. Putting in features for a small core audience is a great way to

If I stopped development on Airships right now and called it done, what would you be most disappointed about?

Don't panic, I'm not doing that. But I want you to tell me what Airships with its potential fulfilled would look like to you.

This may be really obvious to you. You may be thinking "well, of course he's going to add X, because X is the obvious thing that the game needs." But I can think of many different forms X can take, and I can't do them all, and you may have different ideas from me.

If you tell me now, three months before development is scheduled to conclude, I can take it into account.

Here's a list of things I can think of that might count as fulfilling the game's potential:

END USER LICENSE AGREEMENT
PLEASE READ THE FOLLOWING END USER LICENSE AGREEMENT CAREFULLY AND IN FULL BEFORE ACCEPTING.
This End User License Agreement (EULA) is a legal agreement between __________ (BLUE OPAL WOUNDMAGGOT) and the Company (THE COMPANY), author of the Software (SOFTWARE).
1. DEFINITIONS
a) "Company" shall refer to THE COMPANY
b) "BLUE OPAL WOUNDMAGGOT" shall mean ________, the human (see Appendix II) individual (see Appendix III) currently enmeshed in this interaction.

Grids in Games: Scale and Shape

I've been thinking about the different kinds of grids of tiles and blocks used in games, which come in a variety of scales and shapes.

Scale

By scale I mean how much real-world space each tile represents, not its size on the screen.

Large

The HMS Sojourner was an experimental airship from some years back. A huge Suspendium crystal had been found in a deep mine, and the kingdom's best scientists had examined it and found it to be flawless. A crystal of this size, powered up, could lift a ship to unprecedented heights.

The Sojourner was built around the crystal, carefully cradling it in a giant frame of shock absorbers. Huge boilers and generators provided the power to energize the crystal. A team of experienced engineers tended to the engines. The captain was an experienced, steadfast man.

The maiden flight of the Sojourner: A gaggle of naturalists brought nets and sketchbooks to capture the inhabitants of the far skies. A cadre of natural philosophers brought their instruments and theories. A priest lobbied, successfully, to be permitted on board. All were clad in wool and leather to ward off the wind and the cold.

The fires were stoked, the boilers hot, the generators turning. A few smaller Suspendium chambers brought the ship to a comfort

@Zarkonnen
Zarkonnen / hex_support.md
Created December 27, 2016 17:18
Hex Support

I am awakened by a buzzing sound from somewhere beneath my coat. I stretch, carefully, the straw poking into my legs. The chill of night has not descended entirely yet, and I can still see some glow from the fire at the other end of the hall. I nevertheless rub my hands for a few moments, making sure they are warm enough. These autumn mornings, my sinews have taken to sticking and seizing like old rope.

The buzzing repeats itself, and I peel away my coat to find the little cage with the bug inside. I gently rap against the cage, and the bug settles down. Its scowling face stares at me briefly and then tucks itself under a wing. I stand up and put on my coat. Thomas and Frederick are still asleep next to me, which is good. I can pick out a path to the door between the sleeping bodies, and Frederick will be no more unpleasant to me than usual when we break our fast.

Once outside, I delicately shut the door again, step over the nightsoil, and look up. Yes, there's light in the keep. The master is still up, cur