Adicionando rótulos C # a um formulário no tempo de execução

Eu estou tentando fazer um jogo simples baseado em texto em c #. Como eu quero conseguir isso é adicionando rótulos a um formulário (em vez de usar o prompt de comando). Estou tendo algum problema em adicioná-los à tela. Visual Studio está dando um erro não especificado (dizendo apenas que eu tenho uma exceção não tratada):

Referência de objeto não definida para uma instância de um objeto

quando tento usar uma matriz para preencher a tela com esses rótulos. O código:

private void Main_Game_Load(object sender, EventArgs e)
{
    Label[] Enemies = new Label[20];
    Label[] Projectile = new Label[5];
    Font font = new Font(new System.Drawing.FontFamily("Microsoft Sans Serif"), 12);
    Random rand = new Random();
    Point point = new Point(rand.Next(500), rand.Next(500));

    for (int i = 0; i < Enemies.Length; i++)
    {
        Enemies[i].Text = "E";
        Enemies[i].Font = font;
        Enemies[i].BackColor = ColorTranslator.FromHtml("#000000");
        Enemies[i].Location = point;
        Enemies[i].Size = new Size(12, 12);
        Enemies[i].Name = "Enemy"+i.ToString();
        this.Controls.Add(Enemies[i]);
    }
}

Eu estou querendo saber onde o problema pode estar escondido? Eu pesquisei e meu código parece que deveria funcionar (além de agora ponto não randomize na tentativa de preencher).

questionAnswers(2)

yourAnswerToTheQuestion