Math Quizzes in VR

About the App

When: 2019

Duration: approx. 2 weeks

The application is aimed at 10 – 11 year olds with the intent of quizzing them on six math topics: rounding, multiplication, division, addition, subtraction, and merged operations. The user would be in an immersive VR environment as they attempt to complete the quizzes.

Each topic varies in number of questions (between 10 – 15 each). The user selects which topic they want to be quizzed on by pressing the relevant labeled button.

The mechanics for each type of question differs depending on its 2D printed format equivalent. For instance, the VR mechanics for multiple choice questions would differ from “match the correct answer to the correct equation”-type questions or “circle the correct answer”-type questions.

The user has 60 seconds to answer a question, of which they are reminded via a timer. The system will then check whether the answer selected is correct or otherwise. If the selected answer is correct it is highlighted in green, otherwise it is highlighted in red. A “next question” button then appears, giving the user time to reflect on the question for as long as necessary.

For drag and drop-type questions, users drag their answers to the answer boxes. The answer boxes are highlighted in yellow to indicate that the answer is “detected”. When removed, it will revert back to white to indicate that no answer has been placed. The user can press the “Check Answers” button anytime. The system will then check the answers – answer boxes with the correct answers are highlighted in green whilst incorrect ones are highlighted in red.

I initially wanted to load the next question after a few seconds, but I decided that giving the user ample time to reflect on their mistakes presented a good learning opportunity. The system also keeps track of right and wrong answers and displays the final score at the end of each quiz.


The VR environment features a kindergarten setting to appeal to the target age group. I opted for free, low-poly models to minimize cost, optimize performance, and because it fits the overall “feel” of the application. I was so happy I could find the free models in Unity’s Asset Store! They are so simple yet so cute and effective.

I inserted some relaxing (royalty-free) background music – because it felt awkward doing the quiz in a VR environment surrounded by dead silence. I also included some ambient “park background” sounds (birds chirping etc.) to make it feel more natural and immersive.

I added a button to reset the scene for every new user. Some quizzes require the user to move objects around, and at the time, I couldn’t think of a way to efficiently reset the objects without having to implement some really roundabout methods. As a result, I opted that for every new user, the scene would do a nice, clean reset.

Upon the starting the application, the user is presented with a “Welcome” scene first to not overwhelm them with all the buttons and UI panels from the get go.


Personally, I am quite pleased with how the application turned out. However, upon further contemplation, I thought it could’ve been improved with the following features:

  • showing a personal scorecard detailing performance across the board, maybe highlighting areas of weakness and strength
  • a scoreboard function detailing top scorers
  • make the quiz mechanic into some sort of plugin other developers can use, so they can easily author their own custom quizzes without having to go through so much trouble


This project was fun in that it posed new challenges and learning opportunities. The most challenging part was virtualizing the questions which were in a printed 2D format. What is the virtual equivalent of actions which are traditionally done with pen and paper, such as circling the correct answer, matching the answer to an equation, or writing an answer in a box? How can we do it elegantly?

I remember bending heads over heels realizing how complex it is to simply create a virtual quiz – in my solution, there were so many different components! A different class for the quiz item, another class for the question item, a “quizManager” component, a “quizManager” script, and a dozen of other scripts, prefabs, objects and not to mention the lines of code that come with it. Plus the fact that some questions were in different formats – it works in a different way entirely. It astounded me how much work, effort and detail I had to put in to make a seemingly simple thing work – a quiz!

It reminds me that there are so many things around us too that seem so simple at first glance, but when you look into the inner workings, reveal a much complicated system. Just take a look at our own bodies: blinking, breathing, hearing – they are all automatic and we do not even have to think about it; but the system behind it, all the different cells and organs working together in tandem and systematically – is something we cannot replicate even to this day. Amazing!

I learned a lot of knew things to make this project what it is, and I am thankful for the experience.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s