Verdure - A Cultivation System That Draws Its Own Plants
A downloadable asset pack
Verdure is a cultivation system for GameMaker whose plants are drawn by the product. 48 hand-authored species across 8 families, each at 6 named growth stages, built from a vocabulary of 15 leaf profiles, 18 crown forms, 7 bloom forms and 6 root forms, over 8 family palettes and 48 per-species accent overrides.
There is no PNG, no sprite and no texture page anywhere in the package. Every stem, leaf, petal, tuber and taproot is stroked from primitives at draw time.
Growth is a function, not six frames
A plant is f(species, t, seed) where t runs 0 to 1. Ask for
t = 0.63 and you get the plant at 63% — not the nearest keyframe. That is why the
demo can hold LEFT and RIGHT and let you watch a carrot build itself, and why the same species is
exact at 24 px in an inventory row and at 400 px in a harvest reveal.
Roots and taproots are drawn in cutaway, below the soil line. A carrot's entire product is underground, and you can see it swell.
Quick start
// Create
reg = vrd_registry_create();
garden = vrd_garden_create(reg);
vrd_garden_plant(garden, 0, 3, 12); // plot, species, seconds to full growth
// Step
vrd_garden_step(garden);
// Draw - x, y is the SOIL LINE; plant space is +y up and the flip is handled for you
vrd_garden_draw(garden, 120, 400, 180, 3.0);
One plant anywhere:
var _list = vrd_build(corpus[i], 0.86, 1234); // species, t, seed
vrd_draw_built(_list, x, soil_y, 4.0);
What ships
- 48 species, 8 families — grain, bloom, succulent, root, vine, bramble, fungus, arbor. Six of each.
- 6 named stages — seed, sprout, juvenile, mature, flowering, fruiting — and every value in between.
- A garden loop — plots, growth spans, a clock, replanting when ripe, and rebuilds only for the plots whose stage actually changed.
- Save and load as plain structs —
json_stringifyit or fold it into your own save. Nothing derived is stored, so a garden reloads identically on any machine. - Deterministic — its own 32-bit RNG, never
random(), so saves, replays and multiplayer agree. vrd_bounds— width, height, and how far the root descends, so you can lay a plant out in your own UI without putting your text through your own artwork.- Your species is a first-class species.
vrd_registry_addappends yours to the corpus and it gets growth, palette resolution, bounds and the garden loop for free. Nothing special-cases the shipped 48. - A runnable demo room with four views, and command-line switches so you can open it straight onto any of them.
And a test harness, because GML has none
There is no headless GML runner and the compiler cannot see a type error, so a mistake in a species definition compiles perfectly and crashes on the first draw call. Verdure ships the harness for it:
var _r = vrd_selftest(reg);
show_debug_message(_r.summary); // "48 species x 6 stages - 288 checks, 0 failed"
It walks every species at every stage through palette resolution, build and bounds, and names the species, the stage and the reason for anything wrong. Run it after adding your own species — the failures it catches are exactly the ones you will hit when extending the corpus, and they are silent otherwise.
Requirements
- GameMaker 2024.x, legacy runtime. Built and verified against runtime
2024.14.4.268. - Pure GML. No extensions, no external libraries, no platform-specific code.
- Every global and macro namespaced
vrd_/VRD_— GML's global namespace is flat and a collision in your project is a support ticket nobody can debug remotely. - Import
Verdure.yymps(Tools → Import Local Package), or copy the fiveverdure_*script assets in. The demo object and room are optional. - Raw, readable, commented source. Nothing minified.
Also from Core Systems Asset Factory
Verdure owns what grows. These own the rest, and they are built to sit beside it:
| Updated | 1 hour ago |
| Published | 2 days ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Genre | Role Playing |
| Tags | 2D, Asset Pack, breeding, Farming, GameMaker, Generator, gml, procgen, sourcecode |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $14.99 USD. You will get access to the following files:







