I find that once I start coding, I almost always enjoy it. It's just very hard to START doing it. What I have done to combat this is constantly have my code open. I never close it. Even when playing games, its open in the background. A lot of times what will happen is I'll think of something small to do and since it is already open, I'll make a quick change. Then that will lead to another change. Before I know it, I've just coded for 3 hours, enjoyed my time doing it, and made a lot of progress.
Once you can get over the initial hump of STARTING, you probably already won the battle. There have been so many nights when I didn't feel like coding and just forced myself to do it anyway and then 5 hours later (when I should have been sleeping) I was still working (and enjoying it).
Yup, starting is the hardest for me. I should try what you do.
A related question for you guys, have you ever procrastinated by playing your own game you're working on? The most guiltless procrastinating I've ever done.