Being an indie developer comes with alot of challenges, be it the workload or struggle to get noticed. I faced a ton of them on my most recent project. But I wanted to share my thoughts specifically about the more personal challenges faced during solo development - Laziness, Confidence, and your Environment.
I think for any normal human, procrastinating when you're under your own supervision is standard behaviour. Even though you most likely have a VERY good reason to be embarking on this self-motivated journey, you generally don't have the constant reminder along the way (like a boss or producer breathing down your neck). It's easy to get into a habit of checking Facebook or forums, you may even start rationalising it as if they're useful tasks for "research purposes".
So the first clue to beating it is there - the constant reminder. Every time you encounter something that is the reason you went indie, write it down. Build a collection of motivations and think of ways to keep them visible.
Having many different possible tasks to do at any one time can also help. The mind WANTS TO procrastinate and do something other than the task you were meant to do, so embrace that and let yourself work on something else. Eventually you’ll get another significant task that needs doing, and at that point your mind will want to do the thing you were originally meant to do! ;)
Another advantage to having many different things to do is, you can *start* each of them with real inspiration (the kind you only get when you really want to do something), and get a better overall quality. We all get lazy, and if you do things in order, you’re likely to do the first stuff *really* well and the later stuff noticeably lower in quality. If making levels for example, and you let yourself start each one when you’re inspired, then even if you only complete a small amount, you’ve set the quality bar for yourself and all you have to do is continue it. Personally I’m very susceptible to this kind of laziness, so this approach is essential for me.*
* Disclaimer: don’t leave too long a gap when continuing previously started tasks. If you do, you can completely forget how you were doing things. Even if you can remember, you will be slower. So try to make that balance between sharing your time on various tasks, without leaving big gaps between them.
Even the most confident person can struggle against the tirade of articles on the internet that are so damning towards indie game development. You've probably read that "0.1% of devs make money on iOS" statement in a few places, among other deflating stats. Add to that the occasional negative attitudes from people you talk to, or lack of support, and depending on how your current progress is going, you might just quit.
Battling your own confidence is tough. I haven't mastered it, but I can share a couple of things that helped me.
This might not sound like it's not really "battling against yourself", but it IS ultimately up to you how you handle pressure from things happening around you, so here it is.
If you're solo, there's a good chance you'll be working from home. This comes with yet more challenges for you to manage. Easiest way of course is to get an office away from home, but that's not always an option.
Regarding the anxiety - I can share my own experiences and what I think helps, but I'm not a psychologist so take this with a grain of salt. I think it comes down to:
Easier said than done, I know. Desk work on its own sometimes isn't enough to keep your mind occupied. I eventually got around it over a couple of years by making sure there were other commitments (away from the desk) and by willingly putting myself into situations I wasn't comfortable with (in small doses). Sport is a good option I think, if you can. The practice I mentioned earlier, about building confidence by watching people playing your game, that can help too. Moving somewhere new helps for some people (even if only temporary).
There are other personal challenges to face as a solo dev of course, but those are the ones that affected me and I’ve felt not many people write about.
To finish off, I’d just like to add that, even as a semi-successful solo dev I would say to think seriously about working with other like-minded people. Even with a decade of commercial experience, I don't think I really knew as much as I should when I began Swing Racers on my own. And that's having come from a variety of jobs too, where I'd learnt a lot about most roles in game development. I took the leap anyway and quality definitely suffered in some areas as a direct result. But perhaps a little bit of “naiveness” is required? If I knew everything, I wouldn't have jumped in.