User Testing Results

Unfortunately, I didn’t get to test my apps on a wide as a range of people as I would have liked, or for as long as I would have liked. I only did not have time to test the apps on my target audience so the results of this testing may be somewhat invalid, however it does give me some insight into what worked and what didn’t over a wider range of people. The apps were not developed enough for longer testing, so instead I only tested them over a period of a couple of hours. I used informal interview technique like my previous interviews to gain people’s thoughts on the different types of interaction.

Overall all the different kinds of app had positives and negatives. Different people with different personalities seemed to like the different styles of gameplay.

Some liked the comparative model:

I liked being able to see the change in activity from day to day and if I had increased or decreased my activity

The cumulative model where users get rewarded for their total steps also had benefits.

I was interested when I got the first message for walking 500 steps. It made me want to walk more and see what else would be said for the other milestones. I like apps where you can see your progress from when you have started.

For competitive people the leader board element was particularly effective.

I’m very competitive so I like being able to beat people. If this was a real thing I’d definately try to get to number one everyday.

From this research it could be said that a range of methods for rewarding users for activity could be effective as different people are clearly motivated by different methods.

User Testing on Types of Games

I wanted to see what kind of approach to take with the app part of my project so I decided to do some user testing on different types of interaction with step data I needed to find out what kind of approach is best to encourage people to not only do more activity but regularly exercise every day. I made three different types of web applications based on a user profile where users can add in their daily steps to test how people interacted differently with each one.

lossgain

The first app compares the amount of steps walked from one day to the next. It shows an uplifting message if the user walked more than the last day, scolds them if they walked less.

culmulative

 

The second app gives rewards for milestones after a user accumulates an amount of steps over time.

leaderboard

The third app lets users know what position they are in the leader board compared to other users.

20151128_075403 20151128_075416

I am going to give users pedometers and ask them to use each one of the apps for a week, and afterwards tell me their thoughts on the different methods.

Workshop – Open Sound Control

In the workshop, Rob taught us about open sound control which is a protocol for sending data from different devices over the web.

Screenshot_2015-12-07-10-42-38

The Control Interface used to send accelerometer data to the Mac

puredata

The Pure Data Extended Interface

I used a program called Control which used this protocol to send the accelerometer data from my phone to a Mac. As my phone was on the same Wifi network on the Mac we used a program called Pure Data Extended to listen to the port my phone was sending the accelerometer data, and this data was then routed to the speakers to make a sound.

This made me think that I could use the Open Sound Control for my project to send my accelerometer data from my toy to the web using a Wifi module to connect to the internet.

1438017058694-P-2855099

 

ESP8266 Serial WiFi Wireless Module (Gearbest, 2015)

 

20151207_102605

Controlling an Arduino through Node

This is the code used to make the LED blink.

At the moment I have been using the Node package johnny-five to control my Arduino, which uses a similar protocol. In my test above, I ran tests to make the LED of the Arduino blink through javascript. Later this script can be embedded into a website rather than run through the console.

My thinking is that my app will send data requests through Wifi to the arduino which will then send back the accelerometer data it has recorded. However this may have problems where the arduino needs to connect and disconnect to the Wifi. If this does not work there are some other options I can take, such as using a Bluetooth module instead where a Bluetooth enabled device can request the data and if even this fails I can use a cable connection to send the data.

Wikipedia, 2015. Open Sound Control. [online] Available from: https://en.wikipedia.org/wiki/Open_Sound_Control [Accessed 30 Nov. 2015].

Gearbest, 2015. ESP8266 Serial WiFi Wireless Module. [online] http://www.gearbest.com. Available from: http://www.gearbest.com/transmitters-receivers-module/pp_218376.html?currency=GBP&gclid=CPCKseHLyckCFYRf2wodi8IGyw [Accessed 7 Dec. 2015].

Johnny-Five, 2015. Johnny-Five is the JavaScript Robotics Programming Framework. [online] Available from: http://johnny-five.io/ [Accessed 7 Dec. 2015].

Creating a User Database

Next step after my earlier experiments with MongoDB databases was to create a system where users could log on and view their step data from a pedometer. To do this I needed to make a database of users and store their data. To make the database I used Passport.JS a user authentication Node package which would create user sessions. This makes the user’s data more secure by hashing their passwords, so that they can’t be stolen easily.

project structure
The file structure of my project

