A downloadable asset pack

Buy Now$12.99 USD or more

A hot-metal forging minigame for your GameMaker crafting. The player works a glowing bar on the anvil toward a pattern generated from the weapon itself, reads the heat by the colour of the metal, reheats it in the hearth and quenches it at cherry red. The finished piece is drawn exactly as they shaped it, and a quality score goes back to your game. Pure GML, no image files.

Most crafting ends in a progress bar. Anvil is the step where the player actually makes the thing. Name a weapon the way your database does and the pattern is generated from it: the type picks the family (sword, dagger, axe, spear, mace, claw), the name picks the metal (steel, iron, bronze, mithril, blacksteel), the seed and attack pick its proportions. Every weapon in your game forges to its own silhouette.

my_target = anv_weapon("Mithril Sword", "Sword", 40, "Light as a feather");
my_forge = anv_scene_create(my_target, { difficulty: "normal", min_quality: 65 });
// Step:     anv_scene_step(my_forge);
// Draw GUI: anv_scene_draw(my_forge, 0, 0, display_get_gui_width(), display_get_gui_height());
// when anv_scene_done(my_forge): anv_scene_result(my_forge).quality, .grade, .cleared
my_icon = anv_blade_sprite(my_target, my_forge.forge, 96, 32);   // the piece as they made it

What your players see

  • A smithy drawn in code: stone wall, timber floor, a brick hearth full of coals, a quench trough, firelight, and the anvil seen from above with its horn, face and feet.
  • A bar that behaves like metal: each blow moves it toward the chalked pattern, more at white heat and finer as it cools; struck where it is already right it overshoots; struck too cold it cracks. Hammer facets and fire scale show on the bar.
  • The colours of the iron: the bar and its glow are tinted by the heat every frame, black to blood red to cherry to orange to white, and a brass pointer rides the colour chart on the wall.
  • Sparks, the hearth and the quench: sparks off every blow, the bar slides into the fire to reheat, then travels into the trough with steam rising.
  • The finished piece is theirs: their profile ground smooth and polished in its metal, their facets and cracks, a grip, guard and pommel, a haft and socket, or a haft through the eye, generated for its family. Keep it as a sprite for your inventory.

Built to plug in

  • A struct you step and draw into any rectangle; it reads the keyboard and mouse itself, or takes your own bindings through anv_input(...).
  • The result: quality 0 to 100, grade (Crude, Serviceable, Fine, Masterwork), the quench colour, blows, heats and cracks. Easy, normal and hard set the heats allowed and how fast the metal cools.
  • Each step raises events (strike, crack, reheat, quench, finish, leave) so your game plays its own sounds. Anvil ships no audio.
  • The forging model runs without the screen too, for a crafting system of your own design.
  • Baked once and drawn scaled: the shared smithy bakes in 0.6 to 0.9 s the first time (move it to a loading screen with anv_cache_build()), the bar re-bakes on each blow in 16 to 22 ms (measured on our machine, VM runtime).

Tested

  • Igor package build clean on the shipped source, and proven able to fail.
  • 44 in-engine assertions on a real built exe, held to our RPG Maker MZ original run in Node: 50 forging targets sample for sample, three whole forgings blow by blow (every blow, mark, crack, quench and score identical), and 29 drawn things with exactly the original's drawing operations (3,584 of them).
  • 29 more in a blank project that installed the package the way you will and ran the Readme's own code.
  • 96 adversarial calls against the 24 documented functions with zero crashes.

Requirements

GameMaker 2024.14 or newer (built and tested against runtime 2024.14.4.268, VM). Pure GML: no extensions, no DLLs, no shaders, no sprites. Import the .yymps, open rm_anv_demo, press Play: a stock armoury of twelve weapons to forge from, and a rack for the pieces you make. Anvil makes no sound.

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

  • Anvil for RPG Maker MZ ($12.99): the original, with its own plugin command and scene.
  • Armoury ($14.99): weapons that draw themselves from what they are made of and what they have done, for GameMaker.
  • Athanor ($9.99): alchemy, discovered recipe by recipe, for GameMaker.
  • Wanted ($12.99): every bounty prints its own poster, for GameMaker.

More GameMaker systems at csaf.itch.io.

AI disclosure: the code, the generated artwork and the interface and sample text in this package were produced with AI assistance. Every store image, the cover and the GIF were rendered by the product itself. Type: Libre Baskerville (SIL OFL 1.1), notices 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:

Anvil_GameMaker.zip 783 kB

Development log

Leave a comment

Log in with itch.io to leave a comment.