Oculus Rift

We had an Oculus Rift in the office the other day and I think it has the potential to be a real game changer. In fact, after only a few seconds inside virtual reality I was sold by the Rift’s amazing immersive experience. First up was the Sixense Tuscany demo, which was a great introduction to help me steady my VR legs. My first thought was ‘Star Trek Holodeck’. Even though I needed a joypad to walk I still felt as if I was actually part of the game world. Being able to quickly look over my shoulder just felt so natural and right. And there was a very real sense of elevation when standing on balconies and platforms. It’s these simple things that bring everything to life.

Next I explored the oceans; swam with a school of fish then brushed past an enormous whale. Everything just looked so solid and, well, there. On several occasions I caught myself trying to reach out and touch things. My deep sea adventure came to an abrupt end when I was eaten by a shark. I was actually looking the other way when it got me, but I have been informed that staring straight into the shark’s deep black eyes is quite a terrifying experience. In fact, my buddy Ian ripped the headset off on his first encounter with it.

The last demo was actually my favourite. RiftCoaster takes you on a roller coaster ride through the medieval Epic Citadel map. Climbing up to the top of the first dip was astonishing as I took in the view of the city’s impressive towers and spires. Before I knew it I was shooting down the other side and gripping onto my chair for dear life. Even without the g-forces, there’s something about the whole immersive experience that tricks the brain into believing you’re actually rattling along a roller coaster track. It’s even better when you’ve got someone to shake your chair for you!

The headset is surprisingly light and comfortable.

Oculus Rift certainly isn’t the finished article yet but unlike PS4 and Xbox One, it has got me super excited. The headset’s screen resolution definitely needs increased. While it certainly isn’t terrible it does break the illusion a little. It’s also quite tricky to configure the Oculus Rift with you having to muck around selecting the correct lenses to use. Also, pushing your head forward doesn’t have any effect. It might not seem like a big deal but it is when you try and lean out of a window only for nothing to happen.

It’s also slightly disconcerting when you can’t see your own hands in front of your face. Of course, with Xbox One and Kinect that could all be rectified. It would be quite incredible to be able to look down and see your whole body. With Kinect that’s entirely possible and I’ve already seen some early demos that have successfully gone down this route. In fact, if Microsoft were to have the sense to embrace the Oculus Rift then it could give people a real reason to buy the Xbox One.

I really can’t wait to see how this pans out over the next year or so. Hopefully we’ll see some big name games studios produce great games that take advantage of the Oculus Rift. Personally I’m holding out for a remake of Stunt Car Racer.

A huge thanks to Ian for bringing his Oculus Rift into the office for everyone to try out.

Bunny Boss Battle

It’s been a few months since I last showed off Bunny Vengeance. Well here’s the latest version of the prototype and as you can see from the video it’s looking much more complete. The most obvious change is the addition of the Boss – previously you were just fighting a clone of yourself. Blocking punches is now much more convincing too and your character will actually get pushed back as he tries to deflect blows. I’ve also gone ahead and hooked up some special moves, which can only be activated by first building up a charge bar.

As far as beat ’em ups go the game’s deliberately simple. It’s a two-button affair (attack and defend), which I feel helps keep things in the spirit of touch screen gaming. It’s still a long way off being a finished game and the UI needs some serious work but I think we’ll move on and explore some other gameplay ideas and concepts first. My buddy Alex has a few ideas up his sleeve and hopefully he’ll be able to get some new artwork over to me soon. I’ll keep you guys posted.

Going Mobile with Flash and Scaleform

Thanks to Autodesk’s Scaleform, the user interfaces in many of your favourite video games have all been created using Flash Professional and successfully integrated with the game’s native code. Mass Effect, Crysis and Halo Wars are prefect example of AAA titles that have gone down this route. However Rovio – the makers of angry birds – have recently shown that you can do much more than just build game UIs with Scaleform. Their latest mobile game, Tiny Thief, uses the Scaleform Mobile SDK to port Flash CS5 animations and ActionScript 3 code to both iOS and Android, and the end result really is quite impressive.

