New Game: Nothing

It’s a game about nothing! Or at least that is what a blink would tell you from it’s perspective. That is because if any input is received by the blink it dies and it’s game over. This absurdly simple concept serves as the basis for eighteen new blinks games outlined below, as well as new “cameos” which allow players to modify other games in their existing blinks library. Feel free to modify the rules of these games as you see fit and make them your own. Use this concept to make your own new games, or even to remix existing blinks games. The possibilities are endless….

Players can play the following games in either Free Play or Party Mode.

Free Play Mode - Players select games to play as they wish.

Party Mode - Players compete to be the first to score a certain number of game wins (3, 5, 10). Games are selected randomly through the game selector which is accessed by long pressing a blink. The selector will show both a color (Blue, Red, Yellow) and a number (1-6) which will be used to pick a game. If the current number of players is greater than the number of players needed to play a game have all players roll the game selector and the individuals with the lowest number scores sit out. If the current number of players is less than what is needed simply re-select the game. To determine which player or team starts a game have each player or team active a game selector. The player / team with the highest number starts. To decide teams, all players activate game selectors. Players who roll the same color are on the same team. Once a team fills up it is locked and all other players keep rolling until all players are assigned.

B1. Firing squad - One player holds their finger on top of a blink in the middle of the table. They can move it, but only gently enough to not activate a button press. All other players slide blinks from the edges of the table trying to kill the center blink. Whoever lands the killing blow takes the new place in the center. Player can play as long as they want, or set a limit of first player to dodge 25 blinks wins.

B2. Ninja - Players hold a blink between two fingers in one hand and place it flat on the table with the top button easily accessible to be pressed. Turns go clockwise around the table. On their turn, players can either reposition their blink on the table, or use their other hand to lunge at another players’ buttons. Lunges must be in one motion and can not change direction. A player being attacked can try to dodge, but only after the attacking player is closer than half the distance from where they started. Once a player lunges they are frozen at the end of their lung until their next turn. The next player in the rotation can then take their turn immediately after so game play is lightning fast. Players are eliminated when their blink is pressed. The last player alive wins.

B3. Minefield - One player closes their eyes while the opposing players arranges all blinks on the play space in any configuration that they want. The blind player must then quickly press anywhere on the table and hope that they don’t hit a mine. Players keep track of how many presses that they can make before detonating a mine and then alternate roles. The player with the highest score of safe presses wins. If playing with 1-9 blinks play in an area the size of a table cloth. If playing with 10-15 blinks play in an area the size of two table cloths. Finally, if playing with 16+ blinks utilize the entire play space on the table.

B4. Dodge Ball - A childhood classic re-imagined for blinks. Divide your table or play space into two sides and players into two teams. It is recommended that you place a piece of tape or other small item in the middle of the play space to mark the center line. Separate out one blink per player and place the rest on the center line to use as balls. Players hold their finger on top of their player blink and can move it around being careful not to initiate a click. Players use their other hand to grab the remaining ball blinks and slide them at the opposing team’s players to make connections. Players can not cross the mid-line of the play space, or use their hands to block incoming blinks. If a players blink goes into death mode they are eliminated. The last team with players alive wins.

B5. Blink Blitz - Place blinks in a line one inch apart and try to tap your finger back and forth between them as fast as you possibly can until you trigger a blink. Think those crazy finger knife dodging videos on YouTube. At least here everyone can leave with their fingers intact! Alternate modes - Arrange 4 blinks in a Y configuration and tap quickly between each side. Arrange 6 blinks in a zig-zag pattern and tap on the gap spaces. For competitive play, two players play at the same time starting at opposite sides. The first player to run the course back and forth five times wins. If playing with more than two players, play a single elimination tournament to decide the winner.

B6. War of Tugs - Start the game by placing all blinks together in one group at the center of the table. All players count down together from 3. Once they get to zero everyone places one finger on the blink pile and pulls to separate as many blinks as they can to add to their pile. Players then take turns setting their own blink piles in the center of the table. Everyone then counts down again from 3 and lunges at the pile to pull away as many blinks as they can with one finger to add to their piles. Lunges must be in one continuous motion and if someone misses they do not get another chance. The player whose stack is in the center starts with their finger on the pile and can try to move it as much as they can to dodge finger lunges at the end of the countdown. A round is over when every player at the table has their turn in the center. Whoever has the most blinks after 3 rounds of play is the winner. If you ever run out of blinks before the end of the game you are eliminated. Rounds always start with the player who has the most current blinks and goes clockwise.

