a programming blog

Godot4 HTML5 Export Development Server

Godot 4’s HTML5 export uses WebAssembly, WebGL, and SharedArrayBuffers. Browsers require a secure context for these features to be available, which requires sending certain HTTP headers when serving the game content. For development, there are two straight-forward ways to serve the content: Godot’s Python http server and Miniserve.


Drawing Down the Moon (Review)

Drawing Down the Moon: Magic in the Ancient Greco-Roman World is an academic history of the perspective and practice of magic. Broad and detailed, Edmonds covers multiple types of magic, discussing the who, what, why, and how of each, and attempting to place the magic within the broader culture practice. Themes carried throughout include what counts as magic and how that magic might be embedded within the culture.


Range to Dice Notation

Before dice notation was adopted, early roleplaying games described dice rolls using range notation. For example, 3-18 indicated rolling three six-sided dice or 3d6 in modern notation. Converting a range to dice notation requires a little thought, so I’m going to describe a way to solve the conversion programmatically. Background Dice notation is a succinct domain specific language to represent discrete probability distributions and is heavily used in tabletop roleplaying games.


Black on Red: My 44 Years Inside the Soviet Union (Review)

Robinson after being elected to the Moscow Soviet, book page 103 Robert Robinson was a black machinist who accepted an offer from the Soviets to leave his job at the Ford plant to come to Russia to help train their machinists in the 1930s. Accepting the deal, he pursued his engineering career and invented many productivity improving tools, acquired a mechanical engineering degree, survived the Purges and World War II, and after the war, spent decades trying to leave.


Page 3 of 11