Over a million developers have joined DZone.

The Challenge With ScalaQuest

DZone's Guide to

The Challenge With ScalaQuest

ScalaQuest is an upcoming game to help teach people Scala. This talk with one of the creators talks about how he approached making an educational game.

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

You might have heard about ScalaQuest earlier this month. It started with two Scala community heroes looking to make learning Scala more fun. So, they did it with a game. 

ScalaQuest takes place in DataLand, a place where the land produces data, and its inhabitants harvest that data to survive. As we in Lightbend loved the idea, I was eager to talk to Alejandro Lujan, one of the game's creators, in a short interview.

As a senior software developer and trainer, Alejandro Lujan splits his time between architecting and building software and coaching others on how to effectively use the Lightbend Reactive Platform. He has a strong passion for teaching and is one of the few certified Lightbend trainers in Scala, Akka, and Play. Over the last four years, he has taught over a thousand people from a variety of companies, ranging from startups like Hootsuite and large corporations like Intel and IBM. Alejandro has also created strong connections with many experts involved in building and supporting these platforms.

Why ScalaQuest? What made you think about learning Scala in a game?

From a young age, I recognized the incredible power games have for creating immersive experiences, and have dreamed of leveraging this for learning. Personally, the biggest push I had as a kid for learning English was playing The Legend of Zelda — learning was just part of the experience, it did not feel like work and it was never boring. I've been looking for the opportunity to make an educational game for years, and I believe I finally found a real need for it in our developer community.

What was the biggest challenge so far and what is it written in?

The backend of the game is — of course — written in Scala. We have a Play application serving content and processing large challenges that need to be compiled and tested on the server side. We will soon be integrating with Scastie for some of the heavy lifting. The frontend is a JavaScript application written atop Phaser, an engine for building browser games. The most challenging aspect of the game — and the most important for the game experience — is integrating learning and practicing code within the game. We don't want to write a game that happens to have arbitrary code writing sections within it. We don't want two separate experiences — the game and the writing code. We're building a game where the code challenges are very much tied to the story and the virtual environment of the game. Creating this embedded experience is difficult, but we think we have good ideas on how to make this happen.

Will the game be available for free?

Users will be able to experience the first couple levels for free, but beyond that, the game will be subscription-based. A subscription gives you access to the whole game, and our plan is to release one level per month. Also, you can't have games without easter eggs, so there's that.

Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.

java ,scala ,scalaquest ,game development

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}