Данные с сервера должна запрашивать фабрика, например при создании (если в течении работы данные не меняются), фабрика создает "синглтон" поэтому загрузчик на старте выполнится только 1 раз.
Если нужно получить данные в контроллере, а в фабрике их ещё нет, тогда getGames должен быть асинхронным (например возвращать Promise).
Если данные меняются с течением времени и контроллер должен на это реагировать, тогда можно сделать что-б фабрика рассылала pubsub сообщение о новых данных, а контроллеры на это реагировали и запрашивали Games.get() заново.