types of video game mechanics