Occasionally, an idea pops into my mind and I instantly dismiss it as crazy. A few weeks ago, however, I had the idea of harnessing the power of modern 'smart home' devices to create more immersive Minecraft experiences. I remembered reading about LIFX WiFi connected light bulbs, and this instantly made me wonder if I could sync the light level of my home with the game. It was a challenge, but I knew that it was possible and therefore couldn't turn it down.
I did a little research, and purchased a bulb for Christmas. Light screwed in, MacBook at hand, I threw together a rough and ready prototype in about an hour. I used a Java API which I found here, and used Spigot to get the light level of my player. In hindsight, actually modding the game may have been better, but my experience meant that I was better starting with an API I already had knowledge in.
As you can see, things worked out pretty well. The next day, I switched over from the Java API I was using to one written in python called lightsd. It was more up to date, and also allowed me to access some extra API methods which helped in cleaning up my code. That's the version you'll find on GitHub. I also made sure that the light never went below a certain level, as I found through experimentation that this could lead to the light turning itself off and it then took several seconds for it to turn back on.
If I was to do more work on this project, I'd like to investigate more into the hardware running on the actual bulb. As you can see in the demonstration, there is a delay between me sending a TCP packet to the bulb and anything happening, which I'd like to be able to fix if possible. A bulb with colour could also be interesting, as with some sampling I could perhaps take the shades of nearby blocks into account.
Overall, I really enjoyed working on this. I'd like to do more projects based around the 'internet of things', but time may say otherwise. If you've got any questions about the project, I'm always avaliable on Twitter.
I've always loved sharing my experience with others. Back in July, I helped lead Minecon's official modding workshops which gave birth to hundreds of young programmers and was a brilliant opportunity. Since then, I've been busy revising for my exams but accepting a new challenge has always been at the back of my mind.
A few weeks ago, I made contact with Ruth from Young Rewired State, an organization which organizes events for young developers worldwide. I was recruited as a mentor for the #WeAreTheRangers event in London, which is pictured below.
The premise was simple: teach children about animal conservation using Minecraft, in partnership with WWF, ZSL and an array of other brilliant charities. It was a huge challenge, as I didn't know how many children to expect, or how interested in the game they'd be. Nevertheless, I set off on a train from York and arrived at the Mozilla Space in London just before lunch: a brilliant venue to say the least.
After meeting with the organizers and getting a tour of the venue, I worked with each group of participants on a variety of projects. We caught pangolins with redstone (I didn't know what these were until the day!), tracked rhino and even saved lions from groups of evil poachers.
The day ended with a presentation by each group. Not only did everyone show a real pride in what they had created, but they really enjoyed listening to the other groups too showing the community that we'd created in the space of a day.
On the journey home, I sat with my friend Sam (he also came with me, and did a brilliant job) and we remarked about how much we'd love to be involved in something like this again in the future. Mentoring's such a rewarding experience, and I hope more organizations can see the power of video games because if they can't, they're certainly missing out.
If I learnt anything, it's that Minecraft is just such an amazing tool for projects like this. Every child there was absolutely brilliant and full of enthusiasm, a pleasure to work with. I felt extremely privileged to be part of the community.
It's good to be home, but a huge thanks to the brilliant Mozilla staff for providing an excellent venue, Ruth for letting me get involved in a brilliant project, and Alasdair from ZSL who was a pleasure to work with on the more technical parts of the event! I certainly hope I hear from some of the children I worked with in the future, when they're building machines, making something cool or just changing the world for the better.