public void Awake()
    {
        instance = this as T;
        log.Info(_Logger.User.Msaw, "Initializing game controller...");

        // default locale
        Locale = "en-us";

#if UNITY_EDITOR
        SetLanguage(editorLocale);
#endif

        OnAwake();

        List <AbstractFSMState> states = CreateGameStates();
        log.Info(_Logger.User.Msaw, "Starting up with " + StartupGameState);

        FsmSystem = FSMSystem.CreateFSM("game", states, StartupGameState);
    }