What do I need to know to make a 3d game engine using c++ I have little to no knowledge of this and would really appreciate it if someone could help, and can you try to be as detailed and descriptive as possible. Thanks in advance :D
Not to discourage you, but if you know nothing about this then don't try to make an engine. It's just not gonna work out and will likely never get finished. Go and mess around with various 3D engines that are already out there and after a good while of playing with that, still don't make an engine. That's a task for a good team of people who have ample experience. Not to mention you'll need a fair amount of math knowledge.
Well I excel in math, and I like a good challenge, and I was just curious as to what I would need to know so I can determine if I am willing to attempt it...I have nothing to do and am very devoted to things so if i start it I am sure I will finish it. so would you care to inform me of the things I need for it please.
You need the following:
Excellent C++ Programming skills
Memory Management mastery
Furthermore:
You need knowledge in either POSIX compliant functions or knowledge in the OS's API you'll be working with. Since you are going to be pasting graphics on the system then you need mastery in it as well.
But in all seriousness don't take ResidentBiscuit comment on the wrong side, he is right, this is not what you are looking for.
You say you are good in math, sadly it is useless if you are starting your own game engine, you don't know anything about how to program parallel systems, cuda cores, fuzzy logic, inference machines, and so forth.
Your math skills which you claim to have are extremely useful on the other hand if you use an already developed graphics engine or game engine. A graphics engine will require a very high mastery of the programming language you are using but go ahead, a good example is the OpenGL api, to use C++ you can use the opensource QT library.
Or you could use unity, or unreal game engine, in which you could use your math skills to create in game physics instead of graphics generation.
Graphics generation is a whole other subject from game engine. Which is were you want to start.
If you are new to programming in C++ i suggest the open gl approach since you say to have the time.
On youtube there are some great programming classes by other universities as well.
On itunes there is an Stanford course.
I learned C++ mostly thanks to the following
C++ Primer
C++ Primer Plus
Modern C++ Design
And a helluva lot of other books like the STL standard
Not only that, you'll need knowledge on Data Structures, since their good management will improve any game engine you build (without including algorithms)
Each one of those things (C++, data structures, and algorithms) is a specialized subject that could take months to master.
But to crunch out a basic game engine you only need C++ and some graphics API
Newest edition is ideal. But if it's the last edition then it's not a big deal. I think I have the last one, and it's fine. Get a decent understanding of the language and OOP in general, and then pick up a book relating to OpenGL or DirectX. Also, read this: http://scientificninja.com/blog/write-games-not-engines
ah....so a game engine is just basically for people who are in the game making career or for people who plan on making a lot of similar games. thanks for clearing it up for me :D
Not trying to discourage you, but creating a game engine is no walk in the park. So you'll be much better off (and likely learn even more) just by using one of the many engines out there and creating whatever game you want.
There are tons of engines out there some free a lot commercial just do a search. I remember a lot that have since been abandoned. Just have to put the effort into looking for an engine that matches your needs. Making your own engine, let alone a 3D engine is for intermediate to advanced C++ programmers as you need to know math, C++ (obviously), and then decide if you are going to have the engine made so you use scripting (Python/Lua) just to name a couple of things you have to worry about.