Pokemon breeding was implemented in in the second generation of Pokemon and has only become more complicated since then. To breed, all one must do is drop off two compatible pokemon at the 'daycare center' and walk around. Come back later and, bam, an egg just waiting to hatch. Casual players won't realize how complicated this system becomes when you figure in Effort Values, Individual Values, inheritable moves, and natures. Natures were added in the third generation. On the surface they appear to be descriptive fluff, but each nature coincides with a 10% bonus to one stat and detraction from another.
Back in the third generation I tried my hand at Pokemon, trying to get a perfect Chansey. I ended up with boxes full of them, gave them away, released 'em into the wild. Then I realized it was a massive waste of my time and stopped doing it. I was never going to be in a scenario where my Blissey needed a 5% defensive advantage over a perfectly-trained special sweeper.