public TeamsConfig(int numPlayers, Challenge.Type challengeType, int numEnvironmentReps, int numPlayerReps) { this.challengeType = challengeType; // Challenges might have required modules for environment (& agent?) genomes: // for example, go-to-target would REQUIRE having a target object in the environment Debug.Log("TeamsConfig() " + this.challengeType.ToString()); // Teams: // Environment EnvironmentGenome templateEnvironmentGenome = GetDefaultTemplateEnvironmentGenome(challengeType); environmentPopulation = new EnvironmentPopulation(challengeType, templateEnvironmentGenome, numEnvironmentGenomes, numBaselineGenomes, numEnvironmentReps); // Players: playersList = new List <PlayerPopulation>(); for (int i = 0; i < numPlayers; i++) { // Might have to revisit how to pass agent templates per population... AgentBodyGenomeTemplate templateAgentGenome = GetDefaultTemplateAgentGenome(challengeType); Debug.Log("TEMPLATE: " + templateAgentGenome.bodyGenome.ToString()); // List of Agent Genomes PlayerPopulation player = new PlayerPopulation(challengeType, templateAgentGenome.bodyGenome, numAgentGenomesPerPlayer, numBaselineGenomes, numPlayerReps); playersList.Add(player); } }
public TeamsConfig(int numPlayers, int numEnvironmentReps, int numPlayerReps) { //EnvironmentGenome templateEnvironmentGenome = GetDefaultTemplateEnvironmentGenome(challengeType); EnvironmentGenome templateEnvironmentGenome = new EnvironmentGenome(-1); templateEnvironmentGenome.InitializeAsDefaultGenome(); // Temporary hacky solution environmentPopulation = new EnvironmentPopulation(templateEnvironmentGenome, numEnvironmentGenomes, numEnvironmentReps); // Players: playersList = new List <PlayerPopulation>(); for (int i = 0; i < numPlayers; i++) { // Might have to revisit how to pass agent templates per population... //AgentBodyGenomeTemplate templateAgentGenome = GetDefaultTemplateAgentGenome(challengeType); // Temporary hack solution: BodyGenome templateBodyGenome = new BodyGenome(); templateBodyGenome.InitializeGenomeAsDefault(); if (i == 0f) { templateBodyGenome.testModuleGenome.maxSpeed = 0.25f; templateBodyGenome.testModuleGenome.accel = 0.025f; } else { templateBodyGenome.testModuleGenome.maxSpeed = 1f; templateBodyGenome.testModuleGenome.accel = 0.35f; } // List of Agent Genomes PlayerPopulation player = new PlayerPopulation(i, templateBodyGenome, numAgentGenomesPerPlayer, numPlayerReps); playersList.Add(player); } }