[AS3][pushbuttonEngine] FAQ

FAQ

What is the PushButton Engine?
什麼是PushButton Engine

The PushButton Engine is an open-source Flash game engine. There are lots of great libaries for building Flash games; PushButton Engine makes it easier to bring them together. PushButton Engine is written in ActionScript 3, and relies on Flash 9 or higher. It officially supports Flex Builder, command line builds, and Flash CS4, and people have succesfully used it with FlashDevelop and other ActionScript development environments.
More concretely, PushButton Engine provides some useful utilities (like an XML serialization/level format, logger and other debugging tools, time management, resource manager, and more), and a component system which lets you easily package game functionality into resuable modules. The component system draws on nearly a decade of game development history - you can read about it in detail in the Components section of the manual.
What does the PushButton Engine cost?
The PushButton Engine is freely available under the MIT license. It costs nothing and is free to use as you like. The only restriction is that you cannot claim you wrote it - you have to include our copyright and legal notice somewhere along with your application.
Free? Then how do you guys stay in business?
We are launching a component store where people can buy and sell components that are compatible with PushButton Engine. We will have our own components for sale, and we will also collect a percentage from transactions on the store. We are also developing our own games on the engine.
What sorts of games can be done with PushButton Engine?
Anything you have the time and energy to write. We include 2d rendering and physics components by default, but it is easy to start extending it - for instance, maybe you want to use PaperVision to render a 2d game world with 3d characters. Or if you swap out the physics, too, you could have a full 3d world. You can create games of any genre; the Engine does not assume that you are doing a side scroller, or shooter, or anything other genre.
Can I make an MMO with PushButton Engine?
The hard part about building an MMO is the servers. PushButton Engine would be great for building a client for your MMO, but it』s not the whole picture.
How do I get started?
Easy! Read the manual - the very first thing in it is a getting started guide. There are also links to tutorials and other goodies to help you along.
How can I contribute?
The best way to contribute is to start using the engine! Build a small game (or a big game!). Post about your experience in the forums - what is easy and what is hard? Did you get lost or have problems anywhere? Maybe everything worked great - in which case, we』d love some kudos. But knowing what is not working is really important, so please be sure to mention it!
The next best way to contribute is to start writing some components. Integrate your favorite physics engine! Add support for a particle renderer! Create some building blocks for your favorite genre of game! Build something neat and reusable, and share it with the community. Note that you can license components however you like.
Or once the component store is up, sell it and make some cash - more on that later.
Note that if you want to contribute to the core codebase - what is up on Google Code - please see the additional question below on 「Can I submit code and documentation improvements to the core of PushButton Engine?」.
Why should I use the PushButton Engine instead of just typing code into the Flash CS4?
If you are building a complex game, you will quickly find that you are spending more time keeping your code bug-free and organized than you are spending on moving your game forward. Every time you use code written by a third party, you have to spend a bunch of time integrating it and making sure that it works right. All these things keep you from building a great game.
We』re experienced game developers, and we』ve spent a long time developing both game technology and games. Why not let us give you a leg up? We already have rendering routines, level loading code, resource management systems, collision code, and a lot more. Because our engine is component based, you aren』t locked into using a specific set of libraries - it』s easy to tweak and modify to get the exact setup your game requires.
PushButton Engine does require a certain level of ActionScript experience. But we feel that the level of experience it requires is about the same level as you would need to develop a good Flash game from scratch. Our engine doesn』t lower the bar - it makes it so you can get a lot farther, faster.
What do you mean by 「components」? Can you give an example of how this works?
The component system is a framework that lets you build game entities out of small, reusable components. Game functionality logically falls into small chunks, rather than big monolithic objects. Our system is based on the data-driven systems pioneered by Gas Powered Games, among others. Scott Bilas』 talk from GDC 2002 will give you a good background on this approach.
The summary is that each game object - say we have a monster in our game world - is represented by an entity into which 「components」 are placed.
Each component is responsible for a specific piece of the game object』s behavior. For instance, you might have a 3d model component that deals with registering the monster』s 3d representation with the renderer and updating its animations based on the monster』s current state. There might be a physics component that interfaces with your physics library, and is responsible for taking movement goals from the AI component and converting them into changes in the physical world.
Because everything is separated, you can easily reuse or swap components - for instance, having a single 3d rendering component that is used by all characters in the world, or swapping a 2d component for a 3d component to change your game to be sprite-based. You can also quickly add components to affect behavior. For instance, a team component that is responsible for tracking which team a monster is on, an inventory component so that monsters can automatically carry and drop loot, or a particle effects component so that monsters made of metal realistically spark when they bump into things.
Object descriptions then become a list of the components that make up that object, and their properties, so editing is very easy. There are flexible ways to get data and events from one component to another, so even for complex components like the 3d renderer, you often don』t have to write any code at all to get them talking.
Of course, PushButton Engine comes with a full set of documentation that explains this system in detail. You can read about the component system in the PushButton Engine manual.
What is Flex, and what does it have to do with PushButton Engine?
A while ago, Adobe released Flex Builder, which is an Eclipse-based IDE for building Flash applications. It is more programmer oriented than the Flash CS4, and includes a bunch of libraries (in the mx.* namespace) for building applications in Flex Builder. Recently, Adobe released the open source Flex SDK, which includes the Flex libraries as well as an open source ActionScript compiler toolset.
PushButton Engine supports Flex Builder (the IDE) as well as the open source Flex SDK. You can use PushButton Engine with the mx.* libraries, or just with normal Flash APIs (ie flash.*). Check out the Getting Started guide for information on how to use them with PushButton Engine.
What is required to develop games with PushButton Engine?
You don』t need to spend any money to get started with the Engine. Get Java, Ant, the free Flex SDK, and download the latest build of the PushButton Engine SDK. If you have the Flash CS4 or Flex Builder, you can use those. Or you can pick up FlashDevelop, which is also free. Any tool that can do AS3 development should work fine with the engine. The Getting Started guide covers all this in detail.
Can I submit code and documentation improvements to the core of PushButton Engine?
Yes, we allow submission of code & content to the core of the engine code and documentation itself. Please note however this process is separate from the creation and distribution of components or the sale of components in the PushButton Engine Component Store. It exists specifically for the submission of new engine-wide features, documentation improvements, and bug fixes to the core engine.
To submit Engine or Documentation improvements or features, you must submit a Contributor Grant, which is based upon the Open Source approved Apache 2.0 Contributor Grant License. By granting PBE a license to the submission you help us achieve our goal of providing reliable and long-lived software products through collaborative open source software development. For more information, please visit our Engine Contribution page.
What is required to run games made with PushButton Engine?
All your users need to run a PushButton Engine game is Flash 9 or later. You can also package your game using Adobe AIR for deployment to the desktop.
What kind of games can PushButton Engine make right out of the box?
Right now, the Engine ships with a simple platformer demo. We will be adding more starter games in the coming months, although it is trivial to build most 2d games using the platformer as a base.
Can you give me an example of how many components are in a typical game?
Obviously, the number of components will vary tremendously depending on your coding practices and the scope of your game. For Grunts, which is in the tower defende genre, we have about a dozen components on each game unit, and overall perhaps 30 components.
What are the main differences between PushButton Engine and traditional C++ engine?
Traditional C++ game engines, like Unreal, C4, Gamebryo, and others, are very different from PushButton Engine. They typically target download sizes from dozens of megabytes to gigabytes. They assume a fairly powerful GPU. PushButton Engine targets lower-end systems running Flash, and has options for native ports that are designed to work on low-end hardware like the iPhone. Games built with PushButton Engine are pretty small, usually only a few megabytes. Of course, you can scale traditional engines down, and scale PushButton Engine up, but that』s where they』re aimed right now. Both of them give you pretty good options for networking, collision, rendering, with PushButton Engine on a smaller scale, of course.
PushButton Engine leverages Flash』s capabilities, so you automatically get great I18N and L10N support, a really strong UI library, native support for using Flash animations in your game, and ability to use the Flex Builder and Flash CS4s. Traditional C++ engines have homegrown capabilities in all those areas that are similar but generally less mature. In fact, there are several middleware libraries that let you use Flash as a UI for a C++ game.
What is the art pipeline like? What art tools work with PushButton Engine?
Since the goal of PushButton Engine is to let you bring together existing good libraries rather than rewriting everything, there are several options available to you here. If you』re talking about 3d content, you can use PaperVision 3D or Sandy 3D (among others). PV3D has support for quite a few formats, including the Quake MDx formats, Collada (with animation), and 3DS. In Grunts: Skirmish, a 2d game, we』re using prerendered isometric sprites (GIFs produced from 3d Studio Max for units and levels) as well as Flash-authored content (for explosions/effects, menus, and cut scenes). All of this is built on the RenderingTwoD library that comes with the engine.
There is a resource manager abstraction, so you can add additional compression if needed, but Flash has support for PNG, GIF and JPEG, as well as zlib compression for raw binary data. The industry standard for Flash apps is to embed files in the SWF itself, which gives decent compression and saves you slow roundtrips to the server to download more content. This embedding happens whenever you compile, so it only takes a minute or so to change art and see it in game.
What is Ant? Why are you using it?
You can actually use several tools other than Ant; Flex Builder and Flash CS4 are just two other options. Ant is used only for command line builds of the engine. Onto the answer for this question…
One of the supported tools for compiling the PushButton Engine is Apache Ant. Ant is a free, Java-based make replacement. We use it because it is easy to use, cross platform, and has a simple-to-work-with XML format for its build files. In addition, much of the Flex community already uses it for their command line builds. Because MXMLC already uses Java, Ant does not introduce an additional dependency.
Read the Getting Started guide for details on how to use Ant with the PushButton Engine SDK.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章