Idioms for Composing Games with Etoys

Markus Gaelli, Oscar Nierstrasz, Serge Stinckwich. Idioms for Composing Games with Etoys. C5'06.

Creating one’s own games has been the main motivation for many people to learn programming. But the barrier to learn a general purpose programming language is very high, especially if some positive results can only be expected after having manually written more than 100 lines of code. With this paper we first motivate potential users by showing that one can create classic board- and arcade games like Lights Out, TicTacToe, or Pacman within the playful and constructivist visual learning environment EToys dragging together only a few lines of code. Then we present recurring idioms which helped to develop these games with only a few lines of code.

Learning to program with Etoys is very mind-stretching. Beyond the drag-and-drop syntax there's a world where programs are created by directly manipulating tangible objects on the screen. The objects expose a varied collection of primitives and it's a real journey of discovery to learn how to compose simple and beautiful programs. This paper documents some of the "aha!" discoveries that make Etoys programming lots of fun.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

My kind of article

I've got no experience with Etoys, but I love seeing simple games implemented with very little code. That's the way it should be!


I love seeing simple games implemented with very little code.

I love seeing anything simple implemented with very little code. Isn't that one of the hallmarks of a well designed system?


I'm reliving this experience at the moment and having a lot of fun. I'm not up to the same level of Etoys-sophistication as the authors but the paper gave me some definite "I have this pattern" moments, like Text as variable.

I've found two other things very valuable along the way:

  1. Working with a professional illustrator. This makes everything much more fun :-)
  2. Going "all the way" to a finished product with Smalltalk extensions when Etoys seems to be at its limit. My first efforts at this involved writing a lot of Smalltalk code ("porting" you might say) but with practice it's taking the more comforting turn of just writing a little bit of Smalltalk to extend the Etoys vocabulary, then continuing with scripts.


Incidentally you can download the Squeak browser plugin and run these games from the web at