R1. Tractor Pull - The goal of this game is to pull as many blinks as you can across the table without them separating. To start, players can use as many blinks as they want and any configuration that they want to build a “trailer”. 3D structures are allowed. After construction, the player grabs a non-trailer blink to use as a tractor. Players grab the tractor with two fingers and connect it to any point on the “trailer” that they want. Players then try to drag the “trailer” from one side of the table to the other. If at any point during the pull any of the blinks separate it is game over. The winner is the player who pulls the “trailer” with the most blinks across the table with none separating.

R2. Hide and Seek - Select one player to be the hider. If no one volunteers select someone with the game picker. The rest of the players will be seekers. All of the seekers must close their eyes while the hider places a blink on its side somewhere in the room with it’s glowing side facing the players. The blink must be in a location that is accessible by all players and it needs to be at least 50% visible. Once the hider has made their placement, they count down from three and then press another nothing blink to activate death mode and use it as a 10 second timer. Once the three second countdown is completed players open their eyes and have 10 seconds to find the hidden blink. The first player to find and tap the hidden blink wins. If no one can find and tap the hidden blink before the timer expires then the hider wins.

R3. Red Light / Green Light - Place a nothing blink on its side in a clearly visible location with its LEDs facing the players. All players line up on the opposite side of the room. Players can only move when the lights on the blink are green. If a player gets caught moving when they light isn’t green they are eliminated. Whoever gets to the blink first and presses it wins.

R4. Egg Toss - Separate the players into pairs and connect two blinks together for each pair to be the “egg”. Pairs can either stand two steps apart, or sit on opposite sides of a table. Pairs must gently toss the connected blinks back and forth without the death states being activated by either accidental disconnection or button press. If the egg is dropped the team is also out regardless of if the death state triggers. After every two succesfull tosses, the players add a blink to the egg growing its size and making it harder to avoid an accidental button press or disconnection. The team that lasts the longest wins

R5. Big Bad Wolf - Players take turns building the tallest structure they can by using as many blinks as they want from the number of blinks available. Not all blinks have to be connected using the magnet faces, but there must be a path of “correct” connections from the blink at the tallest point of the structure to the ground. After construction is complete all other players get an opportunity to try to blow the building over from any side. If during this phase any part of the building falls the building player loses. The winner is the player who makes the tallest building that withstands the blow strength test. If there is a tie, the building built with the least amount of blinks wins.

R6. Color Coordinator - Single player - All blinks are combined into one large grouping. Activate dead states strategically to get all blinks on the same color dead state at the same time. Multiplayer - All blinks are combined into one large grouping. Before the game, players choose a color to represent them during the game. Players then count down from three and start the game. Players strategically activate blinks to try to get as many blinks set on their selected color death state as possible. The game ends once all blinks are in death state. The player who has the most blinks in their death state color at that time wins.

Y1. Tag - Use the game selector to determine who starts as the tagger. All players have one blink and place it on the table with one finger on top. Players can move their blinks around the table with one finger being careful not to press down hard enough to trigger a death state. Blinks must stay flat on the table at all times. The initial tagger counts down out loud from three and the game begins. The tagger clicks their blink to death state and has 10 seconds to connect their blink to another player’s blink before their time expires. If they successfully connect their blink to a new player, that player becomes the new tagger when their blink changes to death state. They then have 10 seconds to tag the next player. Players are immune from being tagged back after tagging another player until their death state timer expires. If a player is unable to tag another player before their timer expires they are eliminated and the previous tagger that got them becomes the new starting tagger. The last player remaining is the winner.

Y2. The Name Game - Separate players into two teams. Create three two blink groups and place them on the table. Each pair of blinks should be placed in between the teams with one blink each for the two teams to press. Each team then selects a topic and assigns it to one of the blink pairs. The third topic must be mutually agreed upon by both teams and assigned to the final remaining pair. Topics can be anything, but should be something familiar to players on both teams. Examples include vegetable names, country names, zoo animals, etc. A representative from each team plays a quick game of rock, paper, scissors with the losing team starting. The starting team clicks the blink on their side of the furthest left pair and gives an example of that topic. For instance on vegetable names you could say carrot. The opposing team then waits one second and clicks on the opposite blink of that pair and gives another example. The starting team waits another second and the process is repeated for the center blink pair topic and then the final blink pair topic. Every time the death timer expires on a teams side, that team must give a new previously unsaid example of that category and click the blink to reset the timer. If a team is unable to immediately provide a new example of that topic and reset their side of the pair that team loses.

