When getting into game programming the most difficult choice is not what language you are going to learn but what libraries you are going to use. While many do use a game engine to create games you also have the option of using individual libraries to create the game with, this is often referred to as middleware.
While programming is a component of the skills required to create a game you will also need to create various other resources that are used within the game itself such as 3D models and audio. While these are skills that can be learned it will take time and you will have to learn how to do that on your own. Your other option is to team up with others to fill the gaps in the range of skills that are required.
The first thing that you will need to think about is if you will be working in 2D or 3D as this will dictate what you need to learn next. For beginners I would recommend that you begin with 2D as it will be easier to start with, especially if you are also learning to write code at the same time. That being said there is nothing stopping you from attempting to start with 3D.
There are several to choose from
Each of these languages have a selection of libraries/engines available to aid in creating games and more can be found via wikipedia. While what I have below is in no way a list of all those available it should be enough to get you started and I have tried to stick to the ones that will not cost you to use.
- Pygame (SDL with Python bindings) (2D)
- SDL (2D)
- Sfml (2D)
Resources to learn game making (at least enough to get you started)
- C++ primer plus by Stephen Prata(recommended book)
There is only a few languages that are commonly used when it come to making 3D games and of these C++ is used the most.