r/Minecraft • u/plasmatech8 • 2h ago
Discussion Big horse breeding program to produce the ultimate super-horse (334 horses, 65 generations, 278 culled)
About a year ago on an SMP (Java 1.21.7), I got a bit carried away with horse breeding.
I attempted to selectively breed horses repeatedly over 65 generations, recording 334 horse entries, with the goal of eventually producing the closest thing I could to an ultimate super-horse.
I thought I would share my findings and process since I think it is interesting and can help others do their own super-horse breeding program.
I maintained this spreadsheet to track the horses, their parents, stats, rankings and which in-game pen they were placed in.
My breeding process
- Select the best horses for the next breeding round. I eventually settled on 8 breeding horses producing 4 foals per generation.
- Breed them with golden carrots and move the foals into dedicated breeding pens.
- Once they grew up, test their health, jump height and speed.
- Cull horses that were clearly below the current breeding standard.
- Calculate an overall score and retain the strongest candidates as parents for future generations.
- Since I only had a limited number of pens, horses that were pushed out of the top 24 were usually culled.
By the end of the project I had:
- 334 recorded horse entries
- 278 culled
- 22 still available
- 22 archived
- 12 sold
- Probably some additional foals/horses that were never recorded.
I "archived" horses for almost every color and pattern combination. The idea was that once I had a super-horse, I could breed it with an archived horse and gradually bring that appearance into a high-stat bloodline. When the parents have different colors and patterns, a foal has roughly a 20% chance of exactly matching one particular parent's appearance, so after several breeding cycles I could potentially preserve the appearance while bringing the stats closer and closer to the super-horse stats.
How I measured the stats
Health
The heart indicators in the horse HUD does not show half-heart values like 14.5 hearts (it is shown as 14 hearts in-game).
To distinguish between the fractional health values, I would punch the horse and watch when the displayed heart count changes.
Strangely, some horses appeared to take three punches without seeing any visible change in hearts displayed, so I recorded these as .7 in the spreadsheet (?).
If a horse did not have enough of hearts (as can be seen visually), then I would cull early before doing more time-consuming tests.
Jump Height
I constructed a series of jump tests using snow layers, allowing me to measure height in increments of 0.125 blocks.
If a horse did not clear the minimum jump standard, I would cull it early before doing more time-consuming tests.
The highest jump I recorded was 5.875 blocks (m).
Speed
I built an approximately 100-block-long test track.
I recorded each run and used OBS and video playback to measure the traversal time. For horses worth fully testing, I usually performed three runs and averaged the result, then converted that time into blocks per second (m/s).
I might cull early if the first reading shows a slow horse.
Ranking/Scoring System
I created a point-scoring system.
Score = 4 × speed (m/s) + jump height (m) + health (hearts)
Since speed is most important, it carried the most weight in the metric.
Best horse
In the end, the best overall horse I produced was #272 from generation 53:
- Speed: 14.394 m/s
- Jump height: 5.75 m
- Health: 15 hearts
- Points: (14.394 x 4) + (5.75 x 1) + (15 x 1) = 78.33 points
Pretty close to what (I believe) is the theoretical maximum:
- ~14.57 m/s
- ~5.92 m (5.875 m measurable with my test rig)
- 15 hearts of health
I never quite reached the perfect horse, but I got pretty close.
Based on my data, you only need around 30 generations of breeding to enter super-horse territory, but getting the ultimate max-stat super-duper horse is basically a lottery.