Y3. Blink Bowling - Arrange 6 or 10 blinks in a triangle formation so that the rows are either 3-2-1 or 4-3-2-1 depending on the layout selected. Place this formation on one side of the table. Players slide a blink at this formation from the opposite side of the table and remove each blink that it connects to each time. Be sure to keep track of the number of slides attempted. Once all blinks have been eliminated the player’s turn ends. Whoever can eliminate all blinks from the formation in the least number of slides is the winner.

Linked - Team based games where players are linked via two connected blinks. These games comes in three varieties:

Y4. Battle Royale - All players form groups of two. Each player holds on to one blink and connects it to their partner’s blink. If at any time a player let’s go of the blink or the blinks become disconnected that team is eliminated. Players can use whatever means necessary to eliminate the opposing teams. The last team remaining wins.

Y5. Race - All players form groups of two. Each player holds on to one blink and connects it to their partner’s blink. A single blink is placed on one side of the room as the finish line and the players line up on the opposite side of the room to start. Teams count down from three and then are in a race to see which pair can press the finish line blink first. If players lose hold of their blink, or lose connection to their partners they are eliminated.

Y6. Blinks Lead the Blind - All players form groups of three. Two of the team’s players each hold a blink and connect them to their partner’s blink. They then close their eyes. A blink is then placed somewhere randomly in the room to be a goal. The third player must guide their two teammates to the blink placed in the room so that they can press it. The two linked teammates must also communicate to ensure that they do not become disconnected. The first team to click the goal blink without disconnecting wins.

Cameos:

Flic Flop - Use Nothing blinks as skill obstacles to be avoided when sliding the blinks towards the flopper. Any accidental connections with a Nothing blink costs the team one point.

Astro - Place Nothing blinks amidst the asteroid field to create black holes. Any players or asteroid that connects to a nothing blink enters its pull and becomes unavailable to use the rest of the game.

Heist - Place Nothing blinks around the vault. They should be close, but not attached and will act as security guards. Any player that accidentally alerts a security guard by connecting to them loses one gold piece.

Dynamo - Power Struggle Remix - Players must find a way to hold a Nothing blink in the same hand as the Dynamo blink while playing power struggle. The normal rules apply, but if the Nothing blink gets triggered or connects to the Dynamo blink the player also loses.

Group Therapy - Anxious thoughts keep interupting the group therapy session. Place blink anxiety bombs (Nothing blinks) around the outside of the group therapy cluster, but not directly attached. When seperating out the introvert and extrovert blinks the anxiety bombs must be avoided. If any blink accidentally connects to an anxiety bomb you lose.

Reset - To bring a blink back from death mode or game selector, simply don’t touch, connect, or separate it for 10 seconds.

Special thanks to @jrcwest for encouraging me to develop this concept further! Be sure to let me know what games or cameos you come up with, and as always have fun!

4 Likes

Awesome concept!

And a pretty clean code!

EDIT: I just did a fork, reduced from 109 lines of code to 60 :upside_down_face:

2 Likes

Awesome to see this come to life!! Excited to start playing around with it!

Some small notes regarding code:

  • @Confus3d did a solid job of condensing the code down - you really only need to check for buttonPressed(), as it will simply detect when the button state has gone from “up to down” :slight_smile: Only issue with the code (in both original and the changes) are some missing parentheses on line 22, for the “aliveDisplay” call. Without that it seems to just be stuck in the dead state from the get-go.

  • For whatever reason, the game starts in the dead state. No big deal as the dead state timer automatically kicks it back to the alive state, but might be worth looking at :slight_smile:

  • One thing I hadn’t considered when we talked about this concept is the fact that Blinks will fall asleep after so long without button presses. In this case it probably just means you’re playing the “nothing” games REALLY well, but it can be an issue if you need to wake the blink up again mid-play. Button presses carry over into the code when you wake the blink up, so it might be useful to add a check for “hasWoken” and clear the buttonPressed flag, so the state isn’t accidentally set to death on waking. Again though, with the way you set up the death timer, this may not really be much of an issue.

I’ll give some feedback regarding the games themselves later in the day when the kids are down for nap, but so far I love your suggested “cameos” for Nothing. We’ll definitely be giving the base games a try and hopefully get into the cameo games if we have the time today!

1 Like

