is the new endeavor from several of the minds behind Garage Games, the Torque Game Engine, and Dynamix. Their latest project is the PushButton Engine
. It is an open source game engine for Adobe Flash with some interesting ideas about extensibility and community behind it. I sat down with Ben Garney, who's developing the engine, to discuss their efforts.So I've looked at the site and read the spiel, but tell us about PushButton Engine and the idea behind it.Ben Garney:
Well, we knew early on we wanted to do Flash games - it's a key, growing game development platform. You can run it on netbooks or consoles or high-end desktop PCs, and you can port easily to iPhone, mobile devices, things like this. A big market. As we looked around, we noticed there were a lot of really great game development libraries out there, but using them together was complicated. So our first order of business was to build some technology to make it easy to integrate other people's code - these great libraries - and that's what become the core of PushButton Engine.
Basically, our idea is - here is a way to build games out of reusable components and get lots of different libraries to work together. Everyone will benefit from that. It's a better way to build games. So let's get it out there are much as possible for everyone to use... which is why we used the MIT license, to make that safe for people.So what does a user get from PushButton Engine?
They get whatever they want! But seriously, what you download off the site comes with a "starter set" of components, like we have Box2D, a 2d rendering library, some debugging tools, audio, input handling, serialization, and a bunch of other miscellaneous stuff. And all this works on Flex or Flash. But the idea is you take that and start building your game, and as you build your game, you start putting the pieces in that are going to make your game unique - like a custom physics library or some specialized rendering. Spend effort on what makes a game good, you know?
We're in open beta right now, but we believe in slow and steady progress - we plan on continually improving it as we go, adding new and better default components, fixing bugs, and so forth. Our code repository is up on Google Code so you can go over there and see every commit we make and every bug we fix.In perusing the documentation, it seemed very programmer-centric. Would you say that was an accurate description?
Ah, very much so. Right now if you're not a programmer, you probably won't get very far. We believe in starting at the core and building out, so that the engine is immediately useful for more serious guys and gradually becomes useful for more casual users. One of the big things is that we're working on an editor, which will help make it a lot more artist friendly. The editor is designed to be extended, so that you can add features to support your specific game and make it easier for the artists on your team. Or maybe you get a hold of some community components and they extend the editor so it works better with them.
One of the things we've built on top of PushButton Engine for internal use is having a way to link a Google Spreadsheet to your game data, so you can login to Google Docs, edit, save, then restart the game and all your changes show up. It makes it really easy for our designers to work with the game.That's pretty cool. I seem to recall that Lionhead had something like that with Excel for the AI on Fable. But isn't that something you can build for Flash itself? I mean, what's the key reason to use PushButton Engine?
Well, how much free time do you have? (laughs) You're right, any individual piece you can go to plain old Flash and write it there. But say you're writing your game. All of a sudden you need a full physics library. Or you want to add Google Spreadsheet tweaking on top of it. Or you want to add a graphical effect to some game objects. If you're using PushButton Engine, first off, everything is out in an XML level file where you can change it, and, second, since everything is built out of components, swapping something out or adding or removing it means you add or remove or change a few lines of XML. Even if you're prototyping, being able to grab a few components off the shelf and have them work together seamlessly means you can focus on your game first and technology second. And we definitely want to have a big shelf of components - we plan on launching a component store where people can post, download, and sell components in a week or two from now.How do you see this commercial focus playing out in the Flash community which is very much about free - free to play is the dominant business model, for instance? How do you intend to compete against entrenched alternatives, especially if these existing libraries are already available at no cost?
Well, the core PushButton Engine will always be free. In fact, the entire core framework and some starting components are licensed under the MIT license and are available as open source from our website right now. Since it is licensed under the MIT license you can use it on commercial projects, non-commercial projects, private projects, public projects or whatever. But we think that there's a market for the convenience of pre-integrated, tested components, and that's what the component store is all about. What we'll have for launch is a high-quality networking component, with tech similar to Quake 3 and Torque. It's about ten times more efficient than anything else we could find in the Flash space. It'll be a premium component.You just called this a premium component. Are you saying there are tiers to the component offerings?
Yes and no. "Premium" here means the same as pay. We want to create an open marketplace. Price it high or low and let the market decide what it's worth. We think that many components will be free,but some will be pay... and well worth the money. You can sell on your own or through our store - we think most people will go with our store since it will give better visibility for their produces,but there's absolutely nothing that forces you to do that.Quick question here; is it Flex-only?
Nope - it works with both Flex Builder and Adobe CS4. You can also build on the command line (which does not requires an expensive IDE).You're obviously not betting the farm solely on PushButton Engine. Can you tell us what else you're working on? I looked at your site and some a reference to a game, and something about WordPress?
PushButton Labs is working on several of our own games, the only one which we have announced being Grunts: Skirmish.Grunt Commander?
(laughs) That's the old name...That's what I saw when I checked out the PushButton Labs site.
We've been working pretty hard and have really updated the concept and the game, so, yeah, we need to update our company website, it is mostly a placeholder since we've been working hard on our product sites and only have one guy doing art for all our projects at the moment. Tim's an incredible artist to work with, I just wish we had two of him!
We plan to start talking more about our games in development over the course of the year as they move far along. In addition to the engine and our games, we also do web tech - we have OnePressCommunity, which is a GPLed framework for building community websites.Wow, that's a lot of interesting stuff. Any final thoughts?
Visit Jeff Tunnell's blog, MakeItBigInGames.com
, for more information on our progress, and we hope everyone tries out the PushButton Engine and stops by our forums - they're starting to get pretty active and we'd love to see you there!