You have options, lots of options, and some great communities to help you learn this stuff. Let me ramble for a bit, but please OP, read this so I've not wasted my time.
I can give some advice without rebuffing other peoples, because I'm just wrapping up my 12th PC game and I started out just like you, albeit over 10 years ago. I am self taught, I just don't learn things well in a classroom environment, I learn through necessity. I've been into game creation for my whole life, and used too many engines and languages to remember, but the one constant through it all is a desire to excercise my creative energy in a positive way - whether that's making a tool to help with game development, or inspire game development, or make a game over a weekend, or undertake a massive project.
One thing to remember, a game project does not have a physical scale - you do, but your project does not - it's all relative to your skill set. I mean, I've found that media creation and coding go hand in hand, I usually spend an equal amount of time between media and code, and that's a constant throughout any game project I've undertaken. I think of it as if it was, say karma - your project has to evolve naturally, you can't plan for everything, you will change your mind about things, you will discover that some things that you thought would be great will suck, and you will discover that a minor feature will make all the difference. So what's the point in planning?
I've never written a design document in my life, and you don't have to either. Because, let's face it - you designed that game over and over in your head already. You should make sketches, but keep it organic - keep track of your best ideas, but never feel the need to justify or explain them - that's why you want to make a game, to explain your game idea fully, and people who play it will understand and appreciate what your trying to say. You have to be dynamic, and brutal sometimes with your own ideas - the more dynamic your game idea is, the easier it is to adapt to changes. Changes like the platform you program it for. Indi developers don't do themselves any favors by religiously sticking to one format, or one platform. It's easiest and cheapest to develop on PC, but is that the best platform for your game... and what would happen if you had to make it for something else later.
As I said, media creation and coding are basically a 50-50 split - I think that's why teams of 2 seem to do quite well... World of Goo, Meat Boy, Overgrowth... these games were written by teams lead by 2 main people, 1 artist, 1 coder - it's a good combination, and if you know anyone with coding skills, or opposing skillsets to your own, then it's worth considering. Even if you have a sibling who is good at painting, there's lots to learn, and maybe making a videogame is something your family or friends might like to participate in.
If you want to make a fully featured RPG, then making the media for that is a tall order, you will really have to consider adopting a visual style. It used to be easy, we'd just cell shade the hell out of everything - then making a texture is about 20 times faster and easier. If you stylise your game, you can enforce a reason for the visual style. Look at the indi games, like Sword and Sorcery(pixelated), Minecraft(blocky), Angry Birds(very little animation). It's not strictly easier or quicker to go 2D either - 2D art is just as much of a skill as 3D modelling, it can take a long long time, and animation can be a bleeding nightmare. I'd say 3D is as strong an option as 2D, 2D is by no means easier.
3D modelling and texturing is one area where I'd advise that you make sketches - sketch whatever you need to make, no matter how easy it is. A small concept sketch can make things go so much more smoothly, and doing that can fill up time that you wouldn't necesserily use for game dev.
With coding, I'd say the best way to learn, is to give yourself an objective. For instance, say you want to be able to load and display some images to start with, then investigate and learn what you need to do that. Once you do this a couple of times, you'll notice that you'll have a fresh idea at the end that you want to try - like moving the images around, animating etc etc. This is actually the most fun part of coding - when it's organic and you can experiment without breaking anything important. Let your ideas run wild, and don't feel bad if you have to give up and try something else - expectations can be very lofty, but they aren't in charge. Pick other peoples code apart, but don't worry if you don't understand it all - your not supposed to - the coder probably won't understand it right away the next time they look at it either. As I said, learn through necessity. If you really want to see something happen, then you will learn the skills required to achieve that. Necessity is high octane learning fuel, just like you should only ask a question that you want to know the answer to - you should concentrate your time on what you want to achieve - everything else ends up as procrastination.
I suggest that you check out this development community and product line:
http://www.thegamecreators.com/
They produce games, game development systems, languages and libraries. The most recent being AGK (App Game Kit). This system lets you develop in BASIC or C++, and deploy to several different devices, anything from PC's to iPads to Android devices - all using the same code and media. It is 2D for now, 3D commands are being developed. There is also DarkBasicPro, you can grab that for free there - that's my main language, it paved the way for me to learn C++ and move onto native iOS development. Both are great languages with great communities behind them, great place to learn, with awesome moderators. Give it a look why not, at least check out some of the finished games and stuff made with their products.
For the sake of peoples scroll bars, I'll leave it there - feel free to IM me if you want to talk some more.