Mojo Quest: A browser-based game for learning Mojo syntax

Mojo Quest is a browser-based game for learning Mojo syntax by closing engineering tickets for a fictional robotics company.

I’ve been working on building resources to help developers get started with Mojo, and I think Mojo Quest will be a fun addition. In complexity, it sits between the Mojo Quickstart and the Mojo GPU Puzzles.

Early problems cover fundamentals like functions, types, operators, and control flow. Through increasingly complex tickets, you’ll also learn Mojo’s ownership and metaprogramming. Every problem runs your code through the Mojo compiler so you can learn from the authentic error messages.

I hope you find it both engaging and educational! One beta tester called it “snacky” which I think captures the spirit of it well. It’s easy to pick it up and knock out a few challenges in a matter of minutes.

The code is open source, so feel free to open an issue or PR. If you’ve got ideas for extensions or improvements, I’d be happy to hear them. :smiley:

Hi there,
would like to say very good job with this.

Well done, this is profoundly useful,
as it maps an coherent journey of ‘real use case’ exercices,
to the feature/concepts that help solves the current part/problem-aspect,
to documentation pages for diving deeper into the current learning point.
(It shows what exist, when, why, and how to use it :+1: )

I also like the over-arching theme around the exercices,
because it also teaches in parallel an introduction to hardware programmability.

Ideas:
Maybe some images of the mojo persona&friends.
Could see small images of the mojo with some wrenches, weldering and what not.
(playfully building useful stuff in his home lab)

So yeah i think you nailed it.
The progressive nature of the whole idea,
this path is probably some real next-level teacheability.

The fact that it unified the features with their practical usecases,
into an coherent journey where hero overcome obstacles and build-trough,
makes it special, engaging, and easy to remember.

The story is fictional, yet the lessons are real :slight_smile:

The mojo knowledge is solidified with parallel meta-lessons,
where user learn: ah yeah, that feature make sense.
examples:

  • Unroll the drive-axis loop → less-latency code for the drive axis
  • Comptime assert → prevent runtime bugs in drive.
  • Use Alloc[] instead of .alloc → hal trait

All of theses not only show an feature, it’s purpose,
but also why it is an valuable feature in particular situations.

Very practical ! :mojo:

Thanks for saying so!

I’m glad you found it useful. It was a real passion project for me and I look forward to maintaining it and expanding it over time. Thanks for the visuals suggestions as well.