Integrates NPC Generator in a separate scene. NPC generation path def…#98
Integrates NPC Generator in a separate scene. NPC generation path def…#98ga-hirakawa wants to merge 10 commits intoDevelopfrom
Conversation
…ined to Assets/Resources/NPCs. Input system is in conflict with the new input system and does not work properly. In order to work, the generator executes itself automatically when playing the scene.
|
SonarCloud Quality Gate failed. |
| { | ||
| map = randomPopulation; | ||
|
|
||
| NPC_SO[] parents = new NPC_SO[2]; |
There was a problem hiding this comment.
Não precisa pra agora. Mas se vcs colocassem o 2 como uma variável, o algoritmo poderia ser generalizado para funcionar com quantos parentes e filhos quisesse. Existem evolutivos que aceitam mais de 2 pais/filhos. Mas não acho que tenha necessidade. Só, de modo geral, seria bom fazer uma const com esse 2 pra ele não ficar jogado por aí.
| for (int j = 0; j < 2; j++) | ||
| { | ||
| // duelo podia fazer o random dentro da funcao | ||
| parents[j] = GetBest(map[(int)Random.Range(0, numRaces), (int)Random.Range(0, numJobs)], |
There was a problem hiding this comment.
No sistema eu criei um random singleton que vcs podem usar pra isso. Não precisa alterar pra esse PR, mas acho bom a gnt deixar os randoms todos no mesmo lugar. Assim qualquer regra de alterar semente afeta todos duma vez. Às vezes queremos uma semente fixa pra testar e replicar os resultados. Mas geralmente queremos que ela varie toda execução. E com tudo no Random Singleton isso fica trivial de fazer.
| //adicionar uma chance de ocorrer uma mutacao <aqui> | ||
| //s e m p r e fazer mutacao tem risco (pouca mutacao eh okay (mas mais tentativa e erro)) | ||
|
|
||
| if (Random.value < 0.5f) |
There was a problem hiding this comment.
Definir esse valor numa constante, assim fica fácil de mudar a taxa de mutação.
| return map; | ||
| } | ||
|
|
||
| public static NPC_SO[,] EvolutionProcess(MapElites mapElite, int numIter) |
There was a problem hiding this comment.
Esse código é quase igual o anterior. Façam uma função que executa os passos parecidos. Polimorfismo provavelmente faria que não precisasse replicar nada daqui.
LeonardoTPereira
left a comment
There was a problem hiding this comment.
O Código está ótimo!
Deixei algumas sugestões de melhora. As do random são para depois do merge.
Porém, se vcs puderem verificar sobre as 2 constantes que pedi para criar e tentar sumir com um trecho de código repetido que comentei, seria ótimo!
Se vcs tiverem muito apertado, me avisem que aprovo sem isso.
Mas só devo conseguir começar a mexer com os NPCs dentro do projeto no final do mês, então vcs tem um tempinho aí.
commit manual (?)
comitão manualzão
LeonardoTPereira
left a comment
There was a problem hiding this comment.
Deletar assets das pastas de Execucao








Integrates NPC Generator in a separate scene. NPC generation path defined to Assets/Resources/NPCs. Input system is in conflict with the new input system and does not work properly. In order to work, the generator executes itself automatically when playing the scene. Fixes #52.