I always loved video games, especially RPGs
Welcome to the club :D
Been playing D&D for decade+
The Dark Eye for me, but I think if you list your D&D experience in a CV, it is a great plus when applying for a game company!
And i would love to work [..] as game developer. And story developer
Uh... oh... well. From your post, I guess you are still at school or a student (working part time, huh?). The thing is, when you do something as a hobby, you do a lot of things and you can put your ideas and your knowledge into a product. However, when you work at a place, it becomes increasingly difficult to fulfill all those roles. As soon as you start doing things professionally, you will be required to care so much about detail, that you won't have time for so many positions. Most game companies have different teams for different tasks. So, as a software developer, you might be able to input some rough thoughts, but it is quite unlikely that you will be a software developer and game designer. You just won't have the time. That's why I recommend choosing one which you like and try to be an expert at, and do the rest in hobby projects, if you still feel like doing them after joining a company.
What programs should I start learning
Since you are asking on a software developer platform, I will only give a rough overview of most of the stuff used, and instead focus on software development. So, the rough overview of what stuff you might want to take a look at if you would have to fill all roles of game development (assuming a 3D RPG single-player game; with freeware examples), except for software dev:
Now, software development in depth. Creating the software part of a game is a lot of work and usually again divided into several teams, since the tasks are very different all in all. Let's see. There are game engine developers (DO NOT DEVELOP A GAME ENGINE, or you will never ever create a game. Writing an engine is so much fun and creates such a drive, that you just can never ever stop again), FX developers (people who work on effect details, cinematics and shaders), game mechanic developers (the guys who implement the core functionalities and scripted things), AI developers (people who make sure the NPCs act immersively and monsters are the right degree of difficult and fun to fight). Depending on what they do, they might use wildly different tools. So let's take a look at tools they might need:
As you can see, if you want to develop the software side, you will just have to write text in some program specialized for that kind of text. Not much software to learn, but lots of skill and experience to gain to get there.
If you want to start out making a hobby project, I would recommend downloading one of the programs from each "rough" bullet point (my preferred one is the second option respectively). Then get Unity3D and learn JS or C#. Unity also has a marketplace, so you do not have to create everything yourself. Those tools will get you started creating your very own game.
When creating games, it's the same as with creating anything else. The first time might be really difficult, complicated and the result might look bad. Just remember: You are starting out and that was your first try. The more games you create, the better you get, the faster you finish, the easier it becomes and the better the result looks.
Also, once you feel comfy with above tools, try exchanging Unity with Unreal Engine, which is used for a great number of AAA games. It's a bit more difficult to use, because it has many more features and things to set up and keep in mind, however it is the tool used by big studios.
Even later, you might decide to drop the studio all-together and just put together your own engine using separate parts. However, that's more of a journey than a project^^ The advantage is, that you can choose components which are 100% FOSS, so you can even sell the result without worrying about licenses etc. Alternatively you might decide to pay for licenses and go professional :D
Lately, I am on such a journey, however, I want to use unconventional techniques and new ideas. That's why I base my game on a data-driven engine (Amethyst), and write my stuff in Rust. The game should be a MMORPG, though I don't have the money for many big servers, so I want to use distributed computing as the server: every computer on which the game is running is part of the server in a big P2P network. I am excited to see how well it will work out. However, since even basic Rust packages are still in alpha and beta, it is quite a slow development (I don't have too much time either way at the moment).