As the project was going to be quite big, I decided to use Express.js which is a web framework for node. It automatically creates a web app file structure which saves time creating it from scratch. I also used Jade which is a html template engine, which means you can add variables to html more easily to pass through my data.

First off was to create my Mongoose model, with a user id, username, password and a logging system for past steps and the change in steps from yesterday to today.

Next was to create user sessions, by serializing and deserializing the user through passport. This creates a “logged on” state for the user.

This function checks if a user is registered in the system and tells them what is wrong if their username or password does not match any of the ones that are stored.

loginsignup

 

The sign in and registration page.

I also created pages for users to create a new profile, and a home page to view their information.

home

 

The home page

From the home page I created a method where users can input the number of steps they have walked that day.

Next I will look at different ways this data can be used.

Passportjs.org, 2015. Passport. [online] Available from: http://passportjs.org/ [Accessed 28 Nov. 2015].

Expressjs.com, 2015. Express – Node.js web application framework. [online] Available from: http://expressjs.com/ [Accessed 28 Nov. 2015].

Jade-lang.com, 2015. Jade – Template Engine. [online] Available from: http://jade-lang.com/ [Accessed 28 Nov. 2015].

Product Research

As part of my audience research, I decided to look at current toys on the market to see what is popular with kids as well as toys past and present that are similar to my project to see if it is a viable idea. Firstly I looked into industry figures to see if soft toys were even still popular at all with children. Finding that plush toys made up 19.8% of the U.K toy market in 2014 (EBSCO Publishing (Firm); Datamonitor (Firm), 2014), I decided to do some more on site research into toy stores to see what was popular as well as looking online.  Firstly I went into toy stores to see what was on sale.

20151104_163008

20151104_163042

 

Toys from the gift shop in the aquarium.

noticed that soft toys were still very popular which is good for my project. I also noticed that small toys (that could be held in an adult’s hand) were popular as well. There was also a wide range of different animals for children to choose from which I think added to the appeal. However, from my observations, these toys were only popular with children below my age range, as I

TsumTsum-Header

(Disneystore.co.uk, 2015)

When I was doing my research I realised the Tsum Tsum range of toys from Disney were very popular with tweenage girls. They are quite small, fitting easily in the palm of the hand,  so perhaps that made them more appealing and less like toys for younger children. I found it was interesting that the toys didn’t need a whole body to be interesting with, the characters were easily identifiable by the head alone. In addition there was consistency created across the brand though the use of similar facial features. This style of character design is quite similar to the amigurumi style I explored earlier, therefore hopefully this will be popular with my audience. The range of characters also made them a collectible item, and I observed people buying several from a new range that was out.

pocketpika

Pokémon Pikachu is slightly different from more traditional portable virtual pets in that Pikachu does not need to be fed, watered, or cleaned up afterPikachu only requires interaction and exercise to keep him happy. The unit is a virtual pet, but it also has a pedometer function built in. With every step the user takes, the Pokémon Pikachu will provide credits (“watts”) which can be used as presents for Pikachu. It’s not an exact science, but around eighteen steps on the pedometer will earn one watt.

-(Kazemaini, 2015)

A big inspiration for my project is one of my favorite childhood toys, the Pocket Pikachu. In order to become friends with the character you had to earn “watts” by accumulating steps on the pedometer. It really inspired me to become active and do it everyday. However I wanted to see what toys currently on the market as obviously that toy is now very old.

GeoPalz-postcard-blog-image2

(Geopalz.com 2015)

Geopalz a pedometer and an app marketed at younger children. I looked at customer reviews and a lot said that the product often broke, so this should be something I should keep in mind when making my product. It retails at around £20 which is similar to the price range I am hoping to achieve. The points children earn can be spent in the Club Penguin game, an online game for children where they can play mini-games using the points they have earned. The pedometer in Geopalz is very obvious and as my app is based around an older age range who may be more self conscious I will try to make the pedometer more conspicuous. I also want my app to be more character based so will probably feature a more virtual pet type of character in my app.

origami zoo

-(Ravensburger Digital GmbH, 2015)

An app similar to what I had in mind for the web part of the project is Origami Zoo, an app where by folding a paper animal children can bring it to life in game. By feeding and taking care of the the animals are made happy. I am intrigued by the mixture of physical making and digital content in the app. Perhaps I could include a kit where my users can accessorize or even make their own pedometer pal then see them in the game?

