Want more like this?

Edge of the World - What Open-World Games Can Teach Us About Design

Spoiler: It's all about the illusions

There's something amazing about today's big-budget open world games. Worlds like Los Santos in Grand Theft Auto 5, Medici in Just Cause 3 or the imaginatively named San Fransisco in Watch Dogs 2. These worlds are massive, filled with interesting, detailed landmarks. Shadows and shaders make the beautifully modeled and animated people come to life - all at higher frame rates than a movie theater - while being fully interactive and rendered in real time.

But even games which cost north of $200 million to develop have to deal with one basic problem; every game world has an edge. And the job of maintaining an immersive experience in a limited world is made so hard by the free-roam game mechanic of the genre.

Meanwhile, back in Software Dev

Meanwhile, back in software development; the world is being changed by machine learning. Developers can harness the power of data and GPUs to make predictions, recognise images, deal with audio data and even synthesise text. Now is truly an amazing time.

Atari video game

But we haven't created "General AI" yet. Software giant Google's DeepMind lab has managed to generate bots that play Atari games. But that's a far cry from their next research subject of playing complex, open-world games such as GTA 5, let alone full general AI.

So this begs the question; how as developers and designers, not AI researchers, can we deliver great user experiences using machine learning? General AI has been just around the corner for perpetuity, but it is not her yet. How can we hide machine learning's rough edges?


One common edge hiding technique is water. Los Santos conveniently happens to be an island in the middle of the sea. Medici takes that a step further with an archipelago of islands.

But video games are even more limited, even the oceans must have edges. Or at least you would think. This trick is the most important part of the strategy: creating an illusion of motion.

Unlimited ocean, in the same location in Just Cause 3

Having a fully unlimited ocean is harder for developers, but is also terrible from a design perspective. If a player wastes X minutes swimming to the "edge of the ocean", it's pretty boring for them to have to turn around and swim X minutes back again.

So the developers use a trick. The ocean does have an edge. But once you get to the edge - while the swimming animations continue - you don't move. Oceans have waves, so by changing the wave's parameters the developers can create an illusion of infinite ocean.

What do oceans have to do with AI?

The ocean technique is interesting. It hides the edge of the world in infinite, meaningless and boring content. Almost a "default behaviour" if you will.

Siri loves to just search the web instead of answering questions

I think this is a technique that many vendors have already picked up on. When Apple's Siri system can't find an action related to your input, it just searches the web - a place not unlike the ocean.

Subtler ways

Not all games use the sea to hide the edge. Other games use more subtle ways; like dense forests with trees too tall for the user to overcome, or removing resources so that the character can not survive the journey to the edge.

These are some really interesting ideas. For the integrity of the machine learning hype train, is it possible to push the blame for issues onto different parts of the application - just like the forest of trees strategy? Or can applications remove data when something reaches the edge of the functionality?

Video games have always been inspirational when looking for practical ways to make AI a reality. Games very early on created AIs to challenge players - many of which are extremely limited, but created an immersive experience. How do these new generation of open-world games, with their new techniques for "faking it", inspire better AI user experiences?

Get More Great Content

The intersection of marketing, design and machine learning, delivered straight to your inbox:
Awesome! Please check your inbox and confirm your email.
We'll email you our latest posts plus special past content. Change your settings any time.

Magic Name

Find the name of every subscriber -- without asking

Begin Favicon Project

Taking the Sunday hack too seriously

Exposing properties with Graphene Django

The other missing guide

Arithmetic with JavaScript Arrays

A Astonishing Adventure

Freeing Disk Space with the PackageKit cache

Automatic updates gone wrong

Keeping Python projects secure on GitLab

Pinning projects to the very latest

Testing GraphQL with Graphene Django

The missing guide

Local Politicians Meet InfoSec - a Wordpress Disaster

The article that I didn't want to have to write

PGP for Every Email

Join us in our PGP journey

SELinux Concepts - but for humans

This is your SELinux dictionary!

A new way of writing Gtk+ applications

Introducing Pyract - my weekend hack

Stop Disabling SELinux: A Real-World guide

Be safe from software vulnerabilities AND run your webserver

Plotinus and the quest for searchable menus

The underdog challenges a 30 year old UI convention

DMARC Secured Your Email Identity, But See How it Ruined Mailing Lists

Why people aren't posting on your mailing list

How they track you: Email Service Provider Edition

A summary of how major email marketers track their emails

Blender for Hackers - 3D modeling is just like using VIM

A very brief introduction to Blender

When fictional worlds are an accurate representations of IoT security

Ok, a little dramatized. But still truthful.

How I Destroyed my Blog's Performance with CSS Background-Blend-Modes

Just because a browser has a feature doesn't mean you should use it

Help Us Answer: The Email Signup Popup - where is it from?

Who is behind the latest wave of popups?

My WATCH runs GNU/Linux And It Is Amazing

Lennart Poettering would love it!

6 Stunning Email SignUp Form Designs with Free HTML

I've spent way to much time on dribbble researching these!
G'day Mate, join us on IRC for good banter:
#Learnt on Freenode
See you there!