The Leeds Data Mill Hack event was unlike other hackathons we’ve previously attended in such a way that it was intended to solve problems; or rather, to ask the right questions. This was totally different for us, where previously our experience of hacks was mostly about creating the weirdest, overambitious hack you could think of within the time limit.
From the moment we stepped in, it was clear something was different. There was a calm buzz in the air with clusters of people huddling in groups, deep in conversation. There was clearly an urgency to solve problems, a shared willingness to help. Many of the participants had never been to a hackathon before and were floored by the possibilities you could achieve by sharing ideas with thinkers, designers and doers in one room. Within our initial group, it was amazing to note the vast multidisciplinary backgrounds of the participants.
We didn’t really approach the hack with any preconceived ideas but being game developers, we are partial to building some sort of game. There were a few suggestions for what you could do with the data supplied through the website and people sorted themselves into the respective groups to tackle these challenges.
A game based model to experience the data… and loneliness
Browsing through the datasets available on The Mill, we decided that it would be interesting to try and visualise one of them as a game level so rather than just being told what the data was, you would have a chance to experience it. This is based on what we’ve learnt from creating and playing games and through feedback from players. Games encourage you to interact and this provokes a different kind of response. Basically you learn in a totally different way compared to the traditional method.
Flappy Bird is a recent media darling and actually a style of game that we felt we could recreate within the time constraints so it ended up being a natural choice. When we looked at the Public Health Funeral Data, it seemed an unlikely thing to be visualised as a game. For that reason, it was clear that it had to be done. After studying the data, we became aware of an issue that was previously unknown to us – Loneliness – so this was something we felt was worth drawing attention to.
The technical intricacies – mapping the data
Now comes the interesting bit. It has to be understood that there is no randomness in the game; all random values are derived directly from the data that is mapped into postcode sections. The Leeds postcodes are then displayed prominently at the start of each section or level of the game. Putting in a small amount of randomness by randomly deciding which postcode section will come next adds a little unpredictability into the mix.
Each funeral is sorted by date. We have about two years of data (Jan 2012 – Feb 2014) and in each postcode section, the data is presented to the player in a simple time line through a series of obstacles.
Each obstacle is a gravestone with a gap in it through which Flappy Bird flies. We position the gap at the top of the screen for January and at the bottom of the screen for December. So, when you fly through a gap lower on the screen, the death occurred in December.
The size of the gap, and hence how easy it is to fit through, is driven by the cost of the funeral. A bigger gap means a more expensive funeral and a smaller gap means a cheaper funeral. We found that the prices varied quite a lot but mostly stayed within £1300 – £1600. The distance between obstacles is the day of the month that the funeral took place on, so if you get a long gap it will mean that the last funeral took place at the end of the month.
Data quality and the need for context
Even on a rather small number of data points, we still encountered data quality issues. For instance, most dates are of the yyyy-mm-dd format but one of them had the year at the end. Furthermore, one postcode was missing a letter which took us aback when we had to sort them.
One thing we have learnt from working with other datasets is that you really need access to someone who understands the data. Even with good documentation, you will only learn what people are meant to publish and it takes experience to learn what people are actually publishing and what certain patterns really mean. Data without context is just not as useful and prone to misinterpretation.
Open everything – the source code for Flappy Bird
Lonely Bird was created using our own open source Lua based game engine called Gamecake. We are releasing the full code and art assets as an MIT licensed project. You can find it all in the this repository along with other code examples. We have also published the Android build on Google’s Play Store which you can download for free and play on your Android phone or tablet. (Don’t worry, it contains no ads.)
You are free to use, remix and rebuild to your hearts content. A simple change would be replacing the CSV file containing the data with another file or even just newer data to create a new set of levels.
To accompany the game, we’ve also created an infographic in both PDF and PNG formats so you can print those out as posters or use them in any way you like.
We’ve had the pleasure of meeting so many wonderful people and are humbled by their ideas and hopes to help others. Thank you for letting us be a part of this! We only wished there was a way to get in touch with the other people we’ve met as we were so engrossed in creating, we forgot to exchange details with everyone.
- Shi & Kriss Blank