GDC 2014

I was fortunate to be able to attend the Game Developers Conference in San Francisco this year. Thanks to our organizers and IT staff for all the hard work they put into making everything run so smoothly.

_3200033

My GDC14 Flickr Set

This was the first year Mozilla had an actual booth on the show floor and we put it to good use demoing our Developer Tools alongside some fun games. We showed off our new Canvas Debugger (should be landing next week!), the Shader Editor as well as our Debugger and our other inspection tools. People were really receptive to the Canvas tool. The Shader Editor got a fair number of positive comments as well. I was also able to show off our Network panel as a temporary solution for inspecting game assets like textures.

Another well-received demo was a setup where I paused my desktop JS Debugger when receiving a device orientation event on my phone. I loaded the three.js DeviceOrientation demo on my phone’s browser (Firefox for Android). I then connected the phone via USB to my laptop and launched our remote tools via the “connect” option. Opening the Events panel, I was able to pick “deviceorientation” as a category and selecting that caused execution on the phone to immediately pause with my desktop debugger showing the exact location.

Debugging device events is easy to do on a mobile device. I was also able to demo our Shader Editor running on mobile which was pretty cool. Editing shaders in real-time running on a remote device is some real science fiction level stuff.

Having the kind of immediate feedback for WebGL (and soon WebAudio) that our tools provide is kind of a big deal for people who aren’t used to living in a dynamic environment like a web browser. There is lots of opportunity in this space to make tools for game developers that are fun to use and interactive. You can literally program your game while playing it.

This feels like a tipping point for games on the web. There are now multiple engine developers offering the Web as a bona fide deployment target. Three big engines have reduced their pricing models to the point of being effectively free for most developers and that happened just this week. This is a big deal and I think we’re going to start seeing a lot of game publishers shipping games to the web very soon.

We also weren’t the only booth showing off HTML5-related game technology. Nintendo is shipping a “Web Framework” around a bundled WebKit shell for deployment on the WiiU and had a pretty sizeable installation to show it off. Unity is also making that a deployment target. Various other booths were demoing HTML5 games and tech.

In the emerging technology department, head-mounted displays were in full-evidence. Sony just announced a new piece of head-gear for the PS4 and there were some other vendors kicking around similar technologies. At this point, it seems obvious that head-displays are going to be very real, very soon. The lines of people at Oculus’ displays were a constant stream of humanity.

gg;hf.

IRIS

(This post is not really Mozilla-related, so if you’re not interested in open source flight-controllers and software, you can stop reading here. There are some parallels though and I draw a connection later on, so I did decide to push this to planet.mozilla.org.)

A few weeks ago, a friend said, “hey, 3D Robotics has a sale on two of their drones right now.” This is exactly the kind of thing friends shouldn’t say to friends who are of a certain disposition – a highly-suggestible technology geek with a love of flying things and photography.

So I did a little research. And a little more research. And then a little more research… I did a lot of research and ultimately decided that the drone I wanted was not one of the two drones 3DR had on sale. The deal was a free GoPro Hero 3+ Black camera or 200 dollars off, I think. I looked hard at the Y6, but being a multicopter noob, it was a bit intimidating as a first vehicle. The drone I wanted was the IRIS which was still in “Developer Preview” mode but shipped ready to fly and promised to be a good platform to learn on. They’ve since closed orders on the machine and are shipping the consumer version sometime in December.

That weekend I bought a Heli-max 1SQ Vcam and proceeded to begin crashing it around inside the house. I nearly lost it after an exhilarating 10 minute flight around the park that terminated in crashing into a tree.

I was totally hooked.

I ordered my IRIS that Sunday night. Astoundingly, it arrived direct from the assembly plant in Tijuana that Thursday. I was all set for a 2-4 week waiting period, but was denied the wait. Unfortunately, the weather would force me to wait before I could take it out for its maiden flight. Since getting my quadcopter, I’ve become even more obsessed with the weather and frequently ping Billy Bishop airport for METAR weather codes since they’re nearby.

