Description

Gadget 2D is a full featured high performance 2D game engine. It is intended for students or hobbyists with a working knowledge of the C++ programming language. The complex details of loading various file formats, and rendering graphics are hidden away behind a simplified interface. This allows users to focus on game development without too many technical details getting in the way. Gadget 2D is not designed to be specific to any one type of game. Virtually any type of 2D game can be built with this engine.

Graphics

Full support for GLSL shader effects, multiple blending modes, and full screen multisampling mean that you’re only limited by your artistic ability. The rendering system is built on OpenGL with all the features that OpenGL supports still accessible. This means that users experienced with OpenGL can extend the functionality of the engine and create their own custom visual effects.

Gadget 2D supports the following image file formats:
  • Windows Bitmap - .bmp
  • Dr. Halo - .cut
  • Multi-PCX - .dcx
  • Dicom - .dicom, .dcm
  • DirectDraw Surface - .dds
  • OpenEXR - .exr
  • Flexible Image Transport System - .fits, .fit
  • Heavy Metal: FAKK 2 - .ftx
  • Radiance High Dynamic - .hdr
  • Macintosh icon - .icns
  • Windows icon/cursor - .ico, .cur
  • Interchange File Format - .iff
  • Infinity Ward Image - .iwi
  • Graphics Interchange Format - .gif
  • Jpeg - .jpg, .jpe, .jpeg
  • Jpeg 2000 - .jp2
  • Interlaced Bitmap - .lbm
  • Homeworld texture - .lif
  • Palette - .pal
  • Kodak PhotoCD - .pcd
  • ZSoft PCX - .pcx
  • Softimage PIC - .pic
  • Portable Network Graphics - .png
  • Portable Anymap - .pbm, .pgm, .pnm, .pnm
  • Alias | Wavefront - .pix
  • Adobe PhotoShop - .psd
  • PaintShop Pro - .psp
  • Pixar - .pxr
  • Raw data - .raw
  • Homeworld 2 Texture - .rot
  • Silicon Graphics - .sgi, .bw, .rgb, .rgba
  • Creative Assembly Texture - .texture
  • Truevision Targa - .tga
  • Tagged Image File Format - .tif
  • Gamecube Texture - .tpl
  • Unreal Texture - .utx
  • Quake 2 Texture - .wal
  • Valve Texture Format - .vtf
  • HD Photo - .wdp, .hdp
  • X Pixel Map - .xpm
  • Doom graphics
Gadget 2D now supports all true-type fonts. True-type fonts can be rendered at any size desired and always have sharp edges.

Audio

In game audio is currently provided by FMOD, a commercial sound engine used in many triple A titles. The following file formats are supported:
  • AIFF - Audio Interchange File Format
  • ASF - Advanced Streaming format, includes support for the audio tracks in video streams
  • DLS - DownLoadable Sound format for midi playback. Can also be used as a stand alone container format in FMOD
  • FLAC - Lossless compression codec
  • FSB - FMOD sample bank format generated by FSBank and FMOD designer tool
  • MID - MIDI using operating system or custom DLS patches
  • MOD - Protracker / Fasttracker and others sequenced mod format
  • MP2 - MPEG I/II Layer 2
  • MP3 - MPEG I/II Layer 3, including VBR support
  • OGG - Ogg Vorbis format
  • RAW - Raw file format support. The user can specify the number of channels, bitdepth, format etc
  • S3M - ScreamTracker 3 sequenced mod format
  • VAG- PS2 / PSP format
  • WAV - Microsoft Wave files, inlcluding compressed wavs. PCM, MP3 and IMA ADPCM compressed wav files are supported across all platforms in FMOD Ex, and other compression formats are supported via windows codecs on that platform
  • WAX - playlist format - contains links to other audio files. To access contents, the FMOD Ex tag API is used
  • WMA - Windows Media Audio format
  • XM - (FastTracker 2 sequenced format

Input Devices

Standard keyboards, mice, and controllers are supported as input devices. By Default, the mouse is free to move around the screen normally and can leave the game window. While the mouse is over the game window, its position can be read. Additionally the mouse can be locked to the center of the window in which case the speed of the mouse is tracked instead.

System Requirements

All examples are Microsoft Visual Studio 2008 projects. Microsoft Visual Studio 2008 or newer is needed to compile the examples. Other C++ compilers can also be used such as Microsoft Visual Studio Express (a free compiler) but examples will not be provided.
Video cards are required to support the OpenGL shading language (GLSL). The CPU requirements of games made with Gadget2D will vary greatly depending on the content of the game. Therefore it is recommended that developers test their games on the oldest hardware they plan to support while the game is still in development.
Gadget2D is current not cross-platform. Games made with it will run on Microsoft Windows Operating systems only.

Licensing

My own code is free to use, modify, and distribute. All I ask is that you do not remove my name or comments from the source code. I would also appreciate my name in the credits of projects you build using any of my code. If you do use my code in a game, I would really like to see it. Please email me the link.
FMOD is a commercial sound engine. It is free to use for non-commercial applications. Users may be required to purchase a license in order to use FMOD commercially. To avoid paying this fee, users have the option to remove FMOD from the build and add a free sound engine in its place.
Some file formats may require licensing. It is your responsibility to research the licensing requirements of the file formats you are using if you wish to avoid paying fees.