To be honest, the fact that you're asking a question as broad as "what engine should I use" seems to indicate you're not quite at the level where this is doable, yet.
"Basic" coding experience doesn't sound like enough. Game programming is a fairly complicated field of programming. I'd recommend that you focus on improving your understanding at least to the point that you're able to say that you have more than just "basic" coding experience. Make some personal project and continuously expand them.
For game programming (at least from the ground up), you'll need a fair bit of math. Usually linear algebra and trig. Although you can largely avoid this if you use a high level engine like Unity or Unreal Engine (both have free versions). I strongly advise that you do not use OpenGL directly. At least not without trying it out for a good few weeks, first. In my opinion, OpenGL is a nightmare to work with. It's too low level and lacking in even the most basic features you'd expect. For example, you'd have to implement basics like shadow entirely on your own. OpenGL doesn't provide anything to help you here. Higher level engines like the Unity and the Unreal Engine do.
If you haven't made or contributed to at least a fairly large project yet, I recommend that you stop and do so first. Game programming is not a good place to start. At least not for making a game from scratch. The same ideas are still there. Figure out what the core features of the program are and add onto that bit by bit. Refactor between changes to keep the code clean for future additions. Break features down into small, compilable parts. Run the program often so that bugs and other issues can be caught early (which means you'll want to write your code in a way that ensures that it's compilable even when the code is not yet correct).