Эх, если бы я сам профессиональным программистом был, то давно бы свой движок разработал... А непосредственно задачу игры можно реализовать разными путями. Вот в ФИФЕ, допустим, есть пошаговое развитие матча - там это необходимо для управления игроками в ходе поединка. И от ежесекундных перемещений игроков, пасов, ударов каждый раз раз ситуация на поле разнообразная. То есть там человек, управляя процессом игры, "строит" ее за себя поеимущественно сам. А компьютер, как противник, реагирует на твое управление расчетом перемещений, пасов и ударов своих игроков. И даже там заметна блочная конструкция, когда вдруг компьютер проводит комбинацию (серию пасов с ударом), которую ты не в силах остановить и заблокировать ее в этот конкретный момент действиями своих футболистов. Комп просто передавливает (в какой-то момент рассчитывает голевую ситуацию и забивает). А иначе бы человек побеждал комп всухую в ФИФЕ...
Другие же симуляторы-менеджеры реализуют, похоже, иной принцип игры - с набором стандартных ситуаций по типовым схемам. Гладиаторы, например (www.gladiators.ru). Там управлять гладиатором в ходе поединка нельзя, а можно только дать задание по тактике боя. И вне поединка развивать нужные тебе скиллы. Сам бой стандартный - создан на основе скрытого алгоритма из типовых элементов (блоков) нападения, пары ударов, отхода, блока и уклона. Программа сама рассчитывает исход боя (как в BB), а не создает его в диалоге с пользователем. Но там рэндом так рулит, что многих приводит в бешенство. BB - более тонкая и вразумительная игра.
Ну, и описание действий и возможностей движка - это только описание, а сама программа, написанная на языке программирования высокого уровня - это код программы.