I don't see anything you questioned that would not be able in AGS. I don't think you could have multiple occurrences of cMale, but you could create cMale1, cMale2, etc. The rest of what you suggested sounds like a good start. There will be more involved in processing the queus, but a good start.