[describe] a basic engine capable of powering a basic 3D game.
See Hodgman's comment. Some tough love - if you're in your final year of college, and a professor put the above quotation on an exam, you should complain that "basic 3D game" isn't defined, and how can you possibly describe a method for implementing an undefined task?!
At your level of education, you should have learned that the first task in solving a problem is to separate the knowns from the unknowns to determine if the problem is solvable. From your description, it appears you have many more unknowns than knowns.
Particularly if you must coordinate a "team," each project task must be well defined. Later, a schedule must be put together - but you're not even close to that yet.
Write your own exam questions.
1. Describe features of a basic 3D game in your own words. Do NOT describe the game in detail. An "engine" must generically support the features you describe. This will be the "scope" of support the engine will be required to provide. [ If no-one in your team has written a complete 3D game with all the features you describe, consult with the professor, starting with the statement: "We're screwed." ]
2. For each of those features, describe in your own words what pieces of information you will need to implement that feature.
3. For each of those pieces of information, describe a method or methods to obtain that information.
4. If the information for the method or methods is known by a member of the team, list the individual.
5. If the information for the method or methods is not known by any member of the team, list the individual whose responsibility it is to obtain the described information.
6. Determine approximate man-hours for implementing all methods.
7. Meet again in two weeks to discuss how to further reduce the scope defined in step 1.
Repeat steps 1 through 7 until the total man-hours is less than 6 months, allowing for delays due to beer parties, road trips, and going out for pizza. That will allow time for additional problems to be resolved with a 50% chance of meeting the one-year time-line.
More seriously: a better approach may be to use the above process to write a game, not an engine. When the game is complete, abstract the code which provides the support for the GUI, physics, collision, level editing/loading/saving, scoring, user I/O, graphics options, etc., and code an engine from that abstraction.