It is good that you have all of that programming experience, though I am not sure about your skill level. No doubt, you have enough to begin simple game development.
I tried Java, C#, and now C++. In the game industry, a lot of AAA games use C++ for the back end programming and some scripting language for the game itself, such as Lua, C#, Python, or combination of two. Some make their own scripting language loosely based on an existing one.
The "game engine" backend programming is a full time job to create by itself, unless you have years to spend on it. Typically, teams make the game engine and other teams make the game itself, with some overlapping in some game development organizations.
If this is only a hobby, then do what you want to do. If this is a career choice, then I recommend the taking of one of two paths: Build or Join a game development company /// OR /// Go Indie Developer.
More to your question>>>
Take a look at SDL. (Simple DirectMedia Layer) It is designed for OpenGL and C++ development, but there are libraries / bindings for many other languages and you can even use it for Direct 3D API in certain situations. SDL simplifies and streamlines development so that issues such as control devices (keyboard, mouse, controller, etc.) are much more accessible and the development is more productive. SDL is a set of libraries as a layer between your game (or other software) and the existing API in computing devices (usually OpenGL or similar). SDL also makes development more productive for 3D or 2D rasterizing or rendering. There are libraries for open source sound, window creation (with or without borders), loading screens, and error messages. There are also plugins for some of the best debugging and other analysis tools. SDL is very good for beginning and intermediate development. It can get complex for advanced dev, particularly in testing and debugging, but some popular games use at least part of the SDL package.