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.
Flixel is collection of AS3 files that helps organize, automate, and optimize Flash games. It is also licensed under the MIT license and has a great set of features:
- Really fast renderer (5000+ sprites on modern PCs);
- Tilemaps;
- 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




Sometime ago I was working on a Flash game and I had to output some information to the console. That's a very easy task when you use trace() and the Flash IDE, but things get a little harder when you need to output text inside the browser.
A lot of sites use huge Javacript libs, each one performing nice things, such as HTTP requests, animation effects, generation of RIA content, etc. Javascript is so famous now that several things have been ported to it, such as encryption algorithms.