A device for service of a soccer ball to a user, comprising: an accelerator configured to accelerate and deliver the ball with selectable motion characteristics; a ball feed unit ; and an electronic control system configured to store and execute a training program that includes a sequence of training skills having service variables and player variables , each training skill including: a value for each service variable , the service variables including the ball trajectory, and a value for each player variable , the player variables including: (i) a starting position for the user relative to a point of service of the ball and a direction of service; (ii) a position to which the user moves and at which the user first touches the ball following service; (iii) a time interval in which to move from the starting position to the position of first touch, with speed of movement implied by a distance between the starting and ending positions, divided by the time interval; (iv) a body surface of the user used to contact the ball; and (v) a location to which the ball is to be directed with the first touch. an accelerator configured to accelerate and deliver the ball with selectable motion characteristics; a ball feed unit ; and an electronic control system configured to store and execute a training program that includes a sequence of training skills having service variables and player variables , each training skill including: a value for each service variable , the service variables including the ball trajectory, and a value for each player variable , the player variables including: (i) a starting position for the user relative to a point of service of the ball and a direction of service; (ii) a position to which the user moves and at which the user first touches the ball following service; (iii) a time interval in which to move from the starting position to the position of first touch, with speed of movement implied by a distance between the starting and ending positions, divided by the time interval; (iv) a body surface of the user used to contact the ball; and (v) a location to which the ball is to be directed with the first touch. a value for each service variable , the service variables including the ball trajectory, and a value for each player variable , the player variables including: (i) a starting position for the user relative to a point of service of the ball and a direction of service; (ii) a position to which the user moves and at which the user first touches the ball following service; (iii) a time interval in which to move from the starting position to the position of first touch, with speed of movement implied by a distance between the starting and ending positions, divided by the time interval; (iv) a body surface of the user used to contact the ball; and (v) a location to which the ball is to be directed with the first touch. (i) a starting position for the user relative to a point of service of the ball and a direction of service; (ii) a position to which the user moves and at which the user first touches the ball following service; (iii) a time interval in which to move from the starting position to the position of first touch, with speed of movement implied by a distance between the starting and ending positions, divided by the time interval; (iv) a body surface of the user used to contact the ball; and (v) a location to which the ball is to be directed with the first touch. <EOS>