Why I switched to developing in C++There are many reasons I moved from Java to C++, on the first page in this category, I listed a few, but I'll list more here. I decided I would remake my engine in C++ as it doesn't share many libraries and has very different syntax. This would allow me to make an educated decision on whether Java or C++ had better libraries for Game Engine development. This in turn would allow me to make decisions in the future on whether I want to use C++ or Java for a project.
It would also help me understand the difference between data and pointers. This was something I didn't know before starting to make the second version of my Engine in C++. I would have rather learnt the OpenGL concepts and then C++ than learning OpenGL and C++ at the same time. I think that's the sensible thing to do.
C++ is also quite a lot faster than Java because it is ran natively instead of as a bytecode. This was a big concern for me. Even if it didn't make much difference, if I ever go on to build an actual game with my Engine, C++ would allow me to implement more features than Java. This speed difference is mainly for CPU side things, and not GPU side things, so it wouldn't speed up shaders, but would speed up loading of models and how fast it would be to render thousands of the same model.