Well-designed educational games (both online and offline) can be a valuable way to engage students with a topic. However, games can also be a time-consuming distraction, so it is useful to be able to identify which are suitable. This paper provides guidelines for evaluating games, and applies them to identify promising games. We begin by defining what is meant by a game, ruling out simple animations or quizzes, and focusing on a more playful approach to education. Based on this definition, we have identified games that are available for teaching topics in computer science, and classified them. We have developed criteria for evaluating games based on existing research on educational games, combined with educational theory and considering them in the context of CS. The criteria developed cover the topics taught, how easy it is to install and run, how engaging the game is, and how much time students might invest to use the game. We find that although there are a number of worthwhile games in the field of CS and most are free, the coverage of topics is very patchy, with most focused on programming concepts and binary numbers.