First, no, I'm not a Rockstar North Developer - But as a huge fanboy of Rockstar Games & Take2Interactive, i learned game development, especially game engine development.
First, you can't JUST pick up A language, it's must be THAT language that is perfectly for it. If you would use Java it will be a big failure because of the JVM, imagine running the DirectX API under it... You lose alot on performance!
So we Engine Developer pick up C++! C++ is efficient & allows OOP, it's near on the machine than any other language (except C, but it doesn't support OOP so its useless), it allows us to access really fast the GPU with the DirectX-API & perfect memory-management.
I've read alot of books about C++ & DirectX11. As a proud game engine developer, i've a math- & physicsformular book right to my side. They're important otherwise the game will completely suck.
"Saying something in less words, means being wise" - No on writing engines this is not true. You must work really heavy with geometry & logic.
So my suggestion:
- Read first about maths & physics
- Learn slowly C++ (Not about consoles) // Everything about OOP & Windows-API
- After that start working with dynamic link libraries (DLL)
- Start reading books about the DirectX11/12 API & Shaders etc for C++
- Don't use & don't look into other game engines, use your brain & do your own thing
- Start writing your first 3D-Game using dynamic link libraries (DLL)
I see much newbies using MP3-Files for Sounds... No! MP3 is compressed & messed up. Use Wave-Files (.WAV) or Audio Wave Container (Actually almost the same as Wave Files only using .AWC extension). Developing a game needs alot of time! Alone you'll need 1 -2 years just for the "skeletal structure".
My suggestions for your engine:
- Make your Game Engine dynamic with a Studio to create missions, maps, characters and so on without rewriting the whole engine or internal lines - Use it to create game-series/episodes based on that engine
- Seperate sections, e.g. "Graphics" just for the API, the functions & used version of DX - So you can update it one time without rewriting the whole engine - Maybe editing some parameters but nothing more
- Work with dynamic link librarys
- Avoid GPL licensed libraries/software
I hope i could give a little look into game development! Have fun!