1. You should normally not use mesh colors in a lit environment (unless these colors are the material colors, which AFAIK never happen). You can use them in an unlit environment, like for example in a modeler, or a simple viewer. It's always good to provide them for displaying a model easily and quickly. Colors might also have another goal, for example for doing face selection.
2. Unless these textures are dealing about materials (mainly PBR oriented textures, that is BRDF and friends), you should not. You will generally blend the mesh diffuse material with the diffuse texture.
Most commonly, what you will find on the internet will not be physically oriented. That is, you will have to deal with ambient, diffuse, specular and shininess materials, and generally a single diffuse texture.
First of all, what kind of graphics programming are you targetting ? I mean there's a huge difference in doing 2D and 3D. There's also a lot difference in doing 'simple naive' 3D and reality-like 3D. There's also a lot of difference in doing real-time 3D graphics and non-real-time 3D graphics.
But maybe this is not that easy for you to answer to this for now. Anyway...
API means Application Programming Interface. Glut, SDL and SFML are APIs. This is a program, which is called a library, that provides an interface to the user (here functions, classes and other means) to be used in order to create an application. Internal code will generally be hidden so that all the complexity remains internal.
Glut, SDL and SFML are libraries that, among other things for the 2 latters, allow to create a window that is capable to render with OpenGL.
Most IDEs (like CodeBlock) are not providen with APIs. You will generally have to install (or sometimes even have to build them) and use them within your IDE.
OpenGL is not a library. It is a standard that defines interfaces for the programmer to be able to do graphical applications that will generally take profit of the hardware (and thus run fast). But libraries allowing to do OpenGL exist. Beginners will generally download header files in order to develop with the OpenGL (see this or thisfor example. These are headers and libraries that give the usable interface to develop with OpenGL). OpenGL capable drivers are also generally needed in order to be able to use the graphic hardware efficiently. With your IDE you'll have to point to these headers and link with your hardware drivers so that you'll 'do' OpenGL.
For doing simple games, almost if it's not 3D, OpenGL is not required (neither directx or vulkan...). You might just do it with your OS framebuffer. OpenGL is however, of course, able to do that. I would suggest you to start with SDL (or SFML) since you'll also be able to add audio, networking and so on with them.
Since you're not a developer, I would advise you to make your pong with python. First in 2D, then move it in 3D.
Then only after try to make the same thing with another language like C or C++. With these languages, you'll have to deal with the memory yourself, you'll have to carefully choose each type of each variables, and you'll have to implement most of your algorithms. You'll also have to choose your dependencies (which library for doing the rendering, which one for the physics, which one to manage the GUI, the network, the audio, the model loading...).
I just left Ubuntu for fedora. For some reason I couildn't find any good quality IDE's and Compilers. Hopefully Fedora has some stuff to offer or I will go to Mint or Arch
You'll find exactly the same IDEs and compilers on almost all Linux distributions... Only versions will vary, so maybe stability. You can use qtCreator on Ubuntu, Fedora, Mint and Arch for example. You might just have more recent versions on Arch, and more stable versions (so certainly older) on another distribution.
Personally, I've been developing on Linux for over 20 years and never felt the need to be limited by an IDE, but to each their own I guess.
I was like this too, even if not for such a long time. Vi was enough for me for many years. But then you develop less often, you forget more about function names, file names. Then C++ allows us to do more and more things with automatic type deduction and templates (among others). For these reasons I went back to an IDE. And then you need an IDE that helps you to go this way. An IDE that understands C++ well and quickly, and not that one that only does syntactical coloration...
Amazing. You started at an early age. Youve also been to different IT jobs thats very nice. I wish that happened to me. The engine you were doing is that a 3D engine? Did you release the source code for that?
This is not amazing, this might just look good for some people and less for others
The 3D engine is closed source and will remain closed-source as long as I can, he's a bit like my first baby ;)
Just like j_uk_dev said, you have also this opportunity. But it all depends on your aims. You for sure won't be able to develop a new GTA on your own. But you can do real and interesting, fully-finished games that could use specific and technical stuffs that can be useful for game company developers.
And there are also specific game schools now where you can get a descent degree, which also might help you.
My two cents are just continue like this and try to postulate.
But you'll have to know some things about the game development industry. As I just said, this is now an industry with often more than 100 people working on a single game. So the main danger is that you'll get disappointed once you entered a company because 1) you'll generally do a little part of the game, 2) you might do not what you wanted to do (doing the user interface is good, but you might preferred doing the hard job), 3) big companies might treat you just as a little piece of the puzzle, 4) in little companies you'll have to work hard, a lot and you won't get very well paid, 5) you won't get very well paid in big companies like EA or Ubi, 6) you might leave your country to another one, 7) they may not keep you once the game has been released.
I personally liked companies like ID Software, or Epic years ago just because they started as little, friendly, family-oriented companies. But now ID has been sold and Epic had changed a lot. These companies looked to be the last "real" game companies to my opinion.
This is all what made me never focused too much on the game industry.
On the other hand, you might be lucky and enter a very good company (see companies in the north of Europe and in the east of Europe) and have the job that you want to do.
My final words will be: try to focus on the part you like the most: rendering techniques, audio, physics, user interface, game logics, or artificial intelligence. You won't be able to have good knowledge for all nowadays just because each of them reach very high level: rendering now is mainly physically oriented, physics require a high university level for some specific tasks, game logics are more and more complex, just like AI.
So depending on what you like the most, continue on this way, learn, do it the best you can and maybe try to enter some indie or hobby projects to get more knowledge and experience with.