(я в геймдеве не шарю, так всегда так делается?)
не, там 1 бесконечный цикл с функциями без ооп
игровые объекты хранят в себе свои координаты, все свои картинки для отрисовки, матрицы для вращения/перемещения
для отрисовки нужен 1 аргумент так что можено и через object.draw() а вот всякие коллизии и прочий интерактив нужно внешняя функция