diff --git a/content/download.md b/content/download.md
index 75155dd..d42c537 100644
--- a/content/download.md
+++ b/content/download.md
@@ -3,7 +3,7 @@ title: "Download"
draft: false
toc: true
---
-# Latest Release: v0.13.0 (May 8, 2022)
+# Latest Release: v0.13.1 (Oct 10, 2022)
[Change History](/guidebook/changes.html)
@@ -16,8 +16,8 @@ start the game.
**Note:** I do not yet have a code signing certificate for the Windows release,
so you may need to click through the "Unknown Publisher" dialog.
-* **64-bit:** [sketchymaze-0.13.0-windows-64bit.zip](https://download.sketchymaze.com/release/v0.13.0/windows/sketchymaze-0.13.0-windows-64bit.zip) (23 MB)
-* **32-bit:** [sketchymaze-0.13.0-windows-32bit.zip](https://download.sketchymaze.com/release/v0.13.0/windows/sketchymaze-0.13.0-windows-32bit.zip) (23 MB)
+* **64-bit:** [sketchymaze-0.13.1-windows-64bit.zip](https://download.sketchymaze.com/release/v0.13.1/windows/sketchymaze-0.13.1-windows-64bit.zip) (43 MB)
+* **32-bit:** [sketchymaze-0.13.1-windows-32bit.zip](https://download.sketchymaze.com/release/v0.13.1/windows/sketchymaze-0.13.1-windows-32bit.zip) (43 MB)
---
@@ -33,8 +33,8 @@ you're expected to know how to run apps from unverified developers. See
[Apple's documentation](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/11.0/mac/11.0)
how to do this for your version of macOS.
-* **Intel 64-bit App:** [sketchymaze-0.13.0-macOS-x64.dmg](https://download.sketchymaze.com/release/v0.13.0/macos/sketchymaze-0.13.0-macOS-x64.dmg) (32 MB)
-* **Zip file for Intel Macs:** [sketchymaze-0.13.0-macos-x64.zip](https://download.sketchymaze.com/release/v0.13.0/macos/sketchymaze-0.13.0-macos-x64.zip) (22 MB)
+* **Intel 64-bit App:** [sketchymaze-0.13.1-macOS-x64.dmg](https://download.sketchymaze.com/release/v0.13.1/macos/sketchymaze-0.13.1-macOS-x64.dmg) (55 MB)
+* **Zip file for Intel Macs:** [sketchymaze-0.13.1-macos-x64.zip](https://download.sketchymaze.com/release/v0.13.1/macos/sketchymaze-0.13.1-macos-x64.zip) (43 MB)
---
@@ -46,8 +46,8 @@ The easiest cross-distro way to download _Sketchy Maze_ is via [Flatpak](https:/
which is well supported on most popular Linux distributions including Fedora, Ubuntu,
Debian and others.
-* **64-bit:** [sketchy-maze-0.13.0.flatpak](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze-0.13.0.flatpak) (13.1 MB)
-* **ARM aarch64:** [sketchy-maze-0.13.0-aarch64.flatpak](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze-0.13.0-aarch64.flatpak) (13.1 MB)
+* **64-bit:** [sketchy-maze-0.13.1.flatpak](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze-0.13.1.flatpak) (31 MB)
+* **ARM aarch64:** [sketchy-maze-0.13.1-aarch64.flatpak](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze-0.13.1-aarch64.flatpak) (31 MB)
There is not a Flatpak repository for this game yet; inclusion on
[Flathub](https://flathub.org/) or a custom Flatpak repository for easier
@@ -58,10 +58,10 @@ To install the Flatpak manually:
```bash
# Download the .flatpak package. NOTE: it's distributed as a stand-alone app
# for now, a flatpak repo will be added at some point.
-$ wget https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze-0.13.0.flatpak
+$ wget https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze-0.13.1.flatpak
# Install the .flatpak package.
-$ flatpak install --user sketchy-maze-0.13.0.flatpak
+$ flatpak install --user sketchy-maze-0.13.1.flatpak
# Run it. There should also be a standard app launcher in your menu.
$ flatpak run com.sketchymaze.Doodle
@@ -71,15 +71,15 @@ $ flatpak run com.sketchymaze.Doodle
### Fedora (.rpm)
-* **64-bit:** [sketchy-maze-0.13.0-1.x86_64.rpm](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze-0.13.0-1.x86_64.rpm) (21 MB)
-* **32-bit:** [sketchy-maze-0.13.0-1.i386.rpm](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze-0.13.0-1.i386.rpm) (21 MB)
-* **ARM aarch64:** [sketchy-maze-0.13.0-1.aarch64.rpm](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze-0.13.0-1.aarch64.rpm) (21 MB)
+* **64-bit:** [sketchy-maze-0.13.1-1.x86_64.rpm](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze-0.13.1-1.x86_64.rpm) (41 MB)
+* **32-bit:** [sketchy-maze-0.13.1-1.i386.rpm](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze-0.13.1-1.i386.rpm) (41 MB)
+* **ARM aarch64:** [sketchy-maze-0.13.1-1.aarch64.rpm](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze-0.13.1-1.aarch64.rpm) (41 MB)
### Ubuntu & Debian (.deb)
-* **64-bit:** [sketchy-maze_0.13.0_amd64.deb](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze_0.13.0_amd64.deb) (21 MB)
-* **32-bit:** [sketchy-maze_0.13.0_i386.deb](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze_0.13.0_i386.deb) (21 MB)
-* **ARM aarch64:** [sketchy-maze_0.13.0_arm64.deb](https://download.sketchymaze.com/release/v0.13.0/linux/sketchy-maze_0.13.0_arm64.deb) (21 MB)
+* **64-bit:** [sketchy-maze_0.13.1_amd64.deb](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze_0.13.1_amd64.deb) (41 MB)
+* **32-bit:** [sketchy-maze_0.13.1_i386.deb](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze_0.13.1_i386.deb) (41 MB)
+* **ARM aarch64:** [sketchy-maze_0.13.1_arm64.deb](https://download.sketchymaze.com/release/v0.13.1/linux/sketchy-maze_0.13.1_arm64.deb) (41 MB)
**Notice:** the game depends on SDL2, SDL2-ttf and SDL2-mixer but the .deb package doesn't declare these
dependencies for compatibility between Debian and Ubuntu which name these packages distinctly.
@@ -91,9 +91,9 @@ anywhere and run. The binary is built on a modern Fedora system and _hopefully_
should run as-is on other modern GNU/Linux systems, but sometimes shared library
versions of SDL2 may not match your computer.
-* **64-bit:** [sketchymaze-0.13.0-linux-64bit.tar.gz](https://download.sketchymaze.com/release/v0.13.0/linux/sketchymaze-0.13.0-linux-64bit.tar.gz)
-* **32-bit:** [sketchymaze-0.13.0-linux-32bit.tar.gz](https://download.sketchymaze.com/release/v0.13.0/linux/sketchymaze-0.13.0-linux-32bit.tar.gz)
-* **ARM aarch64:** [sketchymaze-0.13.0-linux-aarch64.tar.gz](https://download.sketchymaze.com/release/v0.13.0/linux/sketchymaze-0.13.0-linux-aarch64.tar.gz)
+* **64-bit:** [sketchymaze-0.13.1-linux-64bit.tar.gz](https://download.sketchymaze.com/release/v0.13.1/linux/sketchymaze-0.13.1-linux-64bit.tar.gz)
+* **32-bit:** [sketchymaze-0.13.1-linux-32bit.tar.gz](https://download.sketchymaze.com/release/v0.13.1/linux/sketchymaze-0.13.1-linux-32bit.tar.gz)
+* **ARM aarch64:** [sketchymaze-0.13.1-linux-aarch64.tar.gz](https://download.sketchymaze.com/release/v0.13.1/linux/sketchymaze-0.13.1-linux-aarch64.tar.gz)
_Sketchy Maze_ also works on Linux smartphone devices such as the Pinephone and Librem 5.
Check out the aarch64 releases, built on Mobian
diff --git a/content/faq.md b/content/faq.md
index 01347d1..a25189a 100644
--- a/content/faq.md
+++ b/content/faq.md
@@ -143,6 +143,15 @@ to the level may be offset from where the preview was on-screen. Draw some test
lines to find out the offset or else avoid drawing while zoomed. The 1 (one) key
restores the zoom level to default 100%.
+## Text sometimes gets glitchy
+
+Sometimes, the text in-game will begin to look glitchy, especially on Menu Bars
+and pop-up windows. The root cause and reliable repro steps haven't been found yet;
+I suspect it has to do with memory leaks in the way I use SDL2. If you begin to
+see text get a bit wonky, save your work and restart the game. Whatever condition
+triggers this to happen seems to eventually crash the game if it goes on for long
+enough!
+
# Pricing and Distribution
## Is this game free?
@@ -279,7 +288,14 @@ their projects.
## Is this game open source?
-Parts of it are!
+Yes!
+
+The source code to the game is available at
+with a mirror of the important repositories [on GitHub](https://github.com/SketchyMaze).
+The game engine, called "doodle," is released as open source software under the GNU
+General Public License. However, the game assets -- including the built-in doodads
+and levels -- are licensed separately, under exclusive copyright for distribution
+only with official builds of Sketchy Maze.
_Sketchy Maze_ was built from the ground up using little more than
[SDL2](https://www.libsdl.org/) which lets you plot pixels on a screen. While
@@ -312,7 +328,7 @@ GitHub mirrors of the above:
* [SketchyMaze/ui](https://github.com/SketchyMaze/ui)
Also this website, the user guidebook, and other things with the game are
-readable as open source code, at https://code.sketchymaze.com/
+readable as open source code as well.
## Wait, does _Sketchy Maze_ have a WebAssembly port?
diff --git a/content/posts/release-v0.13.1.md b/content/posts/release-v0.13.1.md
new file mode 100644
index 0000000..5bd6543
--- /dev/null
+++ b/content/posts/release-v0.13.1.md
@@ -0,0 +1,131 @@
+---
+title: "v0.13.1 Released"
+date: 2022-10-10T13:03:02-07:00
+draft: false
+---
+This release brings a handful of minor new features to the game.
+
+First, there are a couple of new Pixel Attributes available in the level editor:
+
+* Semi-Solid: pixels with this attribute only behave as "solid" when walked on
+ from above. The player can jump through the bottom of a Semi-Solid and land
+ on top, and gradual slopes can be walked up and down as well, but a steep
+ slope or a wall can be simply passed through as though it were just decoration.
+* Slippery: the player's acceleration and friction are reduced when walking on
+ a slippery floor. In the future, players and other mobile doodads may slide
+ down slippery slopes automatically as well (not yet implemented).
+* These attributes are available in the Level Editor by clicking the "Edit"
+ button on your Palette (or the "Tools -> Edit Palette" menu). The Palette
+ Editor now has small icon images for the various attributes to make room for
+ the expanded arsenal of options.
+
+![](https://www.sketchymaze.com/guidebook/images/palette.png)
+
+Doodad/Actor Runtime Options have been added:
+
+* In the Doodad Editor's "Doodad Properties" window, see the new "Options" tab.
+* Doodad Options allow a map creator to customize certain properties about your
+ doodad, on a per-instance basis (instances of doodads are called "actors" when
+ placed in your level).
+* In the Level Editor when the Actor Tool is selected, mousing over a doodad on
+ your level will show a new gear icon in the corner. Clicking the icon will open
+ the Actor Properties window, where you may toggle some of the doodad options
+ (if a doodad has any options available).
+* Options can be of type boolean, string, or integer and have a custom name and a
+ default value at the doodad level. In the Level Editor, the map creator can
+ set values for the available options which the doodad script can read using the
+ `Self.GetOption()` method.
+* Several of the game's built-in doodads have options you can play with, which are
+ documented below.
+
+New and updated doodads:
+
+* "Look At Me" is a new Technical doodad that will draw the camera's attention
+ to it when it receives a power signal from a linked button. For example, if
+ a button would open an Electric Door far across the level, you can also place
+ a "Look At Me" near the door and link the button to both doodads. When the
+ button is pressed, the camera will scroll to the "Look At Me" and the player
+ can see that the door has opened.
+* Anvils will now attract the camera's attention while they are falling.
+
+Several of the game's built-in doodads have new Actor Runtime Options you can
+configure in your custom levels:
+
+* Warp Doors: "locked (exit only)" will make it so the player can not enter the
+ warp door - they will get a message on-screen that it is locked, similar to
+ how warp doors behave when they aren't linked to another door. If it is linked
+ to another door, the player may still exit from the 'locked' door -
+ essentially creating a one-way warp, without needing to rely on the
+ orange/blue state doors. The "Invisible Warp Door" technical doodad also
+ supports this option.
+* Electric Door & Electric Trapdoor: check the "opened" option and these doors
+ will be opened by default when the level gameplay begins. A switch may still
+ toggle the doors closed, or if the doors receive and then lose a power signal
+ they will close as normal.
+* Colored Doors & Small Key Door: you may mark the doors as "unlocked" at the
+ start of your level, and they won't require a key to open.
+* Colored Keys & Small Key: you may mark the keys as "has gravity" and they
+ will be subject to the force of gravity and be considered a "mobile" doodad
+ that may activate buttons or trapdoors that they fall onto.
+* Gemstones: these items already had gravity by default, and now they have a
+ "has gravity" option you may disable if you'd prefer gemstones not to be
+ subject to gravity (and make them behave the way keys used to).
+* Gemstome Totems: for cosmetic purposes you may toggle the "has gemstone"
+ option and the totem will already have its stone inserted at level start.
+ These gemstones will NOT emit a power signal or interact normally with
+ linked totems - they should be configured this way only for the cosmetic
+ appearance, e.g., to have one totem filled and some others empty; only the
+ empty totems should be linked together and to a door that would open when
+ they are all filled.
+* Fire Region: you may pick a custom "name" for this doodad (default is "fire")
+ to make it better behave as normal fire pixels do: "Watch out for (name)!"
+
+Improvements in support of custom content:
+
+* Add a JavaScript "Exception Catcher" window in-game. If your doodad scripts
+ encounter a scripting error, a red window will pop up showing the text of
+ the exception with buttons to copy the full text to your clipboard (in case
+ it doesn't all fit on-screen) and to suppress any further exceptions for
+ the rest of your game session (in case a broken doodad is spamming you with
+ error messages). Cheat codes can invoke the Exception Catcher for testing:
+ `throw ` to show custom text, `throw2` to test a "long" message
+ and `throw3` to throw a realistic message.
+* Calling `console.log()` and similar from doodad scripts will now prefix the
+ log message with the doodad's filename and level ID.
+
+There are new JavaScript API methods available to doodad scripts:
+
+* `Self.CameraFollowMe()` will attract the game's camera viewport to center
+ on your doodad, taking the camera's focus away from the player character.
+ The camera will return to the player if they enter a directional input.
+* `Self.Options()` returns a string array of all of the options available on
+ the current doodad.
+* `Self.GetOption(name)` returns the configured value for a given option.
+
+Some improvements to the `doodad` command-line tool:
+
+* `doodad show` will print the Options on a .doodad file and, when showing
+ a .level file with the `--actors` option, will list any Options configured
+ on a level's actors where they differ from the doodad's defaults.
+* `doodad edit-doodad` adds a `--option` parameter to define an option on a
+ doodad programmatically. The syntax is like `--option name=type=default`
+ for example `--option unlocked=bool=true` or `--option unlocked=bool`; the
+ default value is optional if you want it to be the "zero value" (false,
+ zero, or empty string).
+
+Minor fixes and improvements:
+
+* Add a "Wait" modal with a progress bar. Not used yet but may be useful
+ for long operations like Giant Screenshot or level saving to block input
+ to the game while it's busy doing something. Can be tested using the
+ cheat code "test wait screen"
+* Detect the presence of a touchscreen device and automatically disable
+ on-screen touch hints during gameplay if not on a touch screen.
+* Mobile Linux: mark the Sketchy Maze launcher as supporting the mobile
+ form-factor for the Phosh desktop shell especially.
+* Fix the Crusher doodad sometimes not falling until it hits the ground
+ and stopping early on slower computers.
+* Small tweaks to player physics - acceleration increased from 0.025 to
+ 0.04 pixels per tick.
+
+See the [Downloads](/download) page to try it out!
\ No newline at end of file