Descent Chronicle
A downloadable asset pack
Point it at your characters, their parents, their marriages and the dates things happened to them, and it composes the finished illuminated descent chart. Every person is a cartouche carrying a device chosen from their own calling. Every descent is drawn in the hand of the relationship. Every life event is marked along the line with its own generated glyph. Nothing in that picture is a stored image: there is no PNG, no atlas, no sprite sheet, no shader and no material anywhere in the package.
What your players see
A page. Not a debug view, not an inspector window, not a report — a drawn chart your players open, composed at runtime from a list you already have.
- 62 hand-authored forms. 24 life-event marks, 16 cartouche devices, 8 descent-line treatments,
8 border hands, 6 generation registers. Times 8 tinctures.
- The lines are the product. A descent chart is mostly line: twenty cartouches and a hundred
segments between them, so the lines cover more of the page than every glyph combined. Direct, cadet, adopted, natural, uncertain, extinct, collateral, restored — each a property of the line's whole length rather than a symbol at its midpoint, so none of them vanishes on a two-sibling gap.
- Colour is house identity. A house resolves to a tincture and a border, so one dynasty frames
and tints alike in every chart you ever draw, with nothing to configure.
It reads your words, not our enum
Calling, Descent and each event's Kind are free strings on purpose. You already have a word for these things, and renaming your fields to fit somebody else's enum is the friction that stops a tool getting used. Write abbess and you get the mitre. Write shipmaster and you get the ship. Matching is whole-word and handles camelCase, SCREAMING_SNAKE and kebab-case.
When a word is not recognised it falls back to a stable derived mark and the editor window tells you which of your words fell through, so it is never a silent guess.
The layout is the hard part, and it is solved
A genealogy is not a tree. Everyone has two parents, so the graph has diamonds. Spouses have to share a row or a marriage cannot be drawn as a horizontal. People marry twice and have children by both. Cousins marry, which closes loops. All of that is ordinary in a generated dynasty and all of it breaks a naive recursive walk.
- Generations solved by longest path, then spouse levelling so a married pair shares a band,
with descendants re-propagated.
- A twice-married person sits between both spouses — the only arrangement where neither
marriage tie crosses the other.
- Crossings reduced by barycentre sweeps that keep the best measured arrangement, not the last
one, so the result is never worse than where it started.
- Descents routed orthogonally through a bus lane per union, which is what guarantees no line
ever runs through a cartouche.
Invalid data is refused with every fault named — duplicate ids, dangling parents, and the one that hangs a naive layout: cycles.
Honest about speed
A software rasteriser costs pixels, so the numbers are measured on every compose and handed back to you rather than printed in a document. On the machine this was built on, a fifteen-person chart at 1436×924 composes in about 13 seconds, and recomposing the same chart with a warm tile cache takes about 3.5. Cartouches are cached by their derivation, so two brothers of one house with one calling cost a single rasterisation. Compose once, cache the texture, recompose when the roster changes — which is exactly what the demo scene does, lazily, after the first frame.
What is in the box
- Full readable C# source. The corpus is the product; it is meant to be extended.
- A demo scene you press Play on, and an editor window with a derivation panel and a PNG export.
- Three named assembly definitions, no
Resources/folder, no package dependencies. - Unity 2022.3+. The art is drawn on the CPU, so it is identical on Built-in, URP and HDRP.
Lettering
The chart deliberately draws no text — your font, your language, your point size. What you get instead is a real drawn recess on every cartouche and a UV rect telling you where it is, so you can lay a label straight onto it.
More from the Unity wing: Escutcheon — illustrated character sheets from your stat block · Bestiary Codex — bestiary pages from your creature rows · Boughwright — generated skill trees · Constellation Atlas · Provenance · Synthesis Web
AI disclosure. The source code and the store imagery were produced with AI assistance, and that is declared truthfully here and on every storefront. The narrower and stronger claim: no image model touched anything you can see. The cover, every gallery frame and every mark in the product are drawn in C# by the rasteriser that ships inside the package, from 62 hand-authored forms you can read and edit, with no network call anywhere in the art path. The package contains no audio, and it draws no text.
© 2026 Core Systems Asset Factory.
| Published | 6 hours ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Made with | Unity |
| Tags | Character Customization, Characters, dynasty, Fantasy, genealogy, Generator, Medieval, Procedural Generation, Unity, User Interface (UI) |
| Languages | English |
| 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 $19.99 USD. You will get access to the following files:







Leave a comment
Log in with itch.io to leave a comment.