News and plans for spring and summer 2012
Posted on 2012-05-02
Summer is almost at our doors, on the calendar at least. It's been a while since I wrote, I have been busy: I've traveled, I've been coding, and I've been trying out a couple of different things. Let me bring you up to date.
Flash Gaming Summit 2012
In February, GAMES@CODAME held a contest on their Google Plus page to win a ticket to the Flash Gaming Summit 2012 in March in San Francisco. So after a tight race, I ended up winning the ticket! As I said before, video games are something towards which I would like to move, and meeting game devs and hearing them speak of their craft could not have been a better blessing.
I managed to meet with animators, entrepreneurs, devs and all sorts of good people. Some talks were really good, while some others were basically just rants. I personally wished that some of them would have been more technical than business oriented. On that angle, Iain Lobb delivered.
Later in the day, Kongregate held a party at their offices, where I met other cool devs. When I spoke to Rob Bateman, who had earlier given a quite interesting speech in favor of open source, I had to find a way to brag about my Away3D tutorials. By the way Rob, I'm still interested in writing tutorials for Away3D!
The next day, I was also lucky enough to be invited to visit a game dev studio not far outside of San Francisco. It's quite refreshing to see a team of devs and artists really work together, I hadn't felt a relationship this tight when I was working in an advertising agency.
Working with Float4
As you might have understood from some of my tweets and posts, I have been working with Float4 in Montréal since January. They specialize in video mapping and interactive surfaces, both with HD resolution or higher. It's quite nice to be able to use high quality graphics rather than being restrained to the small dimensions of the web.
Float4 offers a software, RealMotion, that has many purposes, one of which is to display Flash content. So I mostly have been working in ActionScript 3 for their projects. As Stage3D came to be, we did some tests to see if it would be possible to use within the context of RealMotion. To explain shortly, RealMotion does not incorporate the Flash Player directly. An instance of the Flash Player is launched on a thread, and RealMotion reads the visual output created and displays it on a texture. With Stage3D, that became impossible, since the render is actually done on the GPU directly, and there is no other way to get the render but to try and intercept the visuals directly from the graphic card. When I passed by the Flash Gaming Summit, I asked Thibaut Imbert if he had an idea of how to do this, he referred to PIX, a GPU profiler, but it didn't turn out to be of use on a Windows machine. If you have any suggestion, it would be welcome!
Discovering how to handle multitouch was quite new to me, as I was not used to the possibility that many UI elements could be used at the same time on the same screen. Also, I have been writing for installations where neither a mouse nor a touch screen was used, but rather lasers. In this setup, lasers are scanning a surface in order to determine where the user or users touch.
It may seem like it would not affect how to code, but it's actually quite important! While on a desktop and on a mobile surface it's important to listen to the "up" event (mouse up, touch up), it's not quite logical to do so with lasers, since users would not expect to lift their hand to trigger an action. Therefore, a touch down event acts as a click, and triggers something right away.
In the case of a list–like the iPhone contact list–it's not logical to open the contact as soon as it's touched, since it may be required to scroll. That's why on these device, it's the up event that triggers an action. With lasers, I thought it would be best to introduce the logic of holding the position for a while to launch an action. A timer would start and once a certain amount of time is passed, the action is triggered.
RealMotion communicates with Flash via the TUIO protocol, and its AS3 library, TUIO AS3. The library is open source and quite easy to integrate. Rather than using mouse events, the library comes with its own custom TUIO touch events. What is also quite nice is the guy who manages the library is quite open, listens to comments and adapts accordingly.
But how does one test multitouch during development? It does take time to deploy to the installation every time, and let's be honest, it's not always available to the developer. Luckily, it's possible to install an iPhone app and an Android app that can turn your device into a multitouch controller for your project. Simply start up the app before you launch your AS3 project, and then they are connect via TCP.
As for projects, I have been working on an update and a localization of a project for the Canadian government that needed to be displayed in Davos. I hope to obtain some images and footage to add to my portfolio. I also have been working on a slideshow that showcases Float4's portfolio with different AS3 APIs (Vimeo, Flickr, Twitter). You can see a screenshot of that project above this section, I will soon add screenshots to my portfolio. I also have been working on a library that can communicate with RealMotion, so that Float4 can provide clients who want to develop their own content with an API.
An iPhone app on its way
For some reason, I decided to go back to try and learn Objective-C. Since there is no better way to learn something than having an actual project, I will soon release my first iOS app! I finally understood how to link visuals to the code, and how to add and remove event handlers. Despite a lot of idiosyncrasies, XCode is a good IDE for the job. The code completion is marvellous, the interface is Apple-like (ie: fine tuned to the bone), but some features for quick coding and ease are missing. I may try and work more in that environment in the future.
A new toy
During March, BlackBerry had a 50% off deal on their PlayBook tablet. I never really felt the need to own a tablet, and I thought the iPad was way too big and expensive. After attending the Flash Gaming Summit though, I thought that tablets could be an awesome target for games, and that there is no better way to understand how a device works than own and use one.
To my surprise, BlackBerry offers an awesome AIR SDK to develop for the PlayBook with their own UI. Smart! I had some issues while trying to run it on FDT, but a recent post on the BlackBerry forums brings some good news for the future.
I think that I may try to create a TUIO controller app for the PlayBook as my first attempt!
Going back to hacking
In the spirit of exploring many things digital and analog, I decided to go back to hacking electronics, as I have done for school projects before.
First, I will attend a circuit bending workshop given at the Eastern Bloc in Montréal, and see where that takes me. I hope I will play with my Arduino again. I've also been quite interested into looking into the Raspberry Pi, a more than affordable open source computer.
It may get cloudy
Finally, I thought I should leave you with another tease. I've been doodling and thinking of this little game where a cloud has to water plants and make sure to avoid the sun to not evaporate. The full gameplay is not yet defined, and as you can see I am tackling more than one project at a time. I think this project could be a good excuse to look more into haXe and NME.
What have you been up to?