From Zero to the World's First VR Coding Education Experience

The Ultimate Coder Challenge IV: VR is coming to an end!

I’d like to start this article by thanking Intel and Microsoft for their support and for the opportunity to be part of this competition. In particular, huge thanks to Eric Mantion, Bob Duffy and Wendy Boswell for their mentoring and support during the process.

This has been a huge learning experience and it has provided a significant boost to this project. While the competition is ending, our journey with Zenva Sky is just beginning and we are looking forward to launching this experience to the general public within a few months.

Initial Iteration (weeks 1 – 3)

We started Zenva Sky with the intention of creating the world’s first VR application to teach coding and computer science. Whilst we had some ideas and mockups of how it was going to work: the user was going to code different interactive elements in the environment in order to solve puzzles.

This concept was developed in a prototype where users could program movement, rotation and scale changes to blocks in a dreamy geometrical environment. This is what this demo looked like so:

After trying this demo ourselves and showing it to people in our working space we quickly realized it was overly complex and not conducive to the learning of computer science.

To be fair, there is certainly potential in that first idea for different types of applications, and who knows! We might revisit it in the future. For example, a game editor that worked in VR could make use of such an approach to allow users to setup their levels and imprint behaviors to game entities.

Code your own robot (weeks 4 – 6)

After hitting the end of the road with the first prototype we took a step back and re-thought what we were building, what the goals where and how it would make use of VR as a medium (why would it make sense to do it in VR and not in 2D).

The goals we initially set for our project stayed the same: to teach anyone basic concepts of computer science and motivate people to learn how to code.

The role of the user within the app changed. Instead of interacting with cubes, how about we gave the user the chance to code their own robotic vehicle?

Robots that teach coding are hugely popular not just among kids. If that model is working in the “real world,” there could be something there we could explore in VR. What we can do in virtual reality which we can’t do in the real world is actually drive this robot without the risk of hurting anyone!

Moreover, we could even make the robot fly. Why not? Finally, things started to feel right with Zenva Sky and we went through a phase of hyper-productivity until the new prototype was ready.

The user would enter commands from the robot dashboard. These commands would allow the robot to navigate through an environment. We could now cover concepts such as Boolean variables, loops and conditionals.

With basic elements in place and a working prototype we could improve upon week after week, we developed 8 different coding challenges.

Game environment (week 7)

We had narrowed down the basic gameplay and that felt huge. All of the sudden, we started receiving positive feedback from users we tried this with.

The world however looked plain and boring. VR allows the creation of limitless worlds. Why not use this opportunity to show people what’s possible when you learn coding?

A donut-shaped world was developed, settling at last the art style of Zenva Sky (plaster / play dough for the environment, and low-poly for the interactive elements). We created this world in VR using Oculus Medium.

 

First impressions matter (week 8)

In the realm of digital technologies, winners are usually not those with the most advanced features, but those who provide the best user experience.

We are aware of the importance of first impressions and user onboarding given the impact it has had in our coding education platform Zenva Academy. Whenever we have any bugs in the signup process or any of the first few screens, sales and user engagement plummets.

At Oculus Connect I received a lot of feedback all the way from industry experts to VR enthusiasts, and a constant across all individuals was the need for me to explain how to use the app. That is why this week we shifted our focus to working on a tutorial and onboarding process for the application. You can see our progress in the video below:

It is key that the user is onboarded the right way and taught how to user the UI. This needs to be not only clear but also engaging. When the user starts the application, they will see two characters (the ones you see in the video and screenshots are temporary “hello world” demos from MagicaVoxel) who will approach them with a mission: to rescue their friend who is trapped at the center of the Donut World.

The only way to release their friend is to deactivate all the locks – there we have our mission! People learn better when there is a purpose and a context. By having this goal, we expect our users to feel more motivated to complete the training.

We are half-way through the tutorial, but it will basically onboard the user into the experience, teach them how to control the robot and give this experience a story line.

Next steps

We plan to continue working on the onboarding and tutorial aspect. After that, the idea is to incorporate the characters and further dialogs and instructions as new commands are introduced.

The idea is that at the end of each challenge, the pseudo-code is also shown as real Python code, so that users can get exposure to a real programming language.

In parallel, we’ve started working on the final model for the robot: yes, it will be a mech robot! Once we have that we’ll design the final models for the Boolean switches and other in-game elements.

Once all of that is done, we’ll continue polishing different aspects (we need sound effects, music, particle effects, better dashboard UI) until we are ready to launch in Early Access and start showing this to both schools and learners at Zenva.

What to be notified when we launch?

If you want to be notified by email when we launch Zenva Sky make sure to create a free account at Zenva Academy, where you can also take both paid and free courses on Python, Unity and HTML5 game development.

You can also follow us on Facebook, Instagram, YouTube, Twitter and LinkedIn!

Thanks for following our progress and we look forward to hearing from you!

For more complete information about compiler optimizations, see our Optimization Notice.