Word Lists

From GCompris
Revision as of 12:29, 26 May 2013 by Karin (talk | contribs) (fixed some typos)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Activities that use Word Lists

There are several activities that use the Word List format:

We will first explain how the file format works, then take you through the level design.


A word list looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Wordlist name="default-en" description="Default English (Canada)" locale="en">
<level value="1" speed="150" fallspeed="7000" sublevels="10">
<level value="2">

And this is what the tags mean:

  • Wordlist: Some general information about the file
    • name: this is identical to the file name (withouth the .xml at the end)
    • description: Add the name of your language here
    • locale: This needs to be the ISO code for your locale (same as the name of the .po-file)

  • level: Create a <level>...</level> tag for each new level
    • value: The number of the level, starting from 1. You can have as many levels as you want, but make sure you don't miss a number!

The remaining attributes of the level-tag are optional and used in Wordsgame and Simple Letters only. Use these if you feel that words/letters are dropping too fast or if higher levels get too long or lower levels too short - some languages will need more levels than English in order to teach everything!

  • level
    • speed: How fast new words appear. The higher the number, the slower words appear. Try values from ca. 150 to 100, and then test play.
    • fallspeed: How fast the words drop. The higher the number, the faster words drop. Try values from ca. 7000 to 4000, and then test play.
    • sublevels: How many words will have to be typed correctly in order to solve the level

Simple Letters (Typing letters) level design

This game drops letters o the screen that the child has to type before the reach the ground. So, what you will provide here is the alphabet of your language rather than whole words. However, we use the Word List format for this, because it lets you control which letters to teach at which level, according to the needs of your language. Also, you can use multigraphs (sounds that consist of more than one letter, for example sh in English or sch in German for the sound /ʃ/). The game has an uppercase and a lowercase mode (set with Configuration while you play the game). So, you will need to provide two files:

Levels containing both uppercase and lowercase letters (if your language has them)
Levels containing letters that will be displayed in uppercase only. In the XML file, you can write them in lowercase if you want for easier typing; GCompris will convert them as appropriate. If upper doesn't exist, GCompris reverts to default.

If your language doesn't distinguish between upper- and lowercase letters, please feel free to 'misuse' these two modes to fit your needs. Maybe create a "baby" and an "advanced" mode instead? If you do that, you will need to adjust your translation of the level configuration in the .po-file accordingly.

When teaching new letters, you can use the sublevels attribute to make sure that all letters in a level are presented: Here's an example from the gd locale:

<level value="10" sublevels="12">

Note: If your locale already has these two files, please have a look and revise them anyway. Most of them have been carried over from an older definition in the .po-file and might not suit your language's needs at all! For example, only introduce letters that require more than one keystroke in the upper levels.

Word list level design

Here are some level design suggestions for you. Of course, you can do as best fits your language!

The minimum you will have to do is to provide a general word list, but we recommend that you provide separate word lists for each game if your language contains letters that are difficult to type. Also, we recommend that you reverse the order of the levels for the hangman game in any case.

Please read all sections on level design carefully before you get started on designing your wordlists.

Providing a General word list

To get started, you can provide a single word list file for your locale named:


Where XX is your target locale. This is the master list all wordlist games will use as a default, unless you provide separate wordlists for them. You can pick the english file from our git repository to get an up to date example.

If you provide only one word list, please note that all words must be chosen to be simple in your language; don't necessary translate the English. Also, it is important to make sure that these words can be written with your keyboard in one key (no alt gr stuff or compose key). We will explain more about fine-tuning word lists for different activities below.

In order to be useful, each word list must contain about 1000 words. If you can, pick the words from a school children's book or wiktionary.

There should be at least 5 level sections which contain:

Word length for levels in wordlist games:
Level Word Length
1 < 4 and very easy to type
2 = 4 or < 4 not so easy
3 = 5
4 = 6
5 > 6

There are currently three activities that use this word list:

  • Wordsgame (/computer/keyboard/wordsgame)
  • Reading (/reading/readingh and /reading/readingv)
  • Hangman /reading/hangman

You can provide separate word lists for them if your language has characters that are more complicated to type and that you would wish to teach. We recommend that you provide a separate list for the Hangman activity in any case, which basically just means reversing the levels.

Wordsgame (Typing words)

This is a typing game. Unless your language has characters that are difficult to type, just follow the rules layed out above for Providing a General word list. If your language has letters that require more keystrokes than simple letters, it is best to keep these letters out of the lower levels. Create a level higher up that will introduce them with some shorter words, then start to mix. Keep the words with complicated letters in them shorter than the other words, and keep in mind that they also require more thinking, not just more keystrokes! The number of levels is flexible, so if there are complicated letters to learn, you can create as many levels as you need to introduce them.

Example for word length if some letters are complicated to type:
Level Word Length
1 2 - 3 simple letters
2 = 4 simple letters
3 = 5 simple letters
4 = 6 simple letters
5 2 - 3 accented letters
6 = 4 - 5 accented letters
7 = 7 - 14 simple letters, 5 - 10 accented letters


In this game, words on the same level should have the same length. Just follow the rules layed out above for Providing a General word list, except that you can have letters in there that are complicated to type. This is a reading activity, so typing doesn't matter here.


For Hangman, take your reading list and reverse the letters. Short words are harder than long words in hangman! Remove all words that are longer than 10 letters, because they won't fit the screen.

Note that this game supports complex letters, e.g. <sh> makes a single sound in English, so you could design the game to have a button with "sh" on it if you want. The letter buttons are defined in the PO-File. The PO-File also provides an option for keyboard shortcuts for complex letters. For example, if I have both "s" and "sh", if I type <s>, "s" gets selected. However, I could define "sh=S" in the PO-File, so when I type uppercase <S>, "sh" gets selected.