I know the B-A-S-I-Cs of c++ and it may be a good idea to concentrate on what i would like to learn and get the motivation... Or would it be bad at this time? |
At this point, I would not recommend a DirectX/OpenGL project as a first C++ project. I would recommend knowing the basics + memory management, some STL, file I/O, and inheritance/polymorphism at
the least before even thinking about playing with a low-level graphics API (and getting anything reasonable out of it).
Maybe a good first (non-trivial) project would be something like a maze solver. The program would read in something like this from a file:
xxxxxxxxxxx
x---------F
xxx-xxxxxxx
xxx--x--xxx
x----x-x--x
x--xxx--x-x
x-x--x-xx-x
x--x-x----x
x----x-xx-S
xx-x------x
x--x-x-xx-x
xxxxxxxxxxx |
where 'x' is a wall, '-' is empty space, 'S' is the starting location, and 'F' is the finish. The program should output the route from S to F. The route would be something like "left, down, left, left, left, left, left, up, ... ". To simplify things you can make it so you can only go horizontally and vertically. First, you can have it output any path at all (as long as it goes from S to F). Then, you can make it so the program computes the shortest path.
After that, you could play around with a simple graphics library, such as SFML. You could first get some simple animation working (a bunch of squares and circles moving across the screen, for example). Then, you could try re-creating Pong. Maybe after you're done Pong, you could use the maze solver solution to re-create Pac Man. The maze solver solution could be the ghost AI.
If you have decent implementations of the above, then I would think DirectX/OpenGL would be a reasonable next step.