Sorry but what you're asking for really isn't viable, a program capable of doing the basics of even a simple game, needs several classes/functions/systems to work. Graphics, input, files, etc..its a lot of different things to keep track of.
You "could" put it all in one file, but it would be an editing nightmare, and would also take quite a long time to compile, you might be surprised just how slow a compiler is, taking text files, working out all the values, small files take a few seconds, larger files take a lot longer.
So we keep them in small tight easy find, easy to read and edit files with names that explain what they do. Which in turn compile quickly and are stored if not changed so no more compiling needs to be done. This speeds up the edit/build/deploy process.
Make files take care of compiling and linking them into a final project.
Now, I agree with you, make files are confusing messes if you try to read or edit them, especially on big projects.. But...this is where IDE's like Code::Blocks come into their own. They create the make file, they keep it updated so you don't have to.
They do need a few clues, they need to know where the libs you want to use are, what they are called, and where the includes .h files are, but once they have that you can write a program with 100's files and only ever need to press F5 to make it build and run.
Tools....can be complex to learn, but once mastered make life so much easier.
Very old computer game programmer, now teaching very young computer game programmers, some very bad habits.
Wrote some book about coding Pi's and SBC's, it's out now...go get it!