Welcome, @Frutty !
Depression sucks. I’ve had family members go through it, and it’s a hard thing for people that have never gone through it to fully understand, I think. The great thing is that they don’t have to fully understand what’s going on in your head to be helpful and supportive, so use any and all resources at your disposal to get yourself back where you want to be!
Learning to write code kinda sucks. It can be hugely frustrating, overwhelming, and make you question everything you think you know about the universe. But you can do it. The key is to just do it. Much like your friends don’t have to understand you perfectly to help you through a rough patch, you don’t need to fully understand how encapsulation works to write a functioning program. Granted, the more you know, the better your code will be and the better time you’ll have in the long run, but that’s thinking far down the line.
There’s no one source I’ve found that is the perfect teacher. Rather, you should look all over the place. There are lots of free online resources, both using video tutorials and long-winded written texts. Choose what you prefer. If you like physical books, my favorite C# book is C# 4.0 The Complete Reference. But bear in mind, I didn’t read it in a vacuum… I was learning Java, PHP, Javascript, and a handful of other web technologies at the same time, and it may have been a combination of everything that helped things click in my head.
Read some stuff, try writing your own code, go back and re-read, modify your script, and then read some more. Google everything. Try your hardest to figure stuff out on your own, and if you’re honest-to-God stuck for several hours, ask someone.
And now, about your game…
A lot of people will say you should forget about it for now. Get a few years experience under your belt, and come back to it later. That seems to be hard advice for people to follow, and honestly, it may not be the best advice for you. If your game idea is your driving force to learn, by all means use it as a carrot on a stick to keep you going.
Write down your ideas in a Google Doc or something. Separate your ideas into elements you’ll have to create. Then as you learn, think of how you can apply those things to your game’s core concepts. If you’re stuck on what to learn next, evaluate one of your game’s elements and determine what knowledge is needed to accomplish that.
Don’t commit yourself to 5 years of investment in it, though. A lot can change in that amount of time. Create a bunch of throwaway games or prototypes as you’re learning, and after each one, decide if you’re ready to tackle The Big One. If you think you are, come up with a plan to complete it in a single year. Write that plan out. If you start getting behind, or slacking off, re-evaluate.
There’s a good chance you don’t have the skills and/or resources to complete your game idea, and you might never get there. That’s not the end of the road, though… You’ll just need to rethink the portions beyond your capability. Try to find the minimum viable way you can achieve the idea of what you have in mind, and build off that.
Game development is tough. It’s a lot of work, and rarely what I would describe as “fun.” But it’s rewarding in its own way. Just playing against random people I’ve never met in the game I created gives me a thrill. Temper your expectations and define what success means to you, and you’ll set yourself up for the same kind of rewarding experience. Prepare yourself for endless hours of hard work, and you’re ready to take your first steps to being a game developer.
Best of luck! Let us know what we can do to help!