Как можно сделать таймер?
import time


class Stopwatch:
    """ Counts passed seconds """
    def __init__(self):
        self.init_time = time.time()
        self.seconds = 0
        self.last_check = self.init_time

    def checkseconds(self):
        now = time.time()
        count = int(now - self.last_check)
        mod = now - self.last_check - count
        self.seconds += count
        self.last_check = now - mod
Остается периодически дёргать checkseconds созданного экземпляра. Если дёргать с периодичностью меньшей секунды, то значение пройденных секунд будет обновляться ежесекундно.
Работу кода не проверял, но вроде нигде не ошибся. Попробуйте.
Тоже самое, с помощью генераторов:import time

def stopwatch():
    """ Coroutine that returns number of seconds
        passed after initialization
    """
    # Initialization
    init_time = time.time()
    seconds = 0
    last_check = init_time
    
    # Main loop
    while True:
        now = yield seconds
        count = int(now - last_check)
        mod = now - last_check - count
        seconds += count
        last_check = now - mod
Теперь создаем генератор и, также почаще, посылаем ему настоящее время:# Создаем сопрограмму
my_watcher = stopwatch()

# Не забываем про инициализацию (первый yield)
my_watcher.send(None)

# Остальные send будут возвращать количество пройденных
# после инициализации секунд
passed_seconds = my_watcher.send(time.time())
<...>
passed_seconds = my_watcher.send(time.time())
Вот так можно на твистед www.saltycrane.com/blog/2008/10/running-functions-...
Ну и в официальной документации twistedmatrix.com/documents/13.2.0/core/howto/time.html
На твистед и всю игру можно забацать.