I didn’t realized about the aliveDisplay(), but you’re right!
About the dead state, it’s weird, because @TheGoodSire marked ALIVE as initial state :thinking:
Edit: it start in dead mode because line 28, just removed it and added the () on aliveDisplay. Fixed in the fork!
@jrcwest I think there is no need to add hasWoken, cause if you play long enough you actually want the blink to be death at button press, right?
BTW: @jbobrow There is no way to prevent blink going to sleep?

1 Like

Just tested those changes and I’m still seeing the starting state as dead… I’m looking at the code as well but can’t really see why this is the case.

Something I just realized too is that with code sharing all of the blinks are going to fail that initial “isAlone” check no matter what. But again, just separating them and waiting for the 10-second timer doesn’t really seem like much of an inconvenience to fix it.

2 Likes

Oh wow!

If that’s the case, I don’t really know why the game starts on dead :thinking:

But after that and waiting 10 seconds, it works?

Yeah it works perfectly fine otherwise. It’s a minor bug but I can’t really see why it’s happening :neutral_face:

New version 1.1 implemented with code consolidations and a small implementation change with how blinks search for connections. Thanks @jrcwest and @Confus3d for the awesome ideas and feedback!

1 Like

Not sure what you changed but the “start on death state” seems to be gone now! Unfotunately though the didValueOnFaceChange didn’t quite work the way we expected it to… Tiles that are connected just keep returning going back and forth between the death state and alive state. I’ve got to step away from the computer for a bit but I’ll take a look at this some more later in the day!

Thanks for taking a look Jonathan! I’m guessing it is because the communications sends out the current blink state, so when blinks are changing state it is also changing their faces. Making the blinks communicate out a constant face value should hopefully fix this issue I would imagine! I just pushed out a fix now so that you can test it later!

2 Likes

Thanks @jbobrow for the thorough and detailed response about the blinks sleep functionality! I’m hoping that for the scope of the games outlined in “Nothing”, 10 minutes should be plenty of time to setup and complete the games. Maybe I can add some sort of instruction telling people to either click each blink or combine and click one blink to reset the sleep countdown between games. I don’t know much about the wake up process since I dont have my physical blinks yet, but I also don’t think it will be too burdensome to complete if needed. Will a blink wake up playing the last game it was before going to sleep? I definitely agree 1000% that the priority should be on protecting battery life on the blinks. We’ve all had those moments where we’ve accidentally left the power on on a battery operated device and then having your heart sink the next time you go to turn it on. Thanks again for the info, and if you have a chance to play any of the games let me know what you think!

Hey @TheGoodSire! We got a little free time to try out your games, here’s our feedback for each one. We played with Version 1.0, since we’re still trying to work out the kinks in the face-change method of connection detecting.

  1. Firing squad - This was probably our favorite of the bunch, the only issue I think we had was with the fact we were playing with only 2 (obviously) - we were having some trouble with blinks going off the table without another player to catch them. Could definitely see this being a ton of fun with 3+ players though!

  2. Ninja - Good twist on an old favorite :slight_smile: Had a great time playing this while sitting at the table. No real complaints here!

  3. Minefield - This was another favorite, though we had to impose some of our own rules onto it. We only had 6 blinks, so using the whole table was a bit slow. We ended up using a dinner placemat to confine the space where the mines would sit and had a lot more fun with “close calls”. A full table would probably work way better with 12+ blinks. We also tried a variation where the blind player would continuously make presses, keeping count until they hit a mine, then players would swap roles. Rounds then became “who could make the most shots without dying”.

  4. Dodge Ball - This one was a lot of chaotic fun, though rules were a bit hard to enforce, particularly avoiding crossing a line. We may have had an easier time if we had used some tape or something on the table.

  5. Blink Blitz - This is a great idea, but something we realized is that when the blinks are kept separate you have a greater risk of accidentally bumping one into another, and less risk of actually pressing a button. We also found that, if the newer connection method was established, you could do more shapes than just “y” - shapes that have alternating empty spaces in general work well (our favorite was a zig-zagging line with 6 blinks).

Overall the game concepts behind the simplicity of “Nothing” are pretty awesome. The only thing that I think might be problematic is games that are based on “accidental button presses”. You have to really hit the blink dead-center to get the button to actually trigger. While playing we just kind of used the honor system and acknowledged when we hit the surface of a blink, even if the death state didn’t trigger. Thats not a problem per-say, but it just made me realize that the actual button press detection and animation was getting used as much as I would have anticipated.

1 Like

