Some things I do to keep making progress:
- Separate short- and long-term to-do lists: One is a short notepad txt with a list of small tasks I could do in a day or less, the second is a larger document with notes, goals and ideas for later. If I run out of tasks on the short list I add something from the long list. Less intimidating that way and easier to see the immediate next step.
- Make it scalable, so that you can easily build a base game that's shippable, then if you still have time and ideas you can add more to it... This way you can bail out and call it "complete" at any time, but you can keep going as long as you want.
- Pick a concept that's rich enough to keep you inspired for the duration of the project. If it's a tiny jam game this is not important but if you're trying to build something big, make sure there's enough there to keep you interested.
- Avoid getting lost in iteration on parts you've already built. Iterate, but also move forward.
- Try procedural generation. Testing linear highly scripted games gets reaaaally boring fast. If you make some parts randomly generated it keeps things interesting, both for you and the players, increasing replayability by a lot.
- Also: get some exercise, sleep well, eat healthy and talk to people.