First flight happened on a blustery Wednesday afternoon. We went to Woodbine park in some pretty windy conditions, but I was dying to get some airtime with this thing. I did a few quick test launches before boxing everything back up and hurrying to the car because of the wind. First flight was a success!

That weekend the weather cleared and we had a really nice day on Saturday. That’s when I did my first real test flight.

A word about setup. There is a fairly lengthy bit of documentation on diydrones.com and the instructions pages on ardupilot.com.

The one thing you really have to do before you can make use of autopilot is calibrate your compass! Mine was still carrying the calibration from the factory in Tijuana.

If you watch the first video above, I go onto autopilot around the 56 second mark and it has a hard time hitting the waypoint (I later learned that you need to set a reasonable acceptance radius on each waypoint in the flight planning software). At 2:45 it flew out of bounds over some trees. At 4:50 it did a slingshot spiral out over the pumping station which was pretty spectacular. Each time I was able to cancel autopilot and manually control it back to ground.

So that was educational. I spent the rest of the weekend calibrating and then recalibrating. The onboard flight software is particularly sensitive to this calibration and if you do it incorrectly as I did the first time, it won’t even let you arm the craft for take off and will just flash a yellow warning light at you. The documentation is not exactly helpful in figuring out what the problem is, so I had to go back to initial configuration to guess what had gone wrong. Since calibrating it properly, control has improved and waypointing works flawlessly.

I’ve also learned a bit about using a GoPro camera. The Hero 3+ now has a “protune” option for video that drastically improves stability and rolling shutter. It takes pretty excellent video now. I’ve posted a couple of other videos showing my first successful auto-piloted flights including landing.

This stuff is a lot of fun, and I’m experiencing some of the “developer preview” speed bumps along the way which I’m more than happy to absorb. I find the documentation is pretty good, though the flight planning software screenshots (either Mission Planner on Windows or APM Planner on Mac) rarely match what’s in the instructions.

I also experienced a bit of deja vu trying to figure out which site to find the right documentation on. Feels a lot like Mozilla in some ways where you have a bunch of inputs and a bunch of outputs and its up to the user to figure out how it all fits together. Programming the radios and PIDs is still a bit of a mystery though the presets the IRIS came with are excellent right out of the box.

The other gem in all of this is the Android flight planning software. There are two of them, but I’ve been running Droid Planner and am pretty happy with it. The other option is called AndroPilot. They both seem to have different capabilities and are both on github.

I still have a lot of learning to do to optimize the controls to my liking. Fortunately, the software is all open source. Now if the wind would just die down I can go out for a flight.

iPods

frank's demise

I have had a number of iPods over the years. Starting with my iPod 3G, then a 5G (whose screen is pictured above), a 1st-gen iPod Touch and lately an iPod 7G Classic with a 160GB drive in it. I’ve loved them all, but it really feels like “Device as a Music Player” is done. Apple’s shift from iPods to iPhones started that downward trend.

But it’s gone further than just the obsolescence of the dedicated player. Music storage itself has become another quaint notion. Services like Rdio and Pandora (still not available in Canada) have replaced saved music for many people. And video too is a thing that is streamed rather than “owned”.

I blame Apple. The company that started the shift to digital music has failed to innovate. The 256kbit AAC DRM file is now the pinnacle of purchasable audio and it’s not nearly good enough. Marketing phrases such as “Mastered for iTunes+” really mean “We’ve destroyed any dynamic range this recording might have had”. Sure, the Compact Disc wasn’t perfect, but mastering for that format certainly left a lot more room for the engineer to play with.

iTunes itself has become something of an abomination. More interested with selling you things than maintaining and organizing your library, it’s frustrating to use if you have any amount of content in your library. Ironically, I think the Apple Remote software available on the iPad may be my preferred interface for the new iTunes. It may feel more connected to my library than iTunes itself.

iTunes 11 is the Apple Maps of media software.

I think the field is ripe for picking. Someone could come along and ship some music library software that doesn’t suck. I would pay for it. Bonus points if it will recognize and consolidate libraries from around my home network. And if it could stream to my devices while I’m out and about, automagically compressing my music on the fly, well that’d be keen.