A virtual air-hockey game and a virtual and an actual marble-maze game have been created that allow data to be captured while the games are being played. This data is parsed into small parts of the task called primitives and databases of observed primitives are created. A learning agent then uses the database to perform the task. A virtual air-hockey player has learned to select and make shots. An agent is being created that will learn how to play the marble-maze game in a similar manner.