In the last couple of days, I decided to work on the old #Luanti minigame #QuikBild (not by me originally), a word guessing game. It can be played on A.E.S. Players must build a word, like "apple" and others must guess the word to score.

It’s fun but there are many small and big longstanding issues like a small word list, confusion with word meanings, AFK, bugs, usability problems, and more.

I want to make sure all those old issues will be fixed and that QuikBild improves.

A look behind the scenes: #QuikBild randomly picks a word from a word list to show it to the builder. This word is translated in 5 languages which can be set by players.

This makes it more complicated. We have to account for different word meaning, per language. Like "spring" can't be translated well w/o context (e.g. water source/season/mechanical?).

This is already an issue in English alone, but with 5 languages, it becomes more tricky …

#AES #Luanti #QuikBild #GameDev

I found a solution tho: I changed the way how words in the word lists are stored. Previously, each word was identified by just the literal English word. Which is a problem for e.g. "spring".
Now, words (concepts) are identified by the English word PLUS an optional context field. This is somewhat similar to gettext.
So there are now "spring|mechanical", "spring|water source", etc.

The translated words also support a context, but this is just for displaying to players.

#QuikBild #GameDev #Luanti

But it turns out this isn’t good enough. During playing, I noticed that frequently, players basically figured out what the artist built but they don't say the EXACT right word so they didn't score. Super annoying.
For example, the word was "truck" but the guesser said "lorry". The solution for that is simple: I just added a list of synonyms for each word. Guessing any synonym of a word counts as a correct guess.

#GameDev #QuikBild #AES

An upcoming planned feature for #QuikBild is also to upload word list translations to #Codeberg Translate, a #Weblate instance, so the words can be more easily translated in the browser by translators instead of editing CSV files directly.

This should allow to extend the word list much faster.

#GameDev #Luanti