Inspiration
I wanted to create a quiz game where language wouldn't be a barrier, making knowledge accessible and fun for everyone. I also made this choice in line with the theme of the competition: "a mobile game." I often play Meta games in the subway, and unfortunately, most action games lag too much to be enjoyable. Everybody Quiz is therefore a quiz accessible to all and playable anywhere.
What it does
Everybody Quiz shows the same questions to all players, but each player sees them in their own language (language selection is done only once). The staging reacts live to the answers, creating an immersive TV game show atmosphere. Theme selection is friendly: random themes are displayed on a wall and players just pick them. At the end of each game, new themes are proposed. You can also configure the quiz (difficulty, number of questions, etc.). There's also a combo system if you answer correctly several times in a row. On mobile, you simply tap to answer.
Currently, there are 18 main themes: History, Music, Sports, etc., and 33 sub-themes of musicians ("Katy Perry", "Queen", ...). I estimate there are around 10,000 available questions.
How i built it
I created the experience using the Meta Horizon desktop app in TypeScript, and Blender for modeling.
Challenges i ran into
Generating the questions
I used the paid OpenAI API to generate the questions. This was done in Python and represents a large part of the behind-the-scenes work. Did you know that if you generate more than 20 questions on a theme, the AI loops and starts giving you the same questions again? Or how do you translate answers into four languages while keeping the question's context? … A lot of research went into achieving a satisfactory generation process.
Managing thousands of questions
Themes need to be suggested and questions filtered to generate the quiz. Several mechanisms are in place:
Each quiz is stored in a TextAsset.
A quizlisting file stores all available quizzes and their tags. This allows easy access to the list of quizzes and their tags, and lets me update quizzes without publishing a new app version.
Tags overlap: for example, the "Music" quiz has the tag ["Music"] and the "Katy Perry" quiz has ["Music", "Katy Perry"]. This way, new quizzes can feed into general ones.
The number of chosen themes is limited.
...
Lighting management
This was the hardest part: how do you animate more than 150 lights without causing lag? I’ll let you think about it... But the worst part came when I finished the game and realized all the lighting management didn’t work once the world was published. It was a heavy blow, and I nearly gave up. I spent days isolating the random issue and sent Meta a scene with only 3 objects. Then I had to find a workaround. In the end, I had to manually process over 150 lights one by one. That was a real challenge.
Mobile touch controls
I had never coded a game with Client/Server handling, which is necessary for a mobile experience (camera control and screen tap raycasting are handled client-side).
Accomplishments I’m proud of
I’m proud to have imagined, designed, and developed the entire experience solo.
What I learned
I learned to develop on Meta Horizon, to write efficient TypeScript, and to implement event-driven logic (a first for me).
What's next for Everybody Quiz
In progress:
Implement a system to report questions deemed irrelevant, allowing me to refine the existing questions.
Publish new quizzes – I'm currently working on Disney movie-themed quizzes.
Future plans:
Create a winner’s podium.
Enrich the stage design with pyrotechnic effects and moving spotlights.
I’d like to add new areas that unlock based on the player's score. A number above each door would indicate the score needed to unlock it (like Mario 64 with stars). These new zones would hide exclusive themes (Guinness Records, Darwin Awards, ...). It would be a unique way to encourage player engagement through exploration.
Introduce a Donation Master List where top donors can choose the theme of a future quiz.
Add quests: by example, "answer 5 difficult music questions correctly", "finish first", ...
A shop allowing players to customize their avatars with different outfits.
Built With
- openaiapi
- typescript



Log in or sign up for Devpost to join the conversation.