Agile Development

A method for developing code by doing Analysis, Design, Implementation and Testing simultaneously. It involves tackling complex problems quickly.

Empty interfaces

Design interfaces for a solution without implementing them. Dividing the solution into smaller, testable pieces early will make testing easier, and speed up development.

Iterative development

Get something that works as soon as possible, without any fancy details. In the case of games, "works" means "playable".

Don't underestimate the importance of this!

The deadline doesn't care about clever solutions, the most important thing is that what you make is useful and that you deliver on time.

Divide and Conquer

Divide complex problems into simpler parts to make them easier to solve.

Empty interfaces will aid you here. Try to get an overview of what you need, then implement and test the most important things first.

You can then think about your other problems while trying to solve the first one.