My project for the 2016 TTTW class. An emerging complex system - I'm playing around with the idea of location awareness and movement.
Outer Space is exciting - who didn't want to be an Astronaut at some point in their lives? - but what about the inner space that surrounds us? For most of us - this inner space is really as exotic and foreign as any location in outer space.
Location is a really interesting thing. Today we might get our phone to say aloud direction if we need to get from A to B - but how many of us could point towards North right now, or know when we've walked a mile. What if instead of being at our desks we were in a new location we had never been before? While being able to navigate by phone has made getting from A to B in cities easier - it hasn't done much to help us explore the world as it exists outside of paved pathways.
The plan is to spend my time in this class exploring how someone can be having fun while moving around in the world - while needing to master some navigation related skills.
I sat down and sketched out some of my possible ideas for game mechanics.
What sounds most fun to me would be some sort of alternate reality / role playing game with location related prompts and tasks. Spacial awareness, knowing what direction is what, knowing how far you've gone, combined with a design fiction motivating the actions.
At the same time there are a lot of interesting tricks you can use to ascertain direction, like the position of the sun, the way vegetation is growing, the location of puddles, etc. These tips could be integrated into gameplay.
Interaction with others - in a synchronous manner such as by playing "tag" or "king of the hill" with another could bring a competitive aspect. At the same time asynchronous interaction is possible - geocaching is a pre-existing treasure hunt that I could take advantage of as the end point for a task and even re-brand the point of the geocache in a design fiction. Perhaps it is now a dead-drop in a spy adventure?
Before getting to far along any possible toy concept I wanted to make sure that I would be able to achieve the basic functionality I wanted of being able to keep track of where a person is and where they are going.
HTML5 contains a geolocation API that works across most browsers and therefore most GPS-enabled smartphones.
I've written a quick website that uses the mapbox.js maps API and the geolocation API to track your current location and output your location / track.
I was one of those people who did not raise their hand when asked who had played Minecraft during the first class. As it was strongly recommended that we should play, I decided to do so as homework.
Super fun. Did not help my productivity last week... but got me to think a lot about building experiences wide and deep, the role of instruction, and failure.
Working some more on what possible game mechanics would be good I think I came up with some much more refined concepts that could be pretty fun.
The concept that I'm going to pursue initially is having you draw something by following a series of instructions that will be visible based on your path. So for example if you were given the instructions to draw a square you would first walk 100 feet north, then 100 feet east, then 100 feet south, then 100 feet west. After doing that you would either guess that you had drawn a square, or you would be able to see that you had drawn it with a GPS track of your location. Perhaps points could be associated with how well you drew the object.
I refactored the code from my proof of concept to use Mapbox GL JS as the API versus the older mapbox.js API. The differences are non-trivial, but the GL JS interface is newer and more actively developed.
Based off of some example code from mapbox I was able to start playing with geoJSON data structures to keep track of a background series of lines (the grey color) and the active recording series of lines (the red color). It will make more sense if you give the demo a try (it makes the most sense to visit from your phone!):
http://www.mit.edu/~saulnier/tttw/drawing.html (note: this is now old - find the link under the label!)
The save button doesn't do anything yet - next is to get the whole server side upload thing working.
After a great discussion with key ideas and feedback with my discussion group I've somewhat changed directions for my project.
Where I want to start is to have a website that lets you start and stop recording a path that you are moving along, and then save your path such that when other people visit the website you'll be able to see the messages and drawings that other people have left behind!
This is fun, and will get people thinking about where they are and moving around their location. There are then further mechanics that could be introduced, like secret messages that you have to trace out and treasure hunts and puzzles and things.
When thinking about packages of different products that do the same thing I started to think about a product that I first saw a long time ago - Buckyballs. Buckyballs, named after the molecule, are just a bunch of powerful magnets that you can use to create geometric shapes.
Looking them back up again I've found out that they are banned in the US because of safety issues (kids like to eat them). So even though they are packaged and marketed to adults - kids like to play with them and use them incorrectly (eat them).
Ignoring the edibility issue - The three types of packaging I've included pictures of have very different feelings. The first refers to them as "Zen Balls" and features a nice wooden box and relaxing theme. The second packaging is a mason jar, which seems to go with a hip, young vibe. The third is more modern and sleek. While all three products have an office worker in mind I can imagine the Zen balls being something that a person pulls out while alone for some quiet play - whereas something like the "signature collection" is more meant as a display / conversation piece and maybe a short distraction for other people to get to play with.
After implementing the basic drawing functionality of my toy I want to program in another layer of interaction.
I'll use the color wheel to allow people to select what color they would like to draw in from the secondary and primary colors. To select a color you'll have to indicate that you would like to change colors - and then walk in that direction for 100 feet. The colors will be orientated to specific compass directions.
I've been able to fix the error I was having where the wrong path would be saved. The page should be live and working now. I've also written some administrative code that allows me to remove tracks from the map.
As I've mentioned before I'm using geoJSON to encode the tracks and I've added a custom field to my data structures that will allow me to record a custom color.