The Pushbutton Engine is an actionscript modular game engine and framework. It solves several problems that arise after the beginning stages of game development: object bloat, complexity management, and code reusability. This means that after some time adding all the behaviour needed by your game objects, e.g. a physics engine, controls, AI, rendering, sound etc, etc, it becomes more and more difficult to build code that is reusable, and managing object hierarchies becomes a giant pain. The Pushbutton Engine (PBE) avoids this trap by the use of components. The components defined in PBE communicate and integrate with one another via a a flexible system that avoids compile time dependencies, meaning that most of the time you can use someone else’s component without any modifications to the component source, and very little modification of your source (except of course the underlying game logic that uses that component).
A practical example. Say you design a 2D top down game. Later on, you decide that an isometric view is more suitable. That could involve a single line of code change, or a single modification to a level XML file. Unfortunately Pushbutton is written in actionscript (==Flash).
The modular, component based archituecture of PBE is a natural fit to HaXe. The platform specific parts can be written as components, allowing you to easily isolate these parts and swap them out depending on the platform.
So I’ve began porting PBE to Haxe. The git repository is here. I’m endevouring to keep as close to the original architecture as possible, however often to make a class or component more general than AS3 means a significant rewrite. At the very least, the core interfaces will be very similar if not the same.
There are many other good reasons to use the Pushbutton Engine, I would encourage you to check out the website.