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.

BAFTA Play

BAFTA Scotland recently hosted an evening showcasing Scottish games talent, and I took the opportunity to pop along and see what was on offer. There was a really diverse selection available to play, including award-winning games from the 2013 Scottish Game Jam and the BAFTA Scotland New Talent Awards. I was struck by the innovation of some of the games, and also the ambitious scope of others. Considering many of these games started life as quick prototypes hacked together for a 48-hour games jam, I couldn’t help but be impressed.

I forgot to take photos of any of the games so you'll just need to make do with a pic of yours truly instead.

My favourite game of the night however was probably conceptually the simplest. Lub vs Dub is a minimalistic two player game with both players holding onto the same iPad and facing each other. Essentially the screen is split in two with both players racing to be the first to collect a target number of hearts. It’s essentially a multi-player endless runner with a nice power-up mechanic. I spent a good amount of time playing it and chatting to developer Greame McKellan, who described Lub vs Dub’s beginnings from a series of rapid prototypes to its current incarnation. There’s still some work to be done and the team are eager to include a single player mode too, but it’s shaping up nicely.

All in all, it was a great night and it has really put me in the mood for taking part in a future games jam. You never know it might actually encourage me to actually finish one of my game ideas.