Hazarth, this is how I've felt pretty much 99% of the time I've spent programming since I started programming seriously in 1998.
My biggest issues have been having to learn ad-hoc (i.e. trial-and-error, random reading, and so on... not much structured/organized academia at all), as well as tackling projects that were far beyond realistic considering my knowledge and capabilities. And, as Codehead mentioned, burnout has been a huge factor in things (especially when I've hit one ridiculous problem, spending hours upon hours cursing at my monitor, only to give up in frustration... then, when I finally got the gumption to come back a day or two afterward, fix the problem within 20 minutes of starting).
It's only in the past week or so that I've had much time and energy to get back into it since I got my own place... the last time I spent a full day programming anything was in September 2012. Life got hectic -- when I had time, I had no energy... when I had energy, I had no time. The solution to that was for me to lose work, and be unable to afford gas to drive myself anywhere. LOL
Sometimes, I think it helps to build a small portfolio of stupidly simple projects... for example, I've started working on an interactive fiction project... something I've done in the past, with full string parsing and interpretation and all... but, this go-round, I'm sticking to simpler things -- multiple-choice options, instead. These are popular nowadays in mobile gaming (and has essentially revived interactive fiction) -- you get a few paragraphs of story, then a few options... picking one progresses the story accordingly. With a simple framework, you could focus more on content -- rather than spend hundreds of hours pounding on code, you can spend time adding on to a project that already works... adding more content, splitting it into subprojects (some mobile interactive fiction games actually are rather short, but the stories continue in additional volumes that come out, for example, once a month)... this way, you actually have the gratification that comes with a complete (albeit simple) product.
Also, working on game-related software is an option -- relatively simple things like role-playing tools (dice rollers, character generators, map generators, and such), or other types of gaming aids. Many people find these types of tools handy, and depending on the nature of the application, are pretty straightforward and don't take up too much time to develop.
One last note -- these days, most developers are gravitating toward, and relying upon, third-party software for development... using kits like Unity, Unreal Engine, or what have you. These days, most games have become so content-heavy that making a modern-class game is almost impossible without getting some outside help (though there are some one-to-two-head developers making pretty snazzy stuff with Unity). I'm not sure what kind of games you're dealing in, or what languages/development kits you're working with, so there's not much else I can offer beyond that.
Edit -- Oh, and one more thing, as far as forcing yourself to program... really, programming is a labor of love. For me, I can quit programming all I want (I have often wanted to do so in the past, as I've been so frustrated by it continually)... but some nefarious compulsion keeps dragging me back to the IDE, kicking and screaming. It may be easier to not worry about the implications of forcing yourself to keep doing something you can't keep yourself away from.
I don't believe in luck. What I do believe in is that s*** happens.