Tuesday, April 8, 2014

MINI-REVIEW: Untrusted is a game more like real world programming than you might think


Games about code and hacking are not exactly new, but the humble little side project of Alex Nisnevich called Untrusted, or, the Continuing Adventures of Dr. Eval is a fun and tricky browser-based puzzle game that really puts a player's JavaScript skills to the test.

Although there is little exposition in Untrusted, the gameplay itself does a great job of illustrating the relationship between code and the digital worlds it creates. It does this by exposing the code that has made the game world to the player, and then allowing players to inject their own code to manipulate the game world. It's a concept that other games have tried to explore in much more dramatic fashion, like the mostly-defunct Code Hero project. But Untrusted's much humbler ambitions seem to serve it well.

The graphics may not be pretty, but they definitely show your code in action.

For example, Untrusted isn't about teaching JavaScript, although I think the opportunity for some tutorial-esque level development certainly exists. For the moment, however, the game assumes that players have a bit of familiarity with JavaScript, which makes Untrusted anything but a "casual" game, despite being browser-based. It can be quite difficult to discover the solution the developers most likely intended players to use in any particular scenario. But fortunately, you don't have to have to be psychic. JavaScript is JavaScript, after all, and while the game necessarily places some restrictions on a player's options, there's always more than one way to pass each level.

But Untrusted really excels in how the gameplay emphasizes reading code and about learning how to use an API. Many programming-centric games tend to over-emphasize the godlike aspects of being a programmer, and gameplay consists largely of creating and destroy objects in a game world, but Untrusted seems much more focused on training players to think about how to manipulate an existing code base. In that respect, Untrusted is far more like any real-world coding job than almost any other code-based game I've previously encountered.

For those who struggle to connect the abstract concepts of programming to real-world applications, or those who have taken some basic courses in JavaScript but don't really know how they might be asked to use those skills in real application development, Untrusted is a pretty useful model for how software applications can be structured and modified.

Over all, Untrusted is a clever programming game that seems perfectly suited to being guiltlessly enjoyed on a lunch break or incorporated into a lesson plan on programming or computer science. So what are you waiting for? Go give it a try at alex.nisnevich.com/untrusted.

Have you checked out Untrusted? Love it? Hate it? Want to share a particularly clever solution? Share your thoughts in the comments below.

3 comments:

  1. Reviews like this make all the work that went into Untrusted worth it. :-)

    ReplyDelete
  2. Well, games like yours are the reason I believe that we've still got a lot of wonderful things to learn about games and learning.

    Alex, thanks for a fun game and for stopping by and leaving a comment!

    ReplyDelete
  3. AnonymousMay 30, 2014

    I'm a recreational (or casual) programmer, and while I don't work with JS very often, I still found Untrusted very approachable, very fun, and very challenging -- a rare triple-win. I find myself wishing similar games existed for other languages... they make learning addictive! Thanks Alex (and Rachel)!

    ReplyDelete