- opponent generation