Example #1
0
    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);
        }
    }
Example #2
0
    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);
        }
    }