Start by making a simple game such as a Tetris or Pong clone. This way you will have a much better understanding of how to go about making a more complex game.
For a more detailed account of why making a Pong clone is a good idea as your first game, you can read this post of mine
Turbello, If you are making the game engine to have a better understanding of the concepts, I I'm going to advise you to go for it. Having said that, make sure its not at the expense of completing your game by the deadline. In the worst-case scenario, you will use the engine provided by your professor (instead of the one you make but will hopefully have a clearer understanding of some of the underlying concepts).
Infact, I would start by making the game and refactoring the code which you think you would reuse into another class/lib
I'm developing one here, just to enhance my understanding. Even though I end up fixing bugs and refactoring it every other day, it might help you get started with yours
Original post by SpeedRun You can also look at Potential fields. The idea is to put a charge at an interesting position in the game world(that fades to 0 with distance) and let the charge generate a field that can be either attracting (positive) or repelling (negative). Let the obstacles generate small repelling fields and the ship a attracting field. Sum the fields to get a total field at each square which can be used for navigation.
While I'm a big fan of influence maps and potential fields, I have to wonder if it isn't overkill for this situation. I agree with the local obstacle avoidance approach as illustrated by Craig Reynolds in the link above. Throw out feelers in front of the ship and adjust accordingly. To make is slightly smarter, project the path of the asteroids out in front of their actual location. That will bias the steering to go behind the actual asteroid as it is moving.
If the asteroids are convex in shape then steering behaviors is a much faster approach and potential fields wont have a higher advantage. However, if we can have asteroids that are concave in shape, the ship might get stuck. For this case, I think potential fields might be a much better option. But, there might be a way by which the problem can be avoided using steering behaviors .