The Scaleform Mobile SDK provides a standalone Flash runtime for native iOS and Android developers, allowing for the easy deployment of Flash content on mobile. Tiny Thief’s development team, 5 Ants, took advantage of Scaleform to render the vast amounts of Flash artwork they produced for the game. Around ninety percent of the artwork was vector graphics and with Scaleform’s optimised GPU accelerated renderer, there was no need to convert the artwork to bitmaps first. Scaleform also supports ActionScript 2 & 3, with the ability to also integrate with native code. This made it extremely easy for the team to develop across platforms. The majority of the game’s codebase used ActionScript 3 with only small amounts of platform specific code for each platform.

Of course, you’d be right in saying that you could just do all this with Adobe AIR and use native extensions to plug the platform specific gaps. And it’s certainly a perfectly valid and cost effective solution. Autodesk however highlight several benefits their solution has over AIR. This includes much faster compilation times, lower app footprints, and a high quality anti-aliased renderer. Whatever route you decide to peruse I think it’s interesting to see the many ways in which the Flash platform can be used to produce great games and content.

Download Tiny Thief (iOS & Android) and see just what’s possible with the Scaleform Mobile SDK. Also download Starforce Battlement for iOS, which again uses predominantly Flash and ActionScript 3. If you want to know more take a look at the the Scaleform Mobile SDK page and check out the documentation and video tutorials.

Stick Tennis

I actually meant to post about this game when it was originally released last year but for one reason or another didn’t get round to it. Thankfully its feature the other day on the App Store reminded me about it again. Stick Tennis is a really cool Adobe AIR tennis game that will have you thumping crosscourt winners with simple one-fingered swipes.

It’s available on iOS, Android, Blackberry, and desktop browsers and is another great example of what you can build with Flash & AIR. What’s also really cool is that Stick Tennis’ developer Richard Lord also made the native extensions he wrote available on GitHub. Fingers crossed for a Murray victory (I hope MacDog isn’t reading this) at Wimbledon today.

TypeScript

I’ve been doing a lot more JavaScript recently and while I’m enjoying it I do really miss the type safety and object-oriented language features provided by ActionScript 3. This is especially true for larger projects where a proper object-oriented approach would be ideal. JavaScript’s typeless and dynamic nature means it’s incredibly easy to introduce bugs that just lurk around waiting to cause some runtime mischief whenever it takes their fancy. While it’s very easy to quickly throw things together in JavaScript, you can lose all that time bug fixing. In fact, the larger a JavaScript project gets the more terribly afraid I become of refactoring or adding features to the existing code base.

In TypeScript I think Microsoft has a really great solution to this problem. It’s a superset of JavaScript that offers static typing, classes and interfaces. All these features are available at development time and are compiled down to JavaScript for deployment. The other really neat thing about TypeScript is that it also supports ECMAScript 6, meaning that if you want to forego static typing and a few other features then you can actually start working with what’s likely to become the next official version of JavaScript.

As someone who obviously comes from a Flash background I’m finding this all quite mouthwatering. Just like Zynga’s PlayScript, TypeScript is in many ways a spiritual successor to ActionScript 3. Developing with TypeScript and working with Flash content exported using the Toolkit for CreateJS could provide a really familiar workflow for Flash developers. Plus, whereas AS3.0 is likely to be the end of the line for the ActionScript language, it looks highly likely that TypeScript will have a future.

Check out the video above where Microsoft’s Anders Hejlsberg gives an introduction to TypeScript.

Getting to grips with Git

It seems every man and his dog is using Git for version control these days and I’d been feeling a tad left out of late. You see I’ve been using Subversion for close to seven years now both for personal projects and at WeeWorld (we used SourceSafe in the very early days but that’s best forgotten). And previous to all that I used CVS in various other jobs. For some reason however, Git always seemed like a mysterious dark force that was best left alone.

Well I finally decided to actually spend a few days getting to grips with Git and I must say it’s actually pretty straightforward. Git’s branching model is really nice and I love the fact that I can very quickly create and work with new branches, and just as easily switch between branches. Being distributed, most operations are performed locally, making it much faster to work with than the likes of SVN, which always requires communication with a server. In fact, there were quite a few times recently when I had no internet connection but was still able to happily work away.

I’m certainly no Git expert but hopefully I’ve got my head around the basics and I’ll continue to use it for personal projects. I got myself setup with a Bitbucket account which lets me create unlimited private repositories with up to 5 users. I’ve actually mostly been using the command line at the moment but I also have the SourceTree client. Oh and I bought and flicked through the pages of Git – Version Control for Everyone, which I thought was a very good introduction.

