I've detailed my engine both after driving it and first thing in the morning when it's cold....honestly no difference.
What makes the difference are the products and tools you use.
I like to DOUSE the motor, sometimes I use half a brand new bottle with my favorite engine degreaser:
Let it sit for about 15-20 mins. Do not water the motor before. Just spray it directly on when the motor is dry.
Rinse it all off(a pressure washer would be IDEAL) and let it air dry or use an air compressor. Repeat the steps in the super greasy/dirty areas.
To finish it off, I use this stuff and apply it pretty generously:
Here is my engine after taking the steps and using the products I mentioned above: