protected override void Initialize()
        {
            InitDisplayIfNeeded();
            // @todo #1: Update the GraphicsDeviceManager in the constructor, to avoid the window being mispositioned and visibly changing size
            _display.Apply(_graphics);
            Window.Position = new Point(0, 0); // Delete this once the above issue is fixed
            IsMouseVisible  = true;
            _sprites        = new SpriteBatch(GraphicsDevice);
            GameInstance.Init(this);
            Input.SetController(_controller);
            _ecs.Register(new ControlHandler());
            _ecs.Register(new DirectionHandler());
            _black = new RectangleTexture(Color.Black).Create();
            Navigate.Init(_sceneFactory);
            DefaultFont.Load(Content);
#if DEBUG
            SceneNavigatorConsole.Enable();
            Metrics.Enable();
            EntityList.Enable(Keys.F12);
#endif
            base.Initialize();
        }