I am a language teacher and what I would want to do is an android game with which my students could practice custom English vocabulary.
The game would go like this:
-a random word (in students’ mother language) is picked and shown at the bottom of the screen
-clouds with random words are placed on the scene along with a cloud that contains the right word
-the player then has to fly (or move) through a cloud with the correct English equivalent word in it
The questions are:
How to quickly make a word list that would contain the English word as well as its translation into my language?
How to access this information and compare if the player flew through the cloud with the correct word in it?
Thanks for help!
One way could be using the YARN facilities in Gdevelop. Making two branches of dialogs, one for the words in English, the other for the other language words.
Using the YARN options you can choose a random line of said branches, lets say number 4, and check if the selected word is the same as the number 4 line of the other branch.
I think it could give you enough room to add a good amount of words, in both languages.
I was using it to have texts in different languages in a game. (I used 0 for Spanish, 1 for English)
A more standard way would be to build structures or arrays with the words stored and compare the value of the displayed word with the value of the word the player is in collision with.
Please read Variables [GDevelop wiki]
So I’ve created this variable structure:
Each child variable should contain the English word and its translation into my language.
Now what I would want to do is to:
- randomly choose a child variable (i.e. random word)
- display both the name (i.e. the translation) and the value (i.e. the English word) into two separate text objects
- compare the value of the displayed word with the value of the word the player is in collision with.
Is there a way to that in a simple way?
I think you’ll need two arrays to do this, because random picking requests a number to pick from.
Here’s for #1 and #2.
Notice the square brackets to insert the value of a variable as child name (array index, in this case).
But it’s a bit painful to build, selecting Array and String for every entry. If I had a lot of entries, I would probably edit the JSON outside GDevelop to copy-paste and build it faster (or use an external JSON file and import it).
Now that you have that, try to figure out #3 and let us know.
There’s a condition to compare strings of text, I assume you’ll have to use that.
Personally, I think the use of dialog YARN capabilities of Gdevelop could be a good way to make it.
It will let you add a lot of words if you use sections of vocabulary, like 1-E for English words starting with A, 1-S for words in the other language, 2-E will have the next list, 2-S will get the translation and so on. Lets say each branch will hold a 20 words list so you can use a random in range from 0 to 19 to read the words from both lists. Hold them in different variables, and you can display them.
You can use any way to let the player choose the right word. A list, objects, just being careful to put the right word there.
Maybe it is just me holding in a more difficult way to do it. “When you only have a hammer, you’ll see anything as a nail”.