P-2-P games for computer science

The main idea behind this paper is to take advantage of game design and implementation to learn several principles of distributed systems. This approach represents the other end of the spectrum with respect to the usual meaning of edutainment. The educational part is the building of a game, instead of playing that game. This paper shows how several of the main principles of distributed systems have a “natural” mapping in distributed games, thus inducing their deep comprehension in the developers of the game. We discuss an experimentation that lasted several years, involving students of computer science, at the forth year of their curricula in our University. The course in distributed systems requires the design and implementation of a distributed game, and the students are requested to perform that task in small groups. The students are requested to design and implement a Web based game between peers, avoiding any form of centralization during the game playing. Moreover, the game has to be tolerant to some kind of faults, keeping coherent behavior for the correct players.