||Internal combustion engine and method in which pistons on different rotors (21,22) move relative to each other to form chambers (27) of variable volume in a toroidal cylinder.(26) The pistons (23, 24) move in stepwise fashion, with the pistons on one rotor travelling a predetermined distance while the pistons on the other rotor remain substantially stationary. Fuel is drawn into a chamber as one of the pistons defining the chamber (27) moves away from the other, and then compressed as the second piston moves toward the first. Combustion of the fuel drives the first piston (23) away from the second (24), and the spent gases are then expelled from the chamber by the second piston moving again toward the first. An output shaft (31) is connected to the rotors (21, 22) in such manner that the shaft (31) rotates continuously while the rotors and pistons move in their stepwise fashion.