The Down and Dirty – The Push Button Flash Engine

This information is designed to give people a quick and dirty lesson on the PushButton Engine (PBE) and its use in game development.  You may not have heard of PBE, but that’s not something you need to worry about.  We’ll be guiding you through the top down approach to building your first flash games with this system and give you a great overview of some of the major advantages to this tool.

If you’ve already checked out PBE you will notice that the original articles by them are actually quite similar to what this is going to be discussing and the information it provides.  It’s fine to skip this, as this is a gentle overview of the more straightforward parts of tool.  This is a start at the beginning, and assumes very little about the person’s experience or understanding of PBE, so the later articles about this topic are likely best.

I’m Dying to Talk About the IDEs

I have always used Flash builder for my IDE, but Professional CS5 or 6 are also just fine for this.  If you use another alternative IDE, then there are certainly some options out there for you, but it shouldn’t be too hard to follow this tutorial given that they’re usually quite similar.  Given the state of game development today in flash, you’re probably going to spend most of your time in a text editor, which isn’t a problem, since these IDEs always have good editors.  For the CS Professional users you’re going to want to stick to the Actionscript editors that come with it, because it integrates directly into tools like Flash Builder anyway.  This is likely the best course of action starting out, unless you’re already familiar with these types of interfaces.

Flash Builder

You have two major options with Flash Builder: Flex based or Actionscript.  You will need to make the decision which to go with, as the majority of setup is the same for both.  Multiscreen deployment is a bit tricky, but this is best done with pure Actionscript approaches with Flash Builder, as flex does not typically work across numerous platforms innately.  Flex is used for web/desktop/or other specific interfaces, rather than cross targeting many platforms at once.  In the present app OS space, it probably makes more sense to do the ActionScript style approach.

Prior to diving headfirst into the development of any apps, I did promise to let you know how to do the most rudimentary parts of this set up.  Let’s start out with setting up a “Flex” project.

  1. Create a new Flex Project in your tool and call it something like “PBE_Tutorial”
  2. Download and extract the latest version of PushButton.  Sadly this interface is no longer directly supported, but the sourcecode and download is on github and elsewhere.
  3. Naturally, unpack the zip and open the bin folder that’s in the file.
  4. You should seen something like PBEngine.swc or similar.
  5. Copy all of this to your library folder as part of your flex project (libs).

If you were doing this in Flash Builder the steps are basically exactly the same, other than needing to generate the library folder yourself.  You have to link that folder to your project as a linked SWC folder.  In order to do this you simply right click on the project, and select properties.

It’s recommended above that you copy the PBEngine.swc file into the library folder of your project, but this isn’t a strict requirement.  Some people just link to it from another folder instead, which could cause an issue if it’s moved from environment to environment in the future.  This is fine though, and it will work.

Once you’ve done this and added the SWC file into your project, you will need to update compiler arguments so that all of the metadata tags you need are included.  PushButton Engine uses a few unique ones, well relatively unique anyway.

  1. Once again, right click on the project entry in the Navigator screen
  2. Select Properties again from the menu
  3. Select the Flex Compiler
  4. Under “Additional Compiler Arguments” add in the following “-keepas3-metadata+=TypeHint,EditorData,Embed”
  5. Click OK, which causes the changes to be applied and close the dialog box

I hope this instruction got you started with PBE and many of the first steps you have to take to start a project in these tools to work with a flash developer tool like this one.  It’s a great source.  Documentation available on Github from PushButton is incredible and comprehensive.  We highly recommend you read through their source code, documentation, guides and other things the coders spent years working on.  They have a lot of great ideas, and this tool is incredibly versatile.

PushButton Engine: GDC Online, Community Activity

Are you in Austin this week for GDC Online? This Thursday, be sure to check out the PushButton Engine 101 at 4:30pm in Room 9AB. We’ll be talking PBE with a big focus on how it can be used in social games. But that’s not all that’s going on in the world of PushButton Engine!

Lavon Woods has been working on some game building technology targeted towards building isometric PBE games – you can check it out at the GameBuilder Studio site. Martijn Segers has been building out Make Your Flash Game, which is a web-based set of tools for building PBE games. Both are in closed beta, but they are starting to look for testers!

Adobe EDGE ran an article by PBE community member Sam Rivello, titled Developing Flash Platform Games with PushButton Engine. It’s a good read if you want to learn more about the architecture of the engine and see a more involved demo game.

We’ve also posted an early preview of the next version of PBE. If you have thoughts on PBE’s design and implementation, come by the PBE Next WIP thread, check out the new code, and weigh in. You have a big voice in the future of PBE.

PushButton Engine 1.0

Looking back on PBE’s Ohloh info, you’ll see that PushButton Engine arrived to the open source world at March 2009 at a healthy 35,000 lines, having undergone 1093 revisions in our internal repository. Between March 2009 and March 2010, PBL employees and our active community contributed over 900 revisions and an additional 30,000 lines of code and docs to the core codebase!

Ohloh now ranks us in the top 10% of active open source projects. 14 talented developers have publicly contributed to the engine in the last year, not counting private and anonymous contributions. Our site has served 17,000 downloads of the engine across 11 releases including version 1.0, not counting SVN checkouts.

In the same timeframe, our forums gained 4200 posts and enlisted 1103 users. Several major Facebook games using PushButton Engine shipped, including ZooWorld from RockYou, Social City from Playdom, and YouTopia from hive7. There are also some good games in our Show Off forums and our Developer Gallery – more than we can list here.

Now that 1.0 is out, we hope that you will take a few moments to read the Official PushButton Engine Documentation and download PushButton Engine 1.0. For the truly impatient, we even have a PBE in 30 Seconds guide.

Finally, thank you to everyone who has supported PushButton Engine through the long beta cycle, both by using it and by contributing to it. It’s come a long way in the last year, and we are excited to see how it grows in the next.