Making software is hard and computer games even more so (keep that in mind if you want to work in the games industry). They are complicate beasts and a variety of skills is required for one to be produced. In any case, it goes without saying that you should better try to use all the help and tools you can get your hands on, if you want to see your game ever becoming a reality.
The good news are that you don’t have to pay for them!
Back in the day it was hard to find a free C++ compiler for windows, never mind about an IDE. Even after the open source software revolution and the establishment of broadband internet, one still had to be quite resourceful to setup a working environment. It is not long ago, for example, that you needed to figure out how to integrate the debugger, generously provided by Microsoft, with CodeBlocks before you could have a decent IDE to begin with.
Things have changed a lot and today there is a huge arsenal of tools that are available to everyone free of charge. Depending on the programming language you are using and the platform that you want to build your game for, you can find an appropriate environment, libraries, game engines and tools to achieve your goals. Tools that used to be a privilege of big studios, like Unreal Engine, are now accessible for everyone to download and use for free, as long as the licence is not breached. And this is the very same engine and tools that powers games like Enslaved:
Is everything you need to build a game free then? Well, almost.
So what is the catch?
There is no catch here. Every tool you are going to need is free indeed, in one way or an other. But that is not enough. All the tools in the world will not make the game for you. You still need to commit your spare time to learn those tools and put them in action. You still have to design the game, create the artwork, write the code, test it, rinse and repeat again and again and yet again until your creation is actually something that is fun to play with.
And that’s all you need. Ah yes, and an idea of course.