Endless Skiier: Final

Endless Skier
Made by Kellie Knight, Kevin Vylet, and Quin Rogers

Concept:
Endless Skier is an alternate controller game where you use physical "ski-shoes" to control the movement of your skiing avatar. Shift your weight from left to right to avoid logs, trees, rocks, and snowmen that are dropped by your player 2 competitor!

~~****~~

Rules, Goals, Mechanics
Endless Skier is a take on traditional endless runner games, but with a physical component involved:  players have to shift their weight left and right on physical "ski-shoes" in order to control the horizontal movement of the character on the screen. The ski shoes have piezo sensors that detect the weight of the player, and respond accordingly. We also added a second player who is able to use keyboard controls to spawn snowmen at the top of the screen, adding a competitive element.

~~****~~

Creation Process
We initially wanted to create a game where you step back and forth, and the faster your steps are, the faster the character runs in a horizontal direction. We created our shoes, which consisted of two pairs of flip flops with small piezo sensors "sandwiched" between each shoe. Through testing, we realized that the Piezo sensors were less finicky when leaning left and right, rather than continuous stepping. This is when we decided to make it a skier instead of a runner.

We then switched from horizontal movement to vertical movement, which gave a point of view that feels more immersive to the player standing in front of the screen. We also made pixel graphics that fit the theme of our game. During our second round of testing, the piezo sensors were still a bit unreliable, and one of them broke. We opted to switch to bigger piezo sensors, and soldered on longer wires to reduce risk of disconnecting/stepping on wires.

During the last iteration we managed to add a two-player two component which allows a second player to spawn snowmen and try to make the skier lose. We initially wanted to create a separate controller, but due to time constraints we stuck to just keyboard input. It worked out very well.

Everyone who played our game gave positive feedback and had a lot of fun. The controls were very intuitive and people got a hang of them really easily. We may have to adjust the speed because it was a little difficult, but it didn't detract too much from the experience. All in all, I think the game turned out to be a success.

~~****~~

Trailer

Endless Skier Round 1



On Thursday, my team and I presented our first rendition of our endless skier game! We were able to amp up our ski shoes by putting in some bigger, more robust Piezo sensors. Also, after learning how to solder on Tuesday (which made me feel like a super legit engineer), I was able to attach longer cables so that the risk of accidentally disconnecting/stepping on cables was less of an issue.

I also spent a good amount of time making sprites for the game, since the circles and squares in front of the blue background from the last version were pretty dull. I found an extremely nifty site called Piskel which is basically a free online sprite editor that allows you to easily make sprites and animations. It's a really great tool and I'm definitely going to keep it in mind for future game projects.

I made rocks, trees, logs, and snowmen to use as the objects that the player has to dodge. I also was able to make a tiled border of trees that seamlessly scrolls vertically, simulating the appearance of moving through a forest. Our player character is all cute and bundled up in a pink pompom hat, puffy green jacket, and indigo scarf.. If we have time it'd be cool to be able to choose your character and have different options for player appearance.

Quin put all the assets in, Kevin put the new sensors into the shoes, and then there was a lot of calibrating to do after that. The new sensors, although an improvement, are still pretty finicky, and didn't allow for too much fine control. Not sure if there's much we can adjust unless we use different types of sensors. But it's probably worth messing around with more.

Prof doing some hardcore skiing
The showcase on Thursday was a lot of fun. It was great to see everyone's projects coming along, and there were a lot of impressive ones Unfortunately I was really bad at documentation that day (oops) so I only managed to get one picture of our professor playing the game but you can barely see anything.


Playtesting went well; the sensors were still a little finicky, and the hitboxes are pretty unforgiving, so we'll have to adjust that for the next iteration. We may also add a feature that allows a second player to manually place the objects that the skier has to dodge, giving the game a more exciting competitive aspect. I think this will greatly improve audience participation as well. I'm definitely excited to see how our final result turns out.

Endless "Skier" Alternate Controller Project