Disneystore.co.uk, 2015. Tsum Tsum | Disney Store. [online] Available from: http://www.disneystore.co.uk/tsum-tsum/mn/1503506/?&CMP=KNC-TDS-UK-G-Exa-Tsum+Tsum-Generic&s_kwcid=TC|1028693|tsum%20tsum||S|e|68204886422&mckv=s4X3juD57_dc|pcrid|68204886422|pkw|tsum%20tsum|pmt|e&gclid=CKvDmZyYs8kCFYcSwwod4WsFHg [Accessed 28 Nov. 2015].

EBSCO Publishing (Firm); Datamonitor (Firm), 2014. Toys & games in the United Kingdom (Online). Datamonitor 200, New York.

Kazemaini, J., 2015. The Virtual Pikachu That Didn’t Need Food, Just Affection. [online] Kotaku. Available from: http://kotaku.com/5872151/the-virtual-pikachu-that-didnt-need-food-just-affection [Accessed 28 Nov. 2015].

Geopalz.com, 2015. GeoPalz – Children’s pedometers – where kids walk to win free prizes and games. [online] Available from: https://geopalz.com/index_classic.php [Accessed 28 Nov. 2015].

Ravensburger Digital GmbH, 2015. Play-Origami Zoo. [online] Available from: https://play.google.com/store/apps/details?id=air.com.stormcloudgames.paperzoo [Accessed 28 Nov. 2015].

Initial Audience Research

In order to find out more about my customer base, I decided to do some primary research into my target audience. I decided to use an informal interview method which is structured more like a normal conversation than as a traditional interview (Qualres.org, 2015). As some of the subject were children and this method would be less pressurized than a formal interview. It also allowed them to speak more freely on their own point of view.

The subjects that I chose to interview were the daughters of friends I have met through the sport I play. I also interviewed the mother’s on their experiences as hopefully my product is also going to encourage parents to take an interest in their children’s activity levels. Below are some quotes I recorded from our conversations.

Firstly we discussed thoughts on being active, such as P.E. in school but also activities outside of school.

I used to like P.E. when I was in primary school. It was fun and there was no pressure. But when I got to secondary school it seemed like there was more division between being “good” and “bad” at something. I always feel like I’m being judged. I hate being forced to do sports. I’d rather do something I like. I hate wearing my PE kit, I just hate P.E in general.

-Female, age 13

This interviewee clearly disliked the competitive nature of many sports programs which is something I could investigate during my project, whether competitive games can have a negative effect.

I like going skating with my mum. P.E. is ok but I like skating more. I get to do what I want.

-Female, age 7

Clearly choice in activity is very important in making physical activity an enjoyable experience.

We also discussed what kind of toys they liked so I could get an understanding of what direction my project might want to take.

I like Skylanders, I like collecting the different figures. I also like playing apps on my mum’s tablet… I like the My Little Pony app the most.

I have toys but play with my Nintendo DS more.

-Female, 7

RollerBrawl

Skylanders is a type of figurine that can be used to play a console game. The figure corresponds to a character in the game. 

This research shows that incorporating physical and digital elements can be successful in a toy, and may even be more popular than traditional toys.

I also asked about apps and digital technology, and what was popular at the moment.

I probably use Snap Chat the most. It’s funny seeing stuff from your friends and editing pictures and stuff.

-Female, 13

This shows that humour is probably a good way to get the older end of my demographic interested in the product, as well as having a sharing element which might encourage a community around the product.

I also asked parents on their thoughts on their children’s activity levels. Concern about the use of digital technology seemed a very common concern:

I worry about how much my daughter uses her phone. When I was her age I used to walk to my friends and go shopping or to the cinema. She just seems more interested in Snap Chat or whatever it is.

-Female, 43

Clearly parents seem to be interested in the activity levels on thier children, however incorporating this into an app that the both of them can use might be quite hard as the parents seemed to be less interested in games and apps that their children where interested in.

I am going to more research into how other products have dealt with these problems to see what direction my project could take in these regards.

Qualres.org, 2015. RWJF – Qualitative Research Guidelines Project | Informal Interviews | Informal Interviewing. [online] Available from: http://www.qualres.org/HomeInfo-3631.html [Accessed 27 Nov. 2015].

Skylanders.com, 2015. Skylanders SuperChargers Video Game – Official Site. [online] Available from: https://www.skylanders.com/video-games/skylanders-superchargers [Accessed 27 Nov. 2015].

Workshop: Databases, PHP and Node JS

We had a workshop with Kyle in which we used Propel ORM to create database of users for an web app that emulates twitter. This app used php to create a database of users and store their data. This could then be viewed on phpMyAdmin

