T³: Making a Dark Node out of the Edison

One idea for hosting a web page or browser game at events with no Internet connection.

Favorited Favorite 0

This weekend was Maker Faire Bay Area, and one demo I brought was not very visual (at least not at first glance). I turned an Intel® Edison into a WiFi access point and served a simple arcade game to people's smartphones.

Sparcade server

I placed a sign next to the Edison that provided instructions on how to connect to the Edison's access point and request the website. People were presented with a Phaser browser game based on Tempest.

Playing Vortex

When the player eventually died, their score was sent back to the Edison server, which compared it to the current list of top 10 high scores. If the player ranked in the top 10, the server sent a request back to the client, and the game requested the player's initials. The Edison maintained a list of the top scores and displayed them on a connected character LCD.

A few people tried it, and it started some conversations with old-school Tempest fans. I also brought it to the BringAHack gathering Sunday night. I bought a drink for the player with the highest score after an hour. This proved to be a great way to force me to socialize.

If you are curious about making your own dark node game server, check out the tutorial below:

Sparcade: Edison as a Web Server for Browser Games

May 19, 2016

Turn the Intel® Edison into an access point that serves a simple browser-based game. High scores from the game are displayed on a character LCD.

A playable version of the game (without the top 10 score list) can be found here: http://shawnhymel.github.io/Vortex/.

I'm looking for ideas on how to take this further. For example, broadcast a puzzle game from within a locked chest that people would have to solve to open the chest. What are your thoughts?

Comments 13 comments

  • Just a thought: Rig a way for the server[s] to talk to Phant, and keep a long-term high score, or maybe a "distributed" high score -- maybe even a "world competition".

    • Ooh! Nice, I like it! I could then create a scraper for a web page that shows the leader boards for those segments.

      • You might hook up a RockBLOCK Mk2 and send (rate-limited) high score updates. You might also offer a reward to high scorers like sending a short text message over the Mk2 (if the dark node would be in a location without wifi or cellular). Finally, you might create a distributed network of puzzle boxes that form a larger puzzle requiring remote collaboration to solve. For instance, the boxes might be "entangled" so that the compartment which is openable depends on remote state.

  • With the way you wrote the last part of that note, how many drinks did you already have before writing it?

  • sounds like a fun way to turn phones into laser tag that can go anywhere with or without a wifi network.

    • What would act as the "beam?" Are you thinking of an IR transmitter and receiver that attaches to your phone?

      • If you wanted to tear your eyes out in frustration, you could use the sensor packages in the phones to get orientation and use the phone as the gun and the target.

        from the "gyro" you can find where the phone is aiming. the only other thing you would need is a way to find position.

        Could you do something with multiple bluetooth ap's that simply report the strength of a device from it and then use some sort of triangulation to find the actual position? Another way might be to put an IR LED on the phone that transmits a unique "code" and then have a few IR sensors around the place to detect it, almost like how IR Head tracking works but for position only. Then you can use the phones sensors to find orientation and with a bit of programming magic, you can detect if there would be a hit.

        • My first thought was a special IR adapter like you mentioned. Using the phone's internal sensors and triangulation is very interesting. I wonder if you could figure out where other phones are in relation to yours.

          • It just occurred to me that the way you were doing it was to just send the web page to the phone and have it all client-side with only the score being sent back to the server at the end. The way I was thinking you could do it would need the server to be a bit more active, similar to a server for a multiplayer game, but I don't have a clue how many connections the Edison can reliably handle.

            The way I was thinking you could do it would be more server sided. The players phones would report their locations to the server and the server would process the hit detection. That way the positions only need to be sent to the server, not broadcast to every other phone. For the triangulation, I was thinking that you would have a few little boxes spread around the room that simply reported the location straight back to the server rather than go through the phones. The server would then know where phones are located at all times and the phones wouldn't need to worry about the position of other phones around them.

            Now I am going to have to try and make a prototype. Restless nights and banging my head against incomplete documentation is incoming.

            This might not be a very good explanation so sorry about that.

            • Whoa...that's a slick idea. Almost every smartphone has an accelerometer, compass, and GPS, which means (assuming you have a GPS lock), you could ideally figure out if you were "pointed" at another phone.

              My next iteration of Vortex was going to be a multiplayer Asteroids-like game, where up to 8 people logged in to a common map and shot each other. Simple, but it would test the server capabilities of the Edison. Because the Atom processor in the Edison was originally intended for low-power PCs and netbooks, I'm willing to bet that it can handle a good number of simultaneous connections.

              • I am going to start working on this (time and money permitting).

                Since I don't have much hardware to mess around with, it will be mostly software and simulations. I will reply again if I make any progress.

Related Posts

Recent Posts


All Tags