For my Alternate Controller midterm project, I teamed up with Kevin and Quin, who are also members of my senior project team. We initially came up with the concept of creating a step sensor that measures the heaviness of your steps in hopes of eventually implementing it into our senior project game Hypoxia, a VR horror game that measures the player's biometric info and incorporates it into the gameplay.


We figured that piezo elements would make the most sense to use. We wanted to make sure that stepping on them wouldn't absolutely destroy them. I figured that taking two pairs of large, squishy sandals and "sandwiching" the piezo elements in between would provide enough padding so the element remains safe. I also suggested using adjustable Velcro straps to secure the user's feet in, to make it a "one size fits all" sort of deal.






So Kevin got some Velcro straps and dollar store size 12 sandals and got to work constructing the shoes. In the meantime, I looked up how to configure the piezo element to the Arduino and tested a simple knock sensor to observe behavior of the sensor and get a feel of the various thresholds. Quin started working in Processing to create the framework of an endless runner game where you try to dodge oncoming objects by repeatedly stepping with the shoes to control your sprite's vertical position.



The endless runner kindof worked,  but it was a little finicky. We then tried having the player stand on the shoes and shift their weight left to right to control horizontal direction, giving it a sort of "skiing" feel. The sensors detect which foot the weight is on, and adjusts the speed/direction accordingly by taking the difference between the left and right foot input values.




This worked surprisingly well, and although not useful for the purposes of Hypoxia, at least we are still able to use it for the purposes of this class. So now we have an endless "skier" where you control the horizontal movement of your sprite, while numerous squares rain down from above, giving a top-down feel of a skier going down a hill and dodging trees and other obstacles. The game takes your score and you lose when you "crash." Eventually the game will incorporate appropriate graphics instead of squares and a circle with a blue background, but the central game mechanics work, which was the most important thing to focus on for now.

Brainstorming: Digital Marble Painting


Remember that classic preschool art project where they give you a paper plate with paint-covered marbles and you roll them around and create cool abstract looking art? You know, the kind of art that you see in the museum and think, "wow, a preschooler could do that."

Well, imagine doing that but with tons more possibilities, because your artwork is on a digital canvas that can be customized and adjusted in so many different ways. And most importantly, you can say you made it using a computer application instead of a paper plate, so you'll be seen as more credible to art critics.


Consider being able to dynamically change your paint color, add effects or animations, or add more marbles to your artwork at any given moment. Well, this is my next brainstorming idea: a marble painting game that is controlled by a tiltable controller. 

The minute I saw that my Arduino kit came with an 3 axis accelerometer, I got pretty stoked and started thinking of ways to use it. The controller would be designed to mimic a stereotypical artist's paint palette that the user tilts around in order to control their "marble" that's rolling around on a digital canvas produced by a processing application. 

The accelerometer detects the angle at which the player is tilting the palette, and the marble will react and travel in the appropriate direction. Several buttons on the palette will allow the user to customize their artwork. For instance, one button could cycle through different colors, another could add more marbles with every press, and a third could cycle through random effects and brush styles.

Wow. Such art

Reading and fine tuning the accelerometer input may be a challenging task. It's also worthy to consider the behavior of a rolling marble paint ball in order to emulate it digitally. First, the speed of the marble affects the thickness of the line that is created; a faster marble creates a thinner line, and vice-versa. So when drawing the line, we would need to make it correspond to its current speed.

Second is the behavior of rolling the marble ball over already-painted surfaces. Creating that "smear" effect may pose a bit of a challenge coding-wise. A possible solution would be having the marble thicken the existing lines that its travelling over. It could also possibly draw additional pixels of the existing color underneath in the same direction its rolling. Sounds a bit tricky, but it's probably doable.

Anyway, I think this game would bring people back to their childhood and making these fun little marble paintings. I also think the indirect control of tilting the canvas itself makes things a little more unpredictable, so they're a lot more fun. Plus, combining those elements and implementing them in a digital application adds way more possibilities than just using paint and a paper plate.

Brainstorming: Interactive Glowing Garden