phpmyadmin

The phpMyAdmin interface

phpmyadmin-tables

Creating a database with four fields, user id (which is unique and increments automatically), name, age and gender of the user.

phpmyadmin-users

Viewing the users in the database. There are three users in this one.

My project is also going to use databases to store users and the amount of steps they have earned. Php is quite a handy and standard way to handle database structures. However as mentioned before, I intend to use Node.js to control the Arduino in my project. Therefore I decided to look at ways databases are handled using Node.js.

NoSQLers came to share how they had overthrown the tyranny of slow, expensive relational databases in favor of more efficient and cheaper ways of managing data.

-(Strauch, 2015)

One way databases are handled using Node.js is by using a No SQL database, instead of using a relational database structure like the Propel one I used earlier. The advantage of using this approach means that the database is more scalable, fields can be added to it easily, runs faster and it is also easier to reference the data stored in that database.

A popular way to do this is to use a MongoDB database which stores the database in JSON files which can be interacted with using Javascript. I followed this tutorial on how to get started with Mongoose.js, which is a Node package which allows interaction with MongoDB databases though javascript.

First was to connect to the Node server where the database will be stored. Next I created a Schema which is essentially a database.

Methods can also be added to schema in order to test things by posting strings to the console.

Next was to create a model which serves as the structure of the database. Unlike PHP databases fields can be added in after the model is created. Here I created a model called Kitten and then added a field called name to the items and gave the kitten a name. I then called the speak method on both of the kittens.

mongooseTest-printout

The kittens then run the speak method to the console, which prints out their names.

After printing the speak method to the console, I used the find function to search the database and print a list of kittens to the console.

Propelorm.org, 2015. Propel, The Blazing Fast Open-Source PHP 5.4 ORM. [online] Available from: http://propelorm.org/ [Accessed 28 Nov. 2015].

Foundation, N., 2015. Node.js. [online] Nodejs.org. Available from: https://nodejs.org/en/ [Accessed 28 Nov. 2015].

Johnny-Five, 2015. Johnny-Five is the JavaScript Robotics Programming Framework. [online] Available from: http://johnny-five.io/ [Accessed 28 Nov. 2015].

Mongodb.org, 2015. MongoDB for GIANT Ideas | MongoDB. [online] Available from: https://www.mongodb.org/ [Accessed 28 Nov. 2015].

Mongoosejs.com, 2015. Mongoose ODM v4.2.8. [online] Available from: http://mongoosejs.com/ [Accessed 28 Nov. 2015].

Strauch, C., 2015. No SQL databases. [online] Available from: http://www.christof-strauch.de/nosqldbs.pdf [Accessed 28 Nov. 2015].

Mongoosejs.com, 2015. Mongoose Quick Start v4.2.8. [online] Available from: http://mongoosejs.com/docs/index.html [Accessed 28 Nov. 2015].

Product Prototyping

20151009_125128 20150518_162525

For my final major project my idea is creating a crafted keyring pdeometer with an app functionality. In my spare time I like to create little toys using crochet, and I feel that it would be a challenge to see how this could be incorporated into a digital media artifact.

The soft toy part of the project will be based on the crochet style of amigurmi (Sinclair, 2006) where using the technique of crocheting in rounds, parts of a stuffed toy are made and then sewn together. This style of craft has become popular in recent years, and will hopefully increase the interest in my project. Key to making this style successful is simple yet “cute” and “attractive” character design. This could also be incorporated into the app, for example by showing a virtual version of the soft toy character.

gemma
-Adafruit’s Gemma microcontroller (Adafruit, 2015)

I am also quite interested in fitness, and was wondering how this could also be incorporated into my project. I thought of wearable technology and microcontrollers (such as Adafruit’s Gemma) and how this could be put into a small soft toy like the ones I make.

20151126_135659

What I wanted to make was similar in size to this keyring I had so I decided to make some prototypes to test out the size of various components and how small I could make the product.

20151127_223726

20151126_135710

20151126_135716

First I made a keyring of a similar size to the one above. I added some bells to the inside of it to see if it jangled well whilst I was walking. It seemed to perform fine, so a keyring pedometer might be able to work.

20151126_140117

An Arduino Micro and an accelerometer next to a 2 pence piece.

20151126_135726

 

A cardboard copy of the compenents.

