A downloadable asset pack

Buy Now$12.99 USD or more

Your game tells Arras what happened. Arras weaves it.

A recap screen no two players share: the playthrough worked as an embroidered frieze, with a vignette for every act, border bands running the whole length, and a titulus over each panel. It is drawn entirely in GML at run time. There is not one sprite in the package.

my_hanging = arr_create({ title: "The Eldmere Hanging", run_key: "save-slot-1" });
arr_weave(my_hanging, "THE OATH AT ROVEN", "oath", { figures: 3 });
arr_weave(my_hanging, "THE BURNING OF THE MILL", "fire");
arr_weave(my_hanging, "THE DEATH OF SER BRAXA", "death", { figures: 3, weight: 2 });
arr_recap_draw(my_hanging, 32, 32, room_width - 64, room_height - 64);

That is the whole minimum. Three calls and a draw.

What it gives you

  • Twelve scenes - battle, journey, ship, hall, death, oath, fire, crowning, bargain, siege, harvest, omen. An act picks its own scene from its titulus if you do not name one.
  • Ten poses and a figure rig that carries every scene, from one to six people a panel.
  • Six dye lots and six border bands. The run key decides the wool, the band, where each figure stands and which stance it takes, so two save files are two different hangings.
  • Three ways to draw it - a recap screen that lays a long run out in courses, a scrolling frieze, and a single vignette for a chapter break. Plus a credits roll and a bake-to-sprite.

Measured, not estimated

The in-engine suite works 144 vignettes (12 scenes x 6 crowd sizes x 2 run keys) and finds 70 of them distinct on an occupancy signature. The remaining repeats are honest ones: the ship clamps its crew at four, and scenes that keep the middle clear place two crowd sizes identically. Every count on this page is re-derived from the run that built the package.

How it is drawn

Every filled shape is a scanline rather than a triangle fan, so concave shapes - hulls, crescents, arch rings, shrouds - fill correctly. Laid work is a scanline: parallel threads across the shape, tied down by a darker thread every few rows. That is why it reads as needlework and not as flat vector art, and why lightness is carried by thread spacing rather than line width, which survives being drawn small. The fourth image on this page shows the individual threads and their couching ties at about four times the size a panel draws them.

Tested

  • Igor package build clean on the shipped source, and proven able to fail on it.
  • 97 in-engine assertions on a real built exe.
  • 50 more in a blank project that installed the package the way you will, asserting that each draw call puts ink on the page and leaves none outside the rectangle it was given.
  • 104 adversarial calls - undefined, negative, huge and wrong-typed arguments against every documented function - with zero crashes. Every public function refuses bad input rather than throwing in your draw event.

Requirements

GameMaker 2024.14 or newer (built and tested against runtime 2024.14.4.268). Pure GML: no extensions, no DLLs, no external dependencies. Import the .yymps, open rm_arr_demo, press Play.

One commercial licence, unlimited games, no attribution required.

AI disclosure: the code and the generated artwork in this package were produced with AI assistance. Every image on this page was rendered by the product itself. There is no audio and no third-party art beyond the bundled Open Sans fonts (Apache-2.0, notice included).

Purchase

Buy Now$12.99 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $12.99 USD. You will get access to the following files:

Arras_GameMaker.zip 600 kB

Development log

Leave a comment

Log in with itch.io to leave a comment.