private void CreateEntities()
        {
            m_entityMapping.Clear();
            m_deadList.Clear();

            var entities = new List <Entity>();

            foreach (var genome in m_population.Genomes)
            {
                var tank = TankFactory.CreateFromGenome(genome);
                if (tank == null)
                {
                    Log.ErrorFmt(
                        "Failed to create entity for generation {0} genome {1}",
                        m_population.Generation, genome.Id);
                    continue;
                }

                var renderComponent = tank.GetComponent <TankRenderComponent>();
                Debug.Assert(renderComponent != null);
                switch (genome.GenomeType)
                {
                case GenomeType.Random:
                    renderComponent.BodyColor = Color.Magenta;
                    break;

                case GenomeType.Clone:
                    renderComponent.BodyColor = Color.Blue;
                    break;

                case GenomeType.CrossOver:
                    renderComponent.BodyColor = Color.Red;
                    break;
                }

                m_entityMapping[tank.Id] = genome.Id;
                entities.Add(tank);
            }

            m_currentRoundTime = 0f;
            m_lastHitTime      = -5f;
            PositionEntities(entities);
        }