protected void BeginTest(string mapName, int playersCount) { m_abilities = new Dictionary <int, VoxelAbilities[]>(); m_players = new Guid[playersCount]; for (int i = 0; i < m_players.Length; ++i) { m_players[i] = Guid.NewGuid(); m_abilities.Add(i, CreateTemporaryAbilies()); } string dataPath = Application.streamingAssetsPath + "/Maps/"; string filePath = dataPath + mapName; m_replay = MatchFactory.CreateReplayRecorder(); Dictionary <int, VoxelAbilities>[] allAbilities = new Dictionary <int, VoxelAbilities> [m_players.Length]; for (int i = 0; i < m_players.Length; ++i) { allAbilities[i] = m_abilities[i].ToDictionary(a => a.Type); } MapData mapData = m_protobufSerializer.Deserialize <MapData>(File.ReadAllBytes(filePath)); m_map = m_protobufSerializer.Deserialize <MapRoot>(mapData.Bytes); m_engine = MatchFactory.CreateMatchEngine(m_map, playersCount); for (int i = 0; i < m_players.Length; ++i) { m_engine.RegisterPlayer(m_players[i], i, allAbilities); } m_engine.CompletePlayerRegistration(); }