Going to the Maker Faire last weekend was a really big help with inspiration for new project ideas. Seeing the work of the talented Ben Hencke made me think about the visual appeal of LEDs and how much I enjoy things that glow, especially in interesting and colorful patterns.

Main Street Electrical parade further proving my point that lights are fricken awesome
Source: usnews.com

I'm reminded of going to Disneyland as a kid and watching the Main Street Electrical Parade. I watched in awe as the parade floats, which were covered in hundreds and thousands of lights, rolled along to an electrifyingly upbeat baroque hoedown track (which gives me nostalgia chills just listening to it).


Before the parade, Main Street vendors would sell glowing toys so the kids could have something to entertain them while they were waiting for the show to start. One of my favorite toys I ever got was a beautiful light-up glowing rose. Something about the simplicity of making a flower glow was just so visually striking. Plus I got to wave it around like a magic wand and feel pretty cool...until the batteries ran out.





So, I was thinking it'd be really fun to recreate this whimsical magical experience by making a sort of "garden" full of glowing plant-like elements. But not only that, the garden is also interactive; like a nature "control panel," but instead of buttons and knobs, it's glowing flowers, mushrooms, leaves, bugs, etc.

Think this except more... planty.

Basically, input from the user would affect the patterns of lights and sound that the garden would make. Garden elements would be made out of a sort of fabric or plastic material (or paper if I decide to be cheap, but that's not really durable); something would easily compliment the glowing LEDs. Could throw in some fiber optic grass to be extra fancy. (Side note: I totally had a fiber optic magic wand from Disney too)

Flowers could be mounted on a potentiometer to be rotated by the user to fine adjust the spectrum or color palette. Users could gently tap on mushrooms like drums, or touch a colorful vine to make tranquil piano sounds (each element using pressure sensors). Other touch-sensitive elements can trigger a flurry of blinking LEDs and/or whimsical, magical sounds. Basically, I want to offer people a fun and pretty playground that is both relaxing and enjoying to play with. This augmentation of the garden flowers and plants allows users to interact with them, which promotes a connection and appreciation for nature. 

Nature is something I really enjoy and appreciate, and sometimes I feel like we don't take enough time to stop and smell the flowers. I feel that this would be a cool way to remind people of the beauty and magic that nature brings to our world. 

Also I'm not a hippie, I swear.

Fun at the Mini Maker Faire!

Yesterday I had the pleasure to attend the Santa Cruz Mini Maker Faire to represent the Generative Art Studio, an independent study group that I participated in during the year. I had a really amazing experience learning about interactive generative art techniques during my independent study, and I made some cool pieces using the p5.js library in jsfiddle. My instructor signed us up for the Maker Faire so we could present our work, which turned out to be a really great experience and opportunity to show off my hard work!


I presented my generative dumb agents, which basically allowed users to generate geometric shapes on the screen that branch off into random directions, creating interesting patterns. It was fun to see people playing with something that I created and actually have fun with it. You can play with my generative dumb agents here!

 I also had a blast just being at the Faire and checking out all the "makers." It was a really inspiring experience, and made me wanna go out and just make some STUFF.  There was a very diverse collection of things at the faire, ranging from robots, an electric race car, to homemade jam and aromatherapy sand. Here were some of the most memorable:


The Generative Art booth shared a room with Ben Hencke who made a super flashy and gorgeous LED Piano which was a blast to play with. I'm such a huge fan of the look of flashy rainbow LED lights, and matching that with a music-making piano made it even cooler. With this combination of sound and color, Hencke's intended to give listeners and players a sense of synthesesia.



UCSC Bioengineering students presented a Robotic Arm that responded to input from flex sensors in your own arm, allowing you to control it with your movements. It was a really cool example of what to do with flex sensors, and the little robot arm, albeit a little finicky, was impressive.




Idea Fab Labs presented an augmented reality sandbox, which used a kinect to measure the depth of the sand and dynamically change the projections onto it, allowing the user to mould and sculpt a sandbox environment with mountains, islands, and oceans.


Fab Labs also had a room with these gorgeous light fixtures that I really want as a decoration in my house. I also thought they would be really cool if they were made to be interactive, maybe by putting a motion sensor and dynamically changing the light and color patterns based on movement of people around it.



I was extremely fascinated by the work of Steamy Tech, who uses laser-cut wood to make intricate steampunk themed gizmos and gadgets. My favorite was this beautiful heart with turning gears inside.

All in all, the Maker Faire was an extremely rewarding and fun experience. There's also a HUGE bay area maker Faire event in San Mateo next month that I really want to go to to further fuel my desire to make, make, make!

3D Paper Simon Says: I'm an Arduino n00b

     I was really excited to be assigned to build a game interface prototype using the Arduino for my alternative controllers class. I've never really worked hands-on with an Arduino before, so I was pretty stoked to try it out. When I broke open my Arduino I was really intrigued by all the seemingly endless possibilities of tinkering that can happen with this thing.
     I started brainstorming and remembered from class that graphite could be used as a conductive material. I thought that was super useful, as drawing with pencil gives you the freedom to do a lot of things, and I'm just really fond of using pencil because I'm a doodler. I looked up various ways to use graphite as a sort of input to the Arduino and found that you can make a button out of graphite drawn on paper. This opened up many possibilities in my mind, so I started to explore further.
     I thought of creative ways to use paper in this case. Sure, you could have it laying flat and draw some buttons or something, but I wanted to approach it from a different angle. When I think of interesting controllers, I think of something you can hold and move around and dynamically manipulate. So I looked into 3D folded paper shapes and wondered what I could possibly do with them.

Cool shapes that totally aren't complicated to make at all

     So then I came up with the idea of having some sort of 3D shape made of paper with graphite sensors drawn on the opposite side of each face. Each face of the shape would map to a certain color, and the player would be prompted by LEDs which color(s) to touch in a given time frame (like a mix of Simon Says and Twister). I imagine it would get increasingly harder, and the player would have to touch multiple colors and avoid ones they aren't supposed to touch. Sounds relatively simple... in theory.
     
 As if my desk didn't have enough crap all over it already

     Of course I'm naturally drawn to the artsy crafty side of things so I decided to do that (*cough* easy) part first and cut out an octahedron shape, draw out the graphite "circuits"and then color coded them cuz I'm fancy or something.
     I'm just gonna say it now, I didn't actually end up getting this to work with the Arduino. The paper shape itself was a bit small and flimsy, and the jumper wires got a little cramped and it was a bit cluttered. But hey, it's just a prototype, sooo.... Learning experience, I guess.
     I then just decided to move on to prototyping the actual game interface. I wanted to start out by just getting the graphite touch input down. Seems simple enough, there's a tutorial online and everything.

me_irl

     Heh, well the whole thing ended up being way more than I bargained for, and really made me realize how much of a noob I am with Arduino, which was surprisingly very finicky and caused a lot of frustration. It started with me looking up capacitive sensors, trying to implement it, which resulted in an LED light that couldn't decide what it wanted in life (I mean who can blame it, amirite?) and me repeatedly banging my head into my breadboard and having multiple existential crises.
     Anyway, I kindof got capacitive sensors to work, but it ended up being SO sensitive that even having my phone or hand near the end of the jumper wire caused the LED to go on. So for a good hour I was sitting there wondering why the LED was CONSTANTLY on, then I picked up my phone to procrastinate on facebook or something I realized that the LED went off, which caused even more confusion.
finicky LED behavior in its natural habitat
     
     Don't get me wrong, the super sensitive jumper wire was super fun cause it made me feel like a wizard when I waved my hand at it and made it glow. Also, a part of me feels like this is some glitch that's unrelated to what I was even trying to do.
Summary of me during this whole experience

     Anyway, long story short, I have to admit defeat for tonight and probably start fresh tomorrow. At least I have a good idea now of what NOT to do, and a general direction of where to go. Hopefully my Arduino will be more cooperative.