HGE version 1.81
Copyright © 2003-2008, Relish Games. All rights reserved.


HGE is an easy to use yet powerful hardware accelerated 2D game engine. It is a full featured middleware for all who want to develop commercial quality 2D games rapidly and easily. It covers all imaginable 2D game genres: you could create everything from a simple puzzle to advanced multilayered platformer or strategy without even thinking of any non game logic code! And you don't have to know anything about "window messages", DirectX programming and all that stuff. Instead you can start developing your own game within 15 minutes!

HGE runs on Microsoft Windows 98, 2000, NT, ME, XP and requires DirectX 8.0. It will run even on low-end video cards, including built in video cards such as Intel Solano (i815 chipset). HGE can be used with virtually any C++ compiler including Visual C++, Borland C++, MinGW and Metrowerks Codewarrior.

HGE Screenshot
HGE Screenshot
HGE Screenshot
HGE Screenshot

Key features

Strict concentration on subject "2D games"
Task oriented design. Nothing redundant and lots of higher level features.
Simple interface and extreme easiness
You don't have to know anything about system programming and don't need any additional libraries. Classes and headers that make sense. Very easy to set up and use.
Technical advanceness
HGE is built upon modern Direct3D API what allows lots of special effects and great performance. Alpha blending, color tinting, geometry transformations etc. without performance hit at all!
Complete and clear documentation
All the features thoroughly grouped and described, lots of general game development hints provided.
HGE just feels right!
HGE is highly consistent. Every minor feature is carefully planned and interconnected with others.
HGE is distributed under The zlib/libpng license, i.e. it is completely free for any uses including commercial ones.


HGE provides three layers of abstraction covering all the various needs of a single game developer or a game development team:

Core functions Helper classes Authoring tools
All the system-dependent functions and routines. Higher level game object classes. Set of tools for game development.

HGE Architecture

Core functions

Hardware accelerated 2D graphics
Support for BMP, DDS, DIB, JPG, PNG, TGA file formats; windowed and fullscreen modes; exact texel-to-pixel rendering; arbitrary shapes rendering; drawing lines and filled shapes; rendering to texture; direct texture data access; clipping regions; various blending modes; alpha channels and blending; tinting; global scene transformations; Z-buffer.

Audio effects and music playback
Support for WAV, MP3, MP2, MP1 and OGG audio file formats; support for MO3, IT, XM, S3M, MTM, MOD and UMX music file formats; compressed streams playback; flexible volume, panning and pitch control.

Keyboard and mouse input handling
Get keys state and clicks; get key names; translate keycode to character; mouse position & wheel tracking; event-based and poll-based input handling.

Load resources from disk files; load resources from ZIP file (resource pack); easy switching between both; multiple resource packs support.

Timing functions
Frame rate synchronisation with unlimited FPS; fixed FPS mode; monitor refresh synchronisation; FPS counting; idle time handling.

Initialization & Log files
Write and read strings, integers and floats; printf-style log file output.

Helper classes

Sprites & Animations
Transparent interface to all hardware features; anchor point support; stretching, rotation and scaling support; horizontal and vertical flipping; timing functions; various playback modes.

Load and render bitmap fonts; various text alignment modes; font tracking, scaling and rotation; string width calculation; printf-style text output.

Particle systems & Distortion mesh
Advanced 2D particle systems allowing to create effects like smoke, explosions, magic etc.; particle systems manager; timing and movement functions; bounding box calculation and collision detection; water, lenses, page wraps, twists and even real-time morphing effects.

Resource manager
Powerful resource script; on the fly script switching; create complex objects with just a single function call; fully automated memory management; precaching and purging of specific resource groups.

Simple and flexible controls management; default controls: text, buttons and sliders; support for highly interactive, animated GUIs.

Vectors & Colors
Full set of operators and functions for handling 2D vectors; full set of operators for ARGB color calculations; hardware color conversion; color clamping.

Collision detection   (coming soon)
Oriented bounding boxes (OBB), radius-based and pixel-perfect collision detection; transformed objects collision detection; sweep tests; flexible set up functions.

Tile maps   (coming soon)
Multilayered tile maps; map scrolling; tile properties manipulation; tile animations; user-defined tile brushes; coordinates conversion; map clipping.

Authoring tools

Resources Compiler Resources Compiler
HGE uses widespread ZIP archive format for the resource packs. So you can compile HGE resource packs used in a game with your favorite archiver. You even can protect them with a password.
Texture Tools Texture Tools
PNG Optimizer and Texture Assembler automatically place your sprites onto texture sheets, optimize the space they occupy, ensure no distortion when rotating or scaling these sprites, and generate corresponding resource script.
HGE Particle Systems Editor Particle Systems Editor
Allows to edit visually all the parameters of advanced 2D particle systems. You can modify directions, speeds, life times, trajectories, particle colors and opacity etc. looking at the resulting effect in real time.
HGE Bitmap Font Builder Bitmap Font Builder
Allows to create a ready to use bitmap font from any font installed in the system. You could then apply any additional effects to the fonts using your graphics editor.
HGE Tile Map Editor Tile Map Editor   (coming soon)
Allows to draw maps with tiles, animations and edit tile properties. Also pattern, area and pathway brushes are supported. You can use unlimited number of visible and hidden layers and define their properties.