I looked at using an Arduino Micro for my project as they are quite small. I figured out that I would also need to use an accelerometer to measure the position of the device which would then be used for counting steps. I also needed a battery to power the device as well as a way to send the data to a network, either via Bluetooth or through a Wifi shield.

20151126_135736

20151126_135804

20151126_135819

I made a copy of the components to gauge the size of them when put together. I then made another crochet replica and tried to fit the components inside. I also added a flap to the keyring so that the battery could be easily replaced. This prototype did not go so well. The keyring was too big to be used comfortably. I could possibly change the structure of the demo toy as that might decrease a lot of the size, however the head itself (where all the components are stored) was still quite big so any size savings to be had might be quite marginal.

attiny

 

ATTiny (Atmel, 2015)

20151127_163202 20151127_163230

I looked at some smaller microcontrollers such as the ATtiny which would be harder to develop for but would make the overall toy a lot smaller. I made a new cardboard circuit to make sure and compared it to the last one.

20151128_075509 20151128_075424 20151128_075458

Overall the toy was a lot smaller and more of a normal keyring size. For my project I will have to look carefully at what components I use to make sure the size of the micro controller is considered in the final design.

Sinclair, C., 2006. Craft: Transforming Traditional Crafts. Oreilly & Associates Inc.

Adafruit, 2015. Adafruit GEMMA v2 – Miniature wearable electronic platform ID: 1222 – $9.95 : Adafruit Industries, Unique & fun DIY electronics and kits. [online] Adafruit.com. Available from: http://www.adafruit.com/product/1222 [Accessed 28 Nov. 2015].

Atmel.com, 2015. ATtiny85. [online] Available from: http://www.atmel.com/devices/attiny85.aspx [Accessed 28 Nov. 2015].

Libby Odai: Elias of Dereham Evaluation

iOS Simulator Screen Shot 11 May 2015 15.09.16

Overall, although our project has met quite a few problems, the outcome is very successful. Testing the final product people seem to really enjoy the game, especially liking the game play and the art style.

Some of the most challenging things I found working on this project was using Swift and XCode. Some of these problems I identified at the very start of the project did in fact slow down the production process by quite a bit. I think I will wait a while for Swift to stabilize a bit more as a programming language before developing in it again.

Working on a game was quite fun and I learned a lot about game development and programming in general from this. However the time I spent doing this was quite rushed and I wish I had more time to fully research everything and make the code and the gameplay as efficient as possible. It is interesting to see how different the actual code it from my original plans as I had to take quite a few shortcuts to make the game be finished in time. I also would have liked to have been able to work more closely with another developer as I feel this would have sped up the coding process immensely.

One of the things I feel we did not do so well with on this project was keeping the group organized and making sure everyone know what they were doing when. We should have finalized our designs a lot earlier so that we would have had more time to test the game. I should have stuck more to the development project practices I identified earlier in the project and set hard deadlines when things should have been done by.

I think that we all worked well on the artstyle for the project. Hopefully my character designs also helped make this as effective as it is. I would also like to thank Sam for his project management, which really helped bring the project together.

One thing I would have done if we did this project again would be to test the game with the target audience as we did not have a chance to do that with this project. Hopefully children will like it as much as we do.

iOS Simulator Screen Shot 11 May 2015 15.08.04

iOS Simulator Screen Shot 11 May 2015 15.09.50

iOS Simulator Screen Shot 11 May 2015 15.10.17

Tweaking the Game

iOS Simulator Screen Shot 11 May 2015 15.07.35

After Sam had conducted some user testing (as shown here) it was time to act on some of their feedback. Mainly the feedback was to change the position of some of the objects and tweak the jumping function. I made it so that the jumping was not as high.

To make Elias only able to jump once, I had hoped to use bitwise operators to check if the player was contacting the ground and then make him only able to jump if he was. However I was not able to do this and so I had to use Elias’s y position to detect if he could jump or not. I am not very happy with this solution, as it means if Elias is on top of an object he cannot jump, however as I am running out of time and there is not much reason for Elias to be able to jump on top of objects in the game I decided to use this solution.

Unfortunately the background scrolling function I had used very early on in development was causing problems when we were testing on a a device. As the game was creating a node with all the backgrounds in one, the iPhone architecture could not handle it. I did not realize this problem earlier as I was not able to always test on a device and on a simulator the game runs fine.

Fixing this problem involved instead using 3 background screens that scroll past the player and then changing their textures. It was quite a hard workaround and I am thankful for the help of the demonstrators as by myself it would have taken a long time to fix.