Zynga: “With PlayScript we got AS4 for free”

Here’s an interesting presentation from Zynga’s Ben Cooley talking about their cross-platform endeavours with Flash and Adobe AIR. He spends some times exploring the benefits of AIR and the challenges of porting Flash-based browser games to mobile. A significant portion of his presentation is also given over to Zynga’s PlayScript language and compiler, which I’ve mentioned before in my blog.

PlayScript was developed to circumvent many of the problems Zynga had with AIR, such as the limited access to native device APIs, ActionScript’s poor performance compared to native code, app size overheads, and lack of native UI support. What’s also interesting is that the PlayScript language is essentially a mash-up of C# and ActionScript 3. Ben basically says in his presentation that with PlayScript, Zynga effectively has a language that is very similar to what ActionScript 4 could have been.

Later on there’s also some talk of an experimental JavaScript compiler, which could allow PlayScript or ActionScript 3 projects to target web browsers that don’t support Flash Player. There are also some live demos shown near the end of both Starling and Away3D being successfully used in PlayScript projects and running outside of Adobe AIR.

It’s all really impressive stuff and makes you wonder why Adobe never really took Flash, AIR and ActionScript in this direction. It’ll be really interesting to see the progress Zynga make with PlayScript and also what quality of games they produce with it.

Upcoming Flash Runtime Features

Things have been quiet on the Flash and AIR front of late but thankfully there’s news of some exciting new features that are on the horizon. Here’s a list of the ones that I’m particularly excited about:

  • Improved iOS compile times
  • Reduced iOS file sizes
  • Mobile Workers
  • Integrated Physics
  • iOS7 Support
  • GameInput Support on iOS7

It’s really great to see that there’s effort going on to reduce the compile times, which at the moment are still way too long. It’s actually quite painful trying to compile and test for iOS at the moment, so hopefully we’ll see some significant improvements here. Work on reducing the file sizes on iOS is apparently still being proved out, so there’s still a possibility that that specific work won’t see the light of day. Fingers crossed though. Mobile Workers is also something that AIR devs have been desperate to see on mobile.

Perhaps the biggest surprise is the talk of adding integrated physics into the runtime. Personally I think this could be a really exciting feature and it’ll be interesting to see what the performance is like and also whether or not we see some of these physics features make it into the Flash Professional IDE too.

There are no definite release dates for any of these features yet but if you’d like to know more then watch this webcast featuring Bill Howard and Renaun Erickson from Adobe who were on hand to cover the Flash Runtime roadmap and also cover the latest features in Adobe Scout CC.

Also, Flash Professional CC was officially released yesterday. Go check it out.

iOS Native Extensions

While the AIR SDK offers a fairly comprehensive API, if you’re targeting mobile then you’re pretty much gonna have to rely on a few native extensions here and there. I’ve actually been pleasantly surprised by the number of quality extensions that have been produced by the community, and more continue to pop up every day.

If you’re looking for a comprehensive suite of iOS native extensions then you should take a look at the AIR Extensions website, which opens up a significant chunk of the iOS API to ActionScript 3 developers. There’s support for all kinds of things include GameKit, iCloud, Core Image, NewsStand, PassKit, iAD, Social, and In-App Purchase. I’ve been informed by the guys at AIR Extensions that they’ve opened up 2000 native iOS SDK APIs spanning over 300 classes. That’s pretty impressive coverage.

If you’re working on an iOS project then pop on over and take a look at the available extensions. There’s also a few Android extensions available too!

Physics and Pixi JS

I spent some time over the weekend adding Box2D physics to the JavaScript version of my endless runner prototype. As you can see from the video below, you can now interact with our little hero, making him run and jump between platforms (once again, apologies about the terrible camera work).

The demo may still be fairly rudimentary but I was nevertheless suitably impressed by the performance of Box2dWeb. While it’s certainly not as fast as the ActionScript 3 port of Box2D, my ageing PC with its i3 processor was still able to comfortably run everything at 60fps. If asm.js ever gains some traction however, there’s a real possibility that we could start to see near native-like speeds from certain JavaScript libraries in the future. Now that would be a mouth watering prospect.