A downloadable asset pack

Buy Now$7.99 USD or more

Hide a picture from your game under a veil and let the player cut it away. Unveil is a Qix-style minigame for GameMaker: the player walks the edge of the revealed land and cuts lines into the veil; close a cut back onto revealed land and every region with no creature in it is claimed, breaking away to show the picture underneath. Your picture, any sprite or surface. Pure GML.

A creature drifting in the veil that touches the cut, or a spark running the edge that touches the player, costs a life. Reveal the target share to win. Use it for a reward screen, a portrait or a map to uncover, a story card, a bonus round, or a whole arcade game.

// Create: open a game over your own picture (the same seed always plays the same game)
my_scene = unv_open({ picture: spr_my_picture, seed: "harbour", veil: "silk", target: 75 });
// Step: run it; when the player leaves, read the result
unv_step(my_scene, device_mouse_x_to_gui(0), device_mouse_y_to_gui(0));
if (unv_closed(my_scene)) { my_result = my_scene.result; unv_free(my_scene); my_scene = undefined; }
// Draw GUI: the scene is 816 x 624 at scale 1; draw it anywhere, at any scale
unv_draw(my_scene, 0, 0, 1);

What your players see

  • Eight veils, each a different material, drawn by the package from a seed: draped silk under a woven damask lattice, frosted glass grown with ice ferns, black lacquer with gold wave scales, velvet with a soft pile, washi paper printed with a hemp-leaf pattern, rolling smoke, an ink wash, and leaded stained glass. The same seed draws the same veil; another seed draws another one.
  • Seven creature forms in each veil's own palette (56 looks): a many-armed wisp, a jellyfish, a moth, a star, an eye, a comet and a spore. Radial forms spin; the jellyfish, the moth and the comet point the way they travel.
  • Eight spark styles, one belonging to each veil (an ember, a snowflake, a fleck of gold leaf, a firefly, a paper pinwheel, a will-o'-the-wisp flame, a drop of seal ink, a prism), and any of them runs on any veil.
  • The claimed veil breaks and falls away in pieces that pop, tumble, turn over and fall in a wave from where the cut closed. The winning cut brings the whole remaining veil down before the results come up. The fall never touches the game: it plays the same with it on or off.
  • The cut is a gilt seam with a glow, the trail a glowing thread, and the band along the top shows the veil's name, the share revealed against the target, and the lives left. No image file is loaded.
  • Arrow keys and Shift (or Z, Space, Enter) to cut, or press and hold the mouse to steer and cut; a cut that stops a cell or two short of revealed land closes onto it. On mobile exports a first finger reads as GameMaker's mouse, though we have only built and tested Windows.

Built to plug in

  • Five calls: unv_open, unv_step, unv_draw, unv_closed, unv_free. The result says whether the player won, lost or walked away, with the share revealed, cuts and hits. What a win unlocks is your game's business.
  • Choose the seed (a word or a number), the veil, the creature form, the spark style, the target (10 to 95%), lives, how many creatures and sparks, the fall on or off, whether Escape may leave, and a sound hook (cut, claim, hit, won, lost). Scripted input for tutorials, replays or attract modes.
  • The rules are callable on their own (pure GML, no drawing): create a game, move, tick, claim, percent, results. Every drawing function is public too.
  • Opening a game costs the veil's drawing, once: from about 55 to 115 ms (ink wash, frost, washi) to 1.4 to 2.2 s (lacquer) on our shared test machine. Open behind your own transition; the demo shows a "Weaving the veil" card first. After that the veil is redrawn only when land is claimed.
  • Raw, readable source with a header on every public function. THE VEILED GALLERY demo room: eight framed veils, one of each material, each hiding a picture; a frame you unveil keeps its picture on the wall.

Tested

  • Igor package build clean on the shipped source, and proven able to fail.
  • 215 in-engine assertions on a real built exe, held to our RPG Maker MZ original run in Node: 8 whole games played by the MZ edition's own scripted player and replayed frame for frame (21,505 frames, 7,156 moves, 183 checkpoints of the player, every creature, every spark and a hash of every cell), all exact.
  • Every veil, all 56 creature looks and all 64 spark looks drawn and inked; the scene played to a win by scripted input, the falling veil, leaving, a surface as the picture.
  • A blank project that installed the package the way you will and ran the Readme's own code, with ink counted on everything it drew (34 checks).
  • 156 adversarial calls against the documented functions with zero crashes.

Requirements

GameMaker 2024.14 or newer (built and tested against runtime 2024.14.4.268, VM, Windows). Pure GML; no shaders, no extensions, no DLLs, no sprites to import. Import the .yymps, put rm_unv_demo first, press Play: THE VEILED GALLERY. Unveil makes no sound of its own; hook your own in.

One commercial licence, unlimited games, no attribution required. Everything the package draws in your game is yours to ship, including on your store page and in your trailers.

Paid, from the same studio

  • Unveil for RPG Maker MZ ($7.99): the original, run from an event.
  • Jigsaw ($9.99): any picture cut into a generated jigsaw on a drawn table, for GameMaker.
  • Escapement ($11.99): clockwork gear-train puzzles generated from a seed, for GameMaker.

More GameMaker systems at csaf.itch.io.

AI disclosure: the code, the cover (drawn by a script) and the interface text were produced with AI assistance. Every screenshot and the GIF were rendered by the product itself. Type: Cinzel and Alegreya (SIL OFL 1.1), notices included.

Purchase

Buy Now$7.99 USD or more

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

Unveil_GameMaker.zip 515 kB

Development log