My thoughts of working with different parts of the engine in order of difficulty:
1. Correct design. Makes everything easier and/or manageable. Or hard as hell if you do not maintain "order".
2. Physics / Collision
3. Timing. Timing is everything.
4. The flow of a frame.
5. Getting familiar with external file formats, structures
6. Parsing external files.
7. Networking in the literal communication sense. Keeping in mind #2 above.
8. Rendering (can take quite a while to grasp all the concepts).
9. Multiplatform considerations
10. Memory Management
Just one opinion. At the moment I'm battling #2.
For sure 2 weeks from now, some of the 3D math I'm finally making progress on will seem like old news to me.
Some people would say learning the ins and outs of C should be in that list, but with that you can Google and/or read general information, versus things on the above list are in the abstract generally and it requires direct experience, experiments, failures, insights or often explanations from someone more knowledgeable to peer into.
Order of difficulty
Order of difficulty
The night is young. How else can I annoy the world before sunsrise? Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..