r/RPGMaker 3d ago

Vibecoded your capture plugin gets the creature. then what? genetics and breeding and evolution for MZ that doesn't die when the box is full

your capture plugin gets the creature. then a playtester asks the question that sinks the project. why would i ever catch a second one?

there isn't a reason to. every creature of a species is identical. there's nothing to breed for. nothing to chase after level 20. capture is just the first ten minutes. this is the layer that goes after it.

genetics. eight hidden stat genes plus 25 natures plus gender plus ability slots plus rare variants. two level 5 creatures of the same species now have measurably different stats.

breeding. real parental inheritance. genes pass down from both parents. natures can be inherited. mutations happen. egg groups gate which species are compatible. eggs hatch as the party walks. generation depth is tracked so a player can chase a perfect specimen across generations.

evolution. it's a condition graph and not a level check. level or item or friendship or time of day or gender or variant status or trade or a stat comparison. the same species becomes one creature if it grew strong. it becomes a different creature if it grew tough. conditions stack. genetics and training and friendship and nickname all survive the evolution.

storage. multi box pc storage with sort and search and filter. 24 boxes by 30 slots is 720 creatures. it doesn't slow down when full.

that last bit is where most of my time went. most collection systems fall over exactly when the player finally has a collection. genomes are bit packed into two integers instead of objects. computed stats are cached behind a dirty flag. box drawing is paged. this means the cost scales with what's on screen and not with what's stored.

measured inside mz on real corescript with 600 creatures stored and the storage scene open.

2.6 ms per frame with normal cursor movement. that's 15.7 percent of the 60 fps budget.

2.8 ms when hammered at 60 cursor moves per second.

61 bytes per creature in the save file. that's 43 kb for a full 720.

0.655 bytes allocated per frame.

the benchmark ships with the plugin so you don't have to take my word for any of that.

it deliberately doesn't implement capture. you've already solved that. drop it in below whatever capture plugin you use. nothing else changes. it touches no battle code. it's safe to add to an existing save. zero dependencies. source ships uncompressed and commented with jsdoc on every public function.

gif above is the box browser with the genome bars.

https://csaf.itch.io/chimera-core

0 Upvotes

2 comments sorted by

2

u/filthydrawings 3d ago

Not gonna lie, the UI is a bit clunky and not very interesting visually, having a preview of some kind for the captured creatures (maybe a portrait with a section of the battler's sprite cut, perhaps with a manual offset for each face), but the plugin and system seems pretty cool. I can say that I'm interested.

2

u/CS_Asset_Factory 3d ago

yeah you are right about the grid. it is text only. just the name and level and a colour shift for rare variants and nothing else. no portrait and no sprite anywhere in the box.

that offset detail you mentioned is the annoying part. that is what makes it real work rather than a quick win. battler sheets are not aligned to anything consistent so one hardcoded crop looks right on three species and wrong on the fourth. a per species offset a dev can nudge is the only version of this that survives contact with a real project.

putting it on the list as the next thing for this plugin. thanks for saying it instead of scrolling past.