As a personal interest, I would like to start developing a 3D game engine for creating procedural environments. Having read these forums for a while, I know that many of you will be inclined to advise against making my own engine so I want to start off by saying that I understand your opposition. This is something I want to do out of personal interest as a learning experience (and just for something extra to tinker with).
To give a little background about myself, I already know how to program (c++, java, python, etc). I have a BS and MS in Computer science and am currently a software engineer at one of the major software companies. I did my MS focusing on machine learning and natural language processing but have never really done any graphics programming (which is one of the motivations for this project).
In this post, I'm primarily looking for advice on where to start in terms of general advice and materials that are helpful (books are good). So these are the current questions that I have.
1) What are the primary trade-offs between openGL and directX development? Would you advise against either of those for a beginner or for my use case (if so, why)?
2) Given your answer to the first question, what resources would you recommend to begin learning either of those tools? (this includes resources that cover libraries for sound, i/o, ui, etc.)
3) Do you have any resources about procedural game engines (about any aspect) or procedural generation in general?
4) (related to question 2) What resources would you recommend to learn about game engine development (tips, tricks, architecture, etc.)?
I'm thinking that c++ would probably be the best language to target here but I'm open to thoughts about choice of language as well.
Thanks for your thoughts