AS3 game engines30 Jan 2010
I like to write my code from scratch, but it does not mean I want to reinvent the wheel every single day. This is one of the reasons why I like to use engines to code games.
Sometimes the project has it´s own specific features and it requires a completly customized code, but most of the time it´s all about the same things: test input, check collisions, update a bunch of elements and finally render them all. Looking for a tool to do those tasks for me, I found two free and open source game engines: PushButton and Flixel.
PushButton is a very modular game engine licensed under the MIT license. It has core functionality as resource manager, logger, debug monitoring, serialization, time management, globally named objects, etc. It also has a set of components that make the engine even better:
- Physics based on Box2D;
- Gameplay components: health, teams, state machines;
- Sprite-based and SWF-based 2D rendering;
- Tilemap system;
- Pathfinding library;
- Basic networking. Pass events to/from your servers, do XMLRPC/JSON Web API requests, etc;
- Awesome UI capabilities via Flash – localizable, stylable/themable, internationalizable.
- Really fast renderer (5000+ sprites on modern PCs);
- Particle systems;
- Global sound system with volume hotkeys, looping, panning, etc;
- Parallax scrolling (free/multi-directional);
- Built-in 2D box-based game physics (not Box2D);
- Fast text rendering;
- Retro style zoomed rendering options (2x pixels, 3x pixels, etc);
- Works great with non-pixel art too, with support for rotation, scaling;
- Composite multiple sprites using blending modes to create sweet lighting effects;
- Does not require the Flash IDE, works best with free tools like FlashDevelop;
- Organizational classes like game states;
- Simple buttons;
- Utilities for looping music and playing sound FX;
- Simple special effects like screen flashes and fades;
- Save game data between sessions using a local shared object.
Reading about them gave me the idea of writing my own game engine someday. Maybe some raining day I give it a try