AS3 game engines

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 :)

• 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…yet, anyways)
• 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
Tagged , , ,

Simple and powerful intranet

These days I was looking for intranet solutions and I luckily found Open Atrium, an intranet in a box that has group spaces to allow different teams to have their own conversations.

OpenAtrium is built on top of Drupal, has a nice design and a useful set of features:

  • Blog: A classic blog for each group that has commenting, file attachments on both the post and comments, and granular notifications.
  • Calendar: A calendar that lets you quickly add events, suck in iCal and other calendar feeds, and support single or multi-day events.
  • Group Dashboard: Mini widgets give you a snapshot of all the activity happening across your groups.
  • Documents: A simple online handbook that lets you collaborate on documents, store and compare revisions, attach files, and once you're done print out the final copy.
  • Shoutbox: Kind of like a private twitter, the shoutbox lets you share short messages, links, and information with just the people in your group.
  • Case Tracker: A full ticketing system that lets you assign to do's and create unlimited projects within each of your groups. The case tracker also lets you classify the to do, give it a priority, and manage its status.

For small companies, it is an efficient tool to create/maintain an intranet.

Tagged , , , , , ,

Flash instead of Powerpoint?

Probably I've spent several hours editing and arranging pictures to create a nice Powerpoint presentation. Even though the Microsoft product is a great tool, I do not like the final result. It seems unfashionable, too poor and/or simple.

This is one of the reasons why I like image sliders developed using Flash. I look at them and imagine how wonderful life would be if I could easily use it and some lines of text in a .txt file to create a presentation. Nice graphics, beautiful font rendering, smooth effects (including blur and glow) and maybe some physics, why not?

Trying to make my dream come true, I found two amazing image/content sliders in Flash: MegaZine 3 and CU3ER. The first one is an open source pageflip/flashbook engine, written completely in AS3.

The other one is a content slider with 3D transition effects, such as spinning.

cu3er

Certainly those two projects have lots of cool features and they can perfectly fit into a wide range of uses. If I have the change to save some time for my personal projects, such as my own Flash slide presentation, I will use MegaZine 3 and CU3ER for sure.

Tagged , , , , ,

SWFConsole: enhance the power of your Flash games

TerminalSometime 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.

Looking for a tool that could help me output text, I found SWFConsole.  It is a free developer tool for Flash AS3 projects that gives you output in all environments, not just the IDE. You can type commands in order  to manipulate Movieclips in the stage,  such as myMovieclip.alpha = 0.3.

SWFConsole also has a built in resource monitor that shows FPS and memory usage, pretty useful for game developers. I miss some features as listeners to handle custom commands and a method to "enable/disable" the console instead of  showing or hiding  it, but it does not make  the tool less useful.

If you are a Flash game developer, SWFConsole can make your life easier!

Tagged , , , ,

PHP and PDF in pure Javascript

Javacript is the very first base stone concerning web 2.0. In the past, I always heard bad things about Javascript, but I guess all of them were said because Javascript was being used by the wrong people, in the wrong place and at the wrong time.

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.

I have found two of those Javascript ports that can be really useful, specially if you are a PHP developer (just like me): PHP.JS and jsPDF.

PHP.JS is an open source project in which you can use PHP functions client-side, in pure JavaScript. jsPDF is an open-source library for generating PDF documents using nothing but Javascript.

Tagged , , , ,