Что использовать, int, float или double в современном игровом движке?
И то и то и то. В видеокарту double лучше не передавать (особенно в карточки nvidia), поэтому float. В физическом движке лучше double, либо вещественное число с фиксированнй точкой (читай int/int64).
У вас ошибка в суждениях. 1мм - это много или мало? Для линейного размера нормально? А для углового? А если пять раз повернуться по часовой стрелке и три раза против часовой, при этом координата сохраняется с точностью до миллиметра? Если поворачиваем корабль, длиной в 300 метров? А если карандаш, длиной 7 сантиметров? А если это моргает персонаж? Т.е. нужно использовать те типы данных, которых достаточно для представления тех данных, с которыми работаете. Причём, они вполне могут конвертироваться друг в друга, возможно, с потерей точности.
У флоат есть  такая штука как ошибка представления. 
Например выражение (1/3) * 3 = 0.999999996 для машины может быть вполне истиным :)
Да и операции с Int на порядки быстрее всегда.