Pokémon breeding is a method of obtaining a new Pokémon by producing and hatching an Egg using the Daycare.
How To Breed
Pokémon can be bred by leaving two compatible Pokémon at the Pokémon Daycare located on Route 34 near Goldenrod, Two Pokémon are compatible if they are of the same species, or share at least one Egg Group, and are of opposite genders; alternatively, breeding is usually still possible as long as one of them is Ditto, even if the other parent is genderless.
Receiving the Egg
When there are two compatible Pokémon in the Day Care, for every 255 steps that the player takes, the game will decide whether the old man has found an Egg, with chances depending on the exact compatibility of the two Pokémon. Currently the only way to know if there is an egg available is to talk to the old man, If there is currently an egg it will show up instead of the 2 pokemon in Daycare and the player can withdraw it if there is 1 or more empty slots in the player's party.
What Will Hatch
After walking around for a while, the Egg will hatch into a level 1 first-stage Pokémon of the female species'(or non-Ditto parent's) evolutionary chain.
The time it takes for Eggs to hatch depends on the Pokémon's species' required number of Egg cycles. Magikarp is the fastest hatching Pokémon with the fewest Egg cycles required for hatching. most Pokémon take considerable time to hatch. Rare and powerful Pokémon, like Dratini, Larvitar, Aerodactyl, Snorlax, Chansey, and Eevee, among others, take a long time to hatch due to high numbers of Egg cycles required for hatching. "Time" is actually determined by Egg cycle completion, which is determined by in-game steps. An Egg cycle is a counted number of steps that activate breeding related programs in the game. One Egg cycle lasts 255 steps. After 255/256 steps are taken, the game recognizes the completion of the cycle and does a few things; the step counter for the cycles is reset to zero, the game randomly decides if an Egg is to be found at the Daycare (if compatible Pokémon are present in the Day Care at the time). If the Egg cycle count for an Egg reaches zero or a negative number, the Egg will begin to hatch. If an Egg hatches, the game stops subtracting an Egg cycle count from the rest of the Eggs in the team. Due to this no two Eggs can hatch at the same time.
Not sure if implemented - Every time an Egg is received from Daycare, the game automatically resets the Egg cycle step counter to zero, and counts as another Egg cycle completion. This can effectively cut 254 steps off the Egg hatching process for every Egg accepted from the Daycare Man (the Egg must be accepted, not rejected or denied due to a full team to reset the step counter). Although this detracts an Egg cycle from the Eggs, any Eggs ready to hatch upon this type of Egg cycle completion will be denied the ability to hatch until the next Egg cycle completion by steps, perhaps due to the dialogue between the player and the Daycare man following the pickup of an Egg. If it is restricted, it will continue dropping into the negative numbers from the Egg cycles, and will continue to try hatching if the Egg is stopped from another Egg pickup.
if any Pokémon with Flame Body or Magma Armor ability is anywhere in a player's party, it doubles the Egg cycle count reduction, effectively halving the steps needed to hatch the Egg.
A Pokémon's individual values (IV's) are also passed down to it's offspring
Currently it is possible to hatch shinies but same as with finding one in the wild it has a low chance of occurring.