public virtual void Init()
        {
            m_initialized = true;

            // Init World
            var serializer = new TmxSerializer();
            Map map        = serializer.Deserialize(m_gameSetup.SaveFile);

            m_gameSetup.SaveFile.Close();

            World = new ToyWorld(map, m_gameSetup.TilesetFile);
            World.LuaThoroughSync = LuaThoroughSync;

            m_avatars = new Dictionary <int, IAvatar>();
            foreach (int avatarId in World.GetAvatarsIds())
            {
                m_avatars.Add(avatarId, World.GetAvatar(avatarId));
            }

            m_avatarControllers = new Dictionary <int, AvatarController>();
            foreach (KeyValuePair <int, IAvatar> avatar in m_avatars)
            {
                var avatarController = new AvatarController(avatar.Value);
                m_avatarControllers.Add(avatar.Key, avatarController);
            }

            // Init rendering
            Renderer.Init();
            Renderer.CreateWindow("TestGameWindow", 1024, 1024);
            Renderer.CreateContext();
        }