Use neumatic tires with low pressure or rubber cleated tracks as the more ground contact you have the increased friction is available.
You could partially fill the neumatic tires with water like farm tractors do for better traction.
(I studied Physics as well)
As for motors and gearboxes, use the highest RPM motor you can find and overvolt it such that the maximum efficiency of the motor is say at half the RPM when it would presumably be under load pushing another bot around.
For the gearbox, make it bullet proof as all the load will be transfered to the gearbox.