Currently, and possibly for a short time, my day job.
My first complete game (Antistar: Rising) found a little success on mobile (9 years ago, almost); thought I could make it, didn't turn out so good. Spent quite a few years licking my wounds; freelance gigs then a long string of... game unrelated coding gigs. Money was good, taught me lots, but passion is a thing and having the tiniest slivers of time to work on what I love isn't ideal so I decided to give it another try.
Some lessons I learned:
- Go for the long haul. Indie game dev is often done on small but indefinitely extensible "budgets". 3 years of thrashing and trying to kick stuff out of the door is silly (done it). 3 years of regular, focused part time work can put a lot of value in a game (getting there).
- Anything goes west, cut it short. I call this the "rabbit hole syndrome" where basically something (game feature, modeling work, design issue, third party software annoyance) starts taking a lot more time than expected. It's okay to do research or take up challenges, but heavy stuff should be done outside game project work.
- Stick to games I enjoy making. Although I might come up with 50 game designs in a week, most of these are stuff that I'm not going to stick to anyway so I just tune down on that. A so called "game idea" might fit a lot better as a small game feature in a serious project.
I'm currently remaking my very first game (in preparation of a sequel, and with a much wider range of target platforms) which may sound a little boring but, I get attached to my projects... doing stuff over again makes it a lot easier to learn and improve : )