Hacked.io 2013

Posted on Sep 26, 2013

Hacked.io

Hacked.io was a London based hack day I went to in July, along with 500 other developers, artists and general creative people.

The event was one of the biggest of its type that I’ve been to before. It was held at indigO2 in what was once the Millenium Dome. There wasn’t any general aim like other hack events I’ve been to, Music Hack Day / Accessibility Hack, instead it was more of a “Make whatever you like, as long as it’s cool” atmosphere.

Unfortunately the WiFi was down most of Saturday which hindered my development. Without Google and Stack Overflow it’s very hard to start coding something new, especially if you’re like me and attempting to try a new language and IDE while you’re at it. With Microsoft there I went to a couple of their talks about their developer platforms for Windows Phone and Windows 8. But without any internet connection it took multiple hours to just get and install some of their SDK’s which meant I had no time at all to code on the project I had planned.

Instead I spoke to some BBC R&D people who were also exhibiting their Television Abstrations Layer, a javascript framework to polyfil the rather massive gaps between browsers that you find on almost ever smart TV available these days. The framework seemed nightmarish but developing for the low-spec TV hardware piqued my interest. So with very little time remaining I managed to cobble together the start of a raycaster with an aim to make a wolfenstein 3d style shooter / demo.

WolfenTV

While that might sound like a basic task, TV’s almost certainly have no WebGL or canvas support and rarely even support old versions of JQuery. So this was all hacked together with vanilla javascript and using individual DIV elements for the wall slices, setting the top/bottom margin and height for “distance” and background images with an x-offset for “textures”.

I completely missed the deadline and had to sit through a good 40+ demos based around network-connected colour-changing lightbulbs from Philips instead of showing my project.

Instead of forgetting about it though I finished off a browser based version of it at home on the Sunday night and it actually works and renders with reasonable speed. It also works on pretty much any device with basic web support and uses nothing fancier than some CSS margins, background and a javascript getElementById().

Try it out by clicking here

It’s not the greatest code currently and the images/raycaster part are mostly just a C++ example raycaster that I hastily ported to JS in the hopes of having something to show in time. I do plan to tidy the code, add in floor/ceiling rendering and TV remote control capability one day though.