Thanks for the fantastic feedback @jrcwest! To start, I just uploaded a new version of “Nothing” v1.3 which further consolidates the code and hopefully finally fixes the kinks in the didValueOnFaceChange method. Let me know if this change works!

  1. Firing squad was the first game that came to mind when I was brainstorming games for “Nothing”. I’m glad that the mechanics seem to work well for the most part. I can definitely see how loosing blanks off the edge of the table could be a problem though with smaller numbers of players. I do agree that this becomes less of an issue with the more players that you have since people can catch blinks and stop them from falling off the table. One less elegant solution that I had thought of was to use rolled up towels, blankets or other objects to line the edge of the table to create an arena and stop blinks from going off of the table. This sort of setup could also be used for Dodge Ball.

  2. Ninja was one of my absolute favorite recess games growing up, so I’m glad to hear that a Blinks version has merit.

  3. I think that your variants for Minefield are pretty excellent! Having the blind player continually make presses and keep track of safe moves will definitely smooth out game play. While it’s hard to say without playing it, I think that I’ll probably prefer this version enough to make it the default going forward. Also, adapting the game play area based on the number of blinks playing seems like an absolute necessity. Perhaps I can come up with an adjustable play space scale based on the number of blinks in play starting at the size of a table cloth and moving up towards the full table. Something like 0-9 Blinks tablecloth sized area, 9-15 blinks 2 tablecloth sized area, 16+ blinks whole table.

  4. I can see how the rules on the game would be a little harder to enforce. You idea about utilizing tape or putting something on the table to mark the middle line seems like it could work well.

  5. I think that this game will definitely need to rely on the newer connection method with the didValueOnFaceChange function.This will definitely open up a wide variety of shapes and arrangements that could work well including the Y and Zig-Zag shapes.

The info about button press sensitivity is definitely very useful! I guess it makes sense that the blinks themselves are probably pretty resistant to accidental button presses since the Move38 team probably worked very hard to design them that way to improve standard game play. I’ll be sure to keep this in mind when writing rules for “Nothing” and when adding any new games, or cameos.

Thanks again for all of your help @jrcwest! That kind of detailed feedback really is phenomenal!

Glad to be of help! I’ll give 1.3 a try later today and record it. Hopefully it will help you debug any issues you may be running into :slight_smile:

2 Likes

Hey @TheGoodSire, I haven’t looked at the code yet, but here’s a recording of me play testing version 1.3. It seems a little hit and miss if tiles get triggered based on connection. Have you by any chance looked at the didValueRecievedOnFaceExpire method for this? Might be useful for triggering the death state wherever a blink is disconnected.

https://youtu.be/9BJo04SqL64

EDIT: A potential issue with my suggestion is that already empty faces may return true with the faceExpire method… may need to check if the last value on the face was “ALIVE” AND if it expired.

1 Like

Hey @jrcwest is really nice to see how you’re trying to help people recording this short videos for people like us that doesn’t have Blinks yet!

@TheGoodSire if your intention is trigger dead state if something is connected. You can try making a variable like “number of neighbours”, foreachface, and ++. I think you can do the same that we did for detecting TH.

2 Likes

Thanks @jrcwest for the clear gameplay video! A picture is really worth a thousand words and a video is even better! Does the functionality in v1.3 work as intended in 1 on 1 connections like are needed for the existing “nothing” games?

@Confus3d You are correct that the intention is to have dead state trigger when new blinks are connected to a grouping, but also we would like them to trigger when blinks are removed from a grouping. Granted none of this functionality is needed for any of the base games outlined in “Nothing”, but we thought that these mechanics could allow for some interesting new games to be created going forward. I think that you are definitely on to something with the neighbor counting idea! If you can keep track of current neighbor count it should be easy enough to track if there is a change in neighbor count with the use of a secondary temp variable kind of like how the score counter works in “The Dragon’s Lair”.

@Confus3d Thats one way of doing it. I had suggested that you have the ability to arrange the tiles however you want during “dead states”, and then when they all come back to life, any changes (new connections, disconnections, button presses) would trigger the dead state again. With that in mind, I would think that you could get away with a single FOREACH_FACE that includes a check like:

# Check if new connection or if broken connection    
if (didValueOnFaceChange(f) || (getLastValueReceivedOnFace(f) == ALIVE && isValueReceivedOnFaceExpired(f)))

Though that might not be the right way to go… I can maybe test that out on my own fork maybe later tonight or tomorrow morning.

1 Like

@jrcwest It seems like your implementation idea should work as well! It’s also a bit more concise which is nice! Definitely give it a shot and let us know if it produces the desired results. Thanks again for the play testing help!