I might have been a little bit older than you (9th grade) when I hit my peak in terms of hours per week programming. I tried to build three different engines, starting from scratch each time, one in DirectX 8 and two with OpenGL. The most advanced application that ever got built using them was a 3D pong game. Each of them had major design flaws that made me start again. I programmed so much that I ended up nearly failing most of my classes that year.
However, during that time I improved dramatically as a programmer; both in terms of being able to design code, and implement that design. I am now about to enter my third year at university in an unrelated field (physics and mathematics), and my most valuable skill is still my ability to program well.
So, I really understand and support where you are coming from as far as building something from the ground up. I would say, in terms of advice, that you shouldn't worry at all about choosing an API for compatibilities sake because, statistically speaking, nothing commercial will come out of this endeavor. Therefore, I would suggest that you use whichever API comes easiest for you. For me it turned out that it was OpenGL but I know for many others it is DirectX. Try them out and see.
However, during that time I improved dramatically as a programmer; both in terms of being able to design code, and implement that design. I am now about to enter my third year at university in an unrelated field (physics and mathematics), and my most valuable skill is still my ability to program well.
So, I really understand and support where you are coming from as far as building something from the ground up. I would say, in terms of advice, that you shouldn't worry at all about choosing an API for compatibilities sake because, statistically speaking, nothing commercial will come out of this endeavor. Therefore, I would suggest that you use whichever API comes easiest for you. For me it turned out that it was OpenGL but I know for many others it is DirectX. Try them out and see.