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.
"Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI."
The Akihabara which you can download here is my personal dream too. It is a set of libraries, tools and presets to create pixelated indie-style 8/16-bit era games in Javascript that runs in your browser without any Flash plugin, making use of a small small small subset of the HTML5 features, that are actually available on many modern browsers.
Unity is a multiplatform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars.
Scratch is a new programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.
FlexibleRules aims at supporting the design and editing of computer board games by introducing a simplified programming model and set of software tools.
Seems well documented with examples, tutorials
Here is a list of the major programming languages used to write games along with descriptions, advantages, and disadvantages. Hopefully this list will help you make a decision.
"Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power." "
I recently wrote about dlmalloc and how it is a poor choice for a memory allocator for console games. As I explained in my previous article, dlmalloc has two major limitations. It manages a pool of address space composed of discrete regions called segments. It can easily add segments to grow its pool of address space, but it can't easily remove segments to return address space to the OS. Additionally, it doesn't distinguish between physical and virtual memory, which means that it can't take advantage of virtual memory's ability to combat fragmentation.