refactor game director

separate game director from the producer and expose their builder
through property