Zynga introduce PlayScript compiler and runtime

If you’re one of the many people aghast at Adobe’s decision to abandon ActionScript 4 then you might be very interested in PlayScript. Developed by Zynga, PlayScript is an open-source ActionScript 3 compatible compiler that targets a variety of runtimes to quickly build 3D games for both the web and mobile devices.

In addition to ActionScript support, Zynga has gone that extra mile and created a new language – PlayScript – which you can think of as a spiritual successor to ActionScript 3. PlayScript is derived from both C# and ActionScript 3, and provides all the exciting features of C# including generics, value types, operator overloading, and asynchronous programming. You can even relatively quickly convert existing ActionScript code into PlayScript with only a few modifications.

To make all this work, Zynga created the appropriate bindings for Stage3D, which in turn allows all your favourite GPU-based frameworks such as Starling, Feathers, and Away3D to run without any modification. It doesn’t stop there though. Unlike Adobe AIR, which has limited support for native iOS and Android APIs, PlayScript provides (via Mono) full access to APIs on various mobile platforms. Of course, you can write your own native extensions for AIR projects, but it’s hardly an ideal solution.

The PlayScript compiler also has experimental C++ and JavaScript targets, allowing ActionScript to be run via JavaScript on the Web, or natively on PC and mobile.

But why would you want to use PlayScript? Well it may not be for everyone, and most people might simply be happy working with Flash Player or AIR. Zynga however felt that there weren’t any suitable technologies that allowed them to deliver their games to the web and across a wide enough range of mobile devices.

PlayScript is available on github. It’ll be interesting to see what Zynga produce using PlayScript over the coming months.

Bunny vs. Bunny

As promised, here’s a quick video of our first Bunny Vengeance rapid prototype. For demo purposes I’m using a clone of our hero as the opponent.

I’m still waiting for plenty more animation from Alex, which I’ll hopefully drop-in over the weekend. But for the time being you can see in the video above: a basic punch, a block, and a pretty damn cool charge punch too.

More Bunny Vengeance

So I finally found some time to start coding the Bunny Vengeance game idea that I’d been working on with my buddy Alex. The first prototype will be fairly simplistic but it should give us an idea if it has any mileage.

Alex has sent over a tonne of animation and I’m using Flash Professional to quickly throw things together. I’ll hopefully be in a position to show it running on an iPad in the next few days but in the meantime I’ve included a quick screengrab from my Mac above. Doesn’t Alex’s stuff look pretty awesome!

60fps gameplay with Box2D and Starling

My post from a few weeks back may have piqued your curiosity. It showed the bare bones of a scrolling platform game built on top of Box2D and running with debug graphics. Since then I’ve been busy adding proper visuals to it using the Starling framework and can now reveal what the heck I’ve actually been working on. It’s a recreation of the Tomb Town level from Halfbrick Studios’ excellent Monster Dash game.

I really love the stuff Halfbrick produce and thought that recreating a level from Monster Dash would be an ideal way to learn more about game design. I used to work in the games industry years ago but only got back into games programming more seriously recently with the release of WeeWorld’s Match Mee for iOS. It was also another good excuse to see just what could be created with Adobe AIR. I’m happy to report that the video you see above shows my demo running on an iPad 1 at 60fps.

I’m pretty happy with the end result and while it’s certainly not a perfect recreation, I’m sure you’ll agree it’s pretty damn close.

Stage3D Online Conference

The Stage3D Online Conference took place last week and its organiser, Sergey Gonchar, has kindly posted a video of the entire five hours. It boasts an impressive line-up of speakers covering popular frameworks including Minko, Away3D, Genome2D, and Flare3D.

I managed to catch the first two hours (had to head off to see Indie Game: The Movie) and was pretty damn impressed by what was on offer. It’s clear some tremendous progress is being made with some of the 3D engines that are built on top of Stage3D, and there was talk from a few of the framework vendors of some big name publishers actively working on Flash and Stage3D-based web games.

Check out the conference video here and please also consider joining the Stage3D Facebook page.

Indie Game: The Movie

It took me long enough but I finally got around to seeing Indie Game: The Movie the other night at the Centre for Contemporary Arts (CCA) in Glasgow, and I must say I thoroughly enjoyed it. The film documents the development of independent games, through the story of three well known games: Braid, Super Meat Boy, and Fez.

While all three games were eventually released to critical acclaim, the development process was far from plain sailing. Struggling financially, and in some cases mentally, to keep up with the constant pressures of delivering a hugely anticipated game, the film paints a less than glamourous picture of what it’s like to write ambitious and creative software.

At the CCA with my three cohorts: Callum, Amanda and Ian.

Happily, it was worth the effort for these guys and all three definitely deserved their success. However, it would have been good to see the other side of the coin too. I’m pretty sure for every one or two man indie team that succeeds there must be hundreds who fail even though they put the same amount of love and effort into their creation.

If you’re in any doubt how hard it is to make a successful game, or you’d like to gain an insight into the creative minds that make such amazing titles then you should definitely check out Indie Game: The Movie. Highly recommended.

Match Mee Treasure Room Update

Just thought I’d let you guys know that we released an update to Match Mee with a bundle of new features and bug fixes. The major addition was a treasure room allowing the player to see their collected Idols. It’s something people had been asking for so we were more than happy to oblige.

From the treasure room you can also view information regarding the gems that you’ve collected. With there already being a Collected Gems leaderboard we thought it would be a nice addition for the player to be able to see how many of each gem type they’d collected.

We also made it easier to earn power-ups by posting to Facebook. In previous versions of the app it wasn’t so obvious what button to press in order to move to the Power-Ups screens. Hopefully it’s a little clearer now.

The latest version of Match Mee is available for FREE from the App Store for iPhone, iPod touch, and iPad. As always, all feedback welcome. Enjoy!

Endless Runner

Just thought I’d show off a video of something I’ve been working on over the last few weeks. It’s a work-in-progress and only has debug graphics in place but it should give you an idea of what I’m trying to do. If you’re still not sure where I’m heading with it then take a look at this post of mine from last year.

Basically I was looking for an excuse to muck around with some physics engine stuff. Originally I was going to use Nape but seeing as I’d just recently read through Emanuele Feronato’s Box2D for Flash Games book, I thought I’d go with Box2D instead. Now I just need to add some nice visuals in there using the Starling framework. I’ll keep you guys posted and hopefully I get it up and running on an iPad or something.

Adobe Abandon ActionScript Next

So Adobe made a series of announcements yesterday regarding changes to the Flash roadmap, and typically some of those decisions have had the Flash community up in arms again. Last year I made a conscious decision not to get involved in these often heated debates but I thought that one major piece of news from yesterday was worth blogging about. That news of course is the abandonment of ActionScript Next (AKA AS4) and the new accompanying virtual machine.

I was sooooooo looking forward to ActionScript 4. As far as I’m concerned, ActionScript performance is one of the last remaining bottlenecks and Adobe’s plans to eliminate that impediment via a new version of the language was a mouthwatering prospect. So as you can imagine, I was more than a little upset when I read over the new roadmap changes only to discover that there will be no new version of ActionScript.

For most, the development of ActionScript Next was a declaration of intent from Adobe. It showed a long term commitment to the Flash platform. Understandably yestreday’s news has once again got the community in a spin with many believing that this is another strategic move away from Flash. Perhaps it is. I just don’t know.

Now while I’m upset by the news, I actually find it quite hard to argue against Adobe’s decision. For the last six months or so I’ve had continuing nagging doubts regarding the validity of a new ActionScript. Here are a few of the things that were playing on my mind and I’m sure Adobe’s too.

Transitioning between language versions

The process of transitioning from one version of the language to another isn’t always smooth. I know many developers who never managed the leap from ActionScript 2 to 3. I even know people (mostly designers) who found the jump from ActionScript 1 too much.

Personally I was pretty late to take up ActionScript 3 due mostly to the fact that my work at the time was focussed on legacy AS2 code and the same could likely happen with AS Next. It’s not always easy convincing an organisation to ditch its existing codebase and start all over again. In fact, one of the reasons we adopted AIR for some of our mobile projects at WeeWorld was because we had an existing ActionScript 3 codebase to work from. ActionScript Next could have blown all that away making our case for using AIR weaker.

Lack of third-party libraries

A new version of the language brings about another problem. Initially there will be a distinct lack of third-party libraries. For starters, Starling, Feathers, and Away3D, which are all part of Adobe’s Gaming SDK, would all have to be re-written. I’d imagine it would have been highly unlikely that all three would have been ready for AS Next’s release. And that’s just for starters. What about other great libraries/frameworks such as Box2D, Nape, Citrus, Minko, Facebook’s Graph API, and Greensock’s tweening libraries? We could be waiting years for everyone to catch up, crippling those wishing to develop with the new language.

Classic display list

My final concern was Flash’s classic display list. There were rumours that ActionScript Next would completely forego the classic display list in favour of Stage3D. While I’m all for Stage3D, I think ditching the classic display list would have been a mistake. It’s perfect for prototyping and Flash Professional provides an excellent workflow.

Now I know the classic display list was never intended for mobile devices but it still has its place for many types of mobile applications and games. At WeeWorld we used Flash Professional quite heavily during the development of Match Mee for iOS. While we considered using Starling and Stage3D, we concluded that the classic display list was the better choice, mainly because it put the visuals and layout firmly in the hands of the designer rather than the developer.

Of course, if Adobe were to announce tooling for Starling that was similar to what Flash Professional provides then my opinion here may be different, but to date there have been no such announcements. In my opinion, completely dropping the classic display list would have been a mistake and would have driven more people away from the Flash platform.

Good or bad?

I’m still not sure whether dropping ActionScript Next is good or bad. If I was given the choice, I’d still rather it saw the light of day but sadly that will never happen. Perhaps we’ll see some incremental updates to the language over time but to be honest I find that I can get by with AS3 just the way it is. It’s significant performance improvements that I really want to see. Let’s hope Adobe can deliver on that front instead. Although perhaps AS3’s dynamic nature will make that unlikely.

There were a few other significant developments that came from the updated roadmap. If I find the time over the next few days then I might post my thoughts regarding a few of those too.

Frosby Learning Games 2

Matt at Frosby Games sent me over the follow-up to their Frosby Learning Games app. Designed for 2-5 year olds and approved by teachers, Frosby Learning Games 2 is packed full of fun mini-games that will keep your kids coming back for more.

Each game teaches children new skills through play, with fun activities that will kick-start their imagination and introduce them to problem solving. There’s a wide range of tasks to be completed including tickling sea monsters, spotting differences, building and driving cars, matching colours, negotiating mazes, and even making pizza!

Ultimately Frosby’s aim is to educate through the use of characters, storytelling, and humour. From watching my little nephew’s reaction as we played together on my iPad, it’s clear they have succeeded. While some of the later games are a little too advanced for him (he’s only two) he does seem to be thoroughly entertained by this app and is more than happy for Uncle Christopher to take the reigns for the more challenging mini-games. It’s definitely something he seems happy to keep coming back to.

From a technical point-of-view, I was impressed by Frosby’s integration of Box2D within many of their games. It reminded me somewhat of Toca Boca, who quite often put physics based play to excellent use within their own apps. Great stuff and another good example of what small development teams can make with the Flash platform.

Frosby Learning Games 2 is available on iTunes for iPad and iPhone.