Twitter Youtube
Twitter Youtube

Overview and Documentation
HCGE is a versatile, multiplatform 2D game development system.  Its editors and powerful script interface allow users to create the characters and environment that make up the game, while the program handles I/O, low-level player/object management, etc.  Many 2D Genre are possible with this system, such as Platform, Adventure, SHMUP, Fighter, RPG, Paddleball/Pinball, and others


Full documentation for all file formats, script commands, management systems, and editors is included with PC and Mac download packages and on this site.  The sections below provide links to relevant texts, and the "Getting Started" document is provided as an overview and entrypoint

For most platforms, HCGE includes an online update and download system that will activate if it is not set to run a specific game at startup- Official Games Using HCGE can be downloaded from within the program itself, and upon entering the Game Menu, it will test for updates to the program and any installed games that have proper update settings

System Requirements
Processor and memory requirements for reliable performance will change depending on the content of the game, but the absolute minumum requirements are:

  • PC- 386Sx processor, 8MB of free RAM, and Windows 95+ w/DirectX7+ or Linux with SDL
  • Mac- PowerPC or Intel MacOSX system of comparable spec to PC
  • PSP- Any PSP with any custom firmware installed
  • Wii- Any Wii with "The Homebrew Channel" installed
  • GP2X Wiz- Any Wiz system
  • GCW-Zero- Any GCW-Zero system

Bear in mind that the Wii uses a 729MHz processor, while the PSP uses a 333MHz processor, and both have only 24MB of RAM available for use by HCGE. The Wiz has 32MB of HCGE-available RAM, but although it is made to run at 750MHz, there is overhead somewhere within the Linux kernel and/or the SDL sound implementation that bring it down to the level of the PSP. Games built for use on these systems must target these numbers

Each platform has a separate download package:
Windows, Linux, *MacOSX, PSP, Wii, GP2X Wiz, GCW-Zero

* An issue with the current Mac build requires that SDL actually be installed, as opposed to just existing in the app package, for HCGE to run without immediately exiting. If you do not already have SDL installed, please right-click the HCGE app and select "Show Package Contents", and then navigate to "Contents/Frameworks" and right-click and copy "SDL.framework". Then, navigate to your main hard drive's "/Library/Frameworks" folder and paste "SDL.framework". You may need to use your administrator password to complete the operation, since this is a system folder. This will only need to be done once. I will be seeking to solve this issue in a future update, and I apologize for the inconvenience.

If you experience any problems with any version of HCGE, please report them via twitter or in the Headcannon Discord Server!
If I don't know about it, I can't fix it!

For private and no-fee use, HCGE is distributed under a "Pay-What-You-Want" system; the software is provided to everyone free-of-charge, but users are encouraged to contribute to help ensure that development can continue. Users who intend to sell materials created using HCGE and services related to HCGE must obtain a commercial license, however, a license is not necessary until such point that currency is to be exchanged. Please see the license section for further detail

When determining an amount, please consider the following:

  • The value of the software
  • The value of any official materials that you may use, such as examples and tutorials
  • The value of the availability of HCGE to those who may not be able to contribute as much, or at all
  • The value of continued development for yourself, others, and officially-created HCGE games both commercial and otherwise
  • The fees and taxes that will reduce the amount that I'm actually able to keep

    Contribute via PayPal!


    Become a Patron!

    To contribute by mail, or to donate materials such as hardware for platform testing, please send an email request titled "Mail-In Contribution" to domain "", username "stealth".

    Thank you very much for your consideration!

  • Features
    The following features make HCGE a powerful solution for game development:

    Games developed for HCGE can readily be run on any of the platforms listed above, regardless of the platform used for testing and development, without any additional steps (this assumes that the processor and RAM limitations of the Wii and PSP have been accounted for during development, and that their button config files have also been created) 

    Sound System:
    HCGE uses a custom sound system supporting music and sound effect volume controls, looping and non-looping .wav format sound effects, .wav and .ogg format music with lead-in intro before the loop, and .XM music with up to 16 channels, most standard effects, and "song events" that allow the music to control the game, or the game to control the music

    Level Scroll Management:
    HCGE's level management system allows for an adjustable number of tile layers for scrolling, each of which can be enabled/disabled at any time during gameplay.  Each layer may be set to one of six scroll modes: full layer fixed or relative scroll, and tiled or lined scroll on either the X or Y axis.  Scrolling properties for each unit on each axis can be set up within the level editor, or each scroll unit can be controlled manually through script to apply finer control or special scroll effects.  There are also settings to allow for level section looping for simulated extended height/width or repeating segments

    Tile Properties:
    The tiles that make up a level may contain more than one "frame" that can either be changed automatically at intervals set by the user within the level editor, or can be set by script.  Aside from the display frames, the tile also contains a solidity map that defines where collision with the level will occur in the form of "top-only" or "all-sides", as well as an "angle" setting, used by the path tracer, and a "Floor Type" setting, all of which can be read by script

    Palette Properties:
    HCGE uses a 256-color palette with adjustable "level palette" settings.  A level may contain several interchangeable palettes that may be swapped at any time.  Each palette may be set to one of three modes, the first being 64 level colors and 64 reserved global colors, with the remaining 128 being copies with an adjustable "alpha" applied for water/lighting effect, and the remaining 2 modes using no alpha, allowing either 128 level and 128 global, or 192 level and 64 global. Palette entries may be animated by "frame" in the same way as tiles, and may also be cycled with neighboring entries.  Each entry within the active palette may also be changed directly by script 

    Object Management:
    Objects are run and displayed in order of "Priority".  They may be set to move freely throughout the level or to conform to level collision settings based on script-controlled movement properties, or their position may be adjusted entirely by script.  They may also be set as "Projectile Objects", which can process collisions with other objects, whether those objects are "Projectiles" or not. Any object may reference any number of swappable sprite listings, and any number of interchangeable and even combineable scripted object animation functions

    Player Management:
    Player characters use a more complex setup than normal game objects to make them more versatile.  Multiple "Movement Modes" may be assigned to each player character that define how the player reacts to input, his state, and his environment.  Movement is processed by a more-heavily-featured "Path Tracer", which is capable of vectored movement based on floor angle settings, can be made to follow a path around a complete circle, gathers more information about the player's movement and collision state, and uses unit-by-unit movement for high accuracy in collision, even when moving at a diagonal line through freespace.  Adjustable automatic viewport control may be enabled for players, and defineable "Key Events" call script functions that control the player's reaction to input.  Any number of player characters may be defined for any game.  Two active player objects are available which correspond with the two active player displays (single or split-screen), and may be set or reset to any defined player character at any time

    Setup Scripts:
    Setup Scripts exist for all aspects of a game for assigning properties to aspects such as sprites, player characters, objects, and general level control, and for loading data lists such as music, sound effects, and fonts

    "Status Script":
    The "Status Script" is a special type of script that can be used to create displays such as HUDs, intros, titlescreens, menus, in-game dialogue, and debugging displays.  These scripts allow the use of fixed or numerical counter text, animated or unanimated sprites, and windows for text/sprite/window grouping and clipping areas, as well as "selections" for defining and reacting to menu-style input 

    Script Functions:
    Aside from basic setup, HCGE's script system also consists of a custom, instruction-based programming language that is used for controlling the behavior of all game elements.  Setup scripts make reference to Script Functions using this language to assign them to events such as player input, player/object collisions, player movement, "Status Script" control, level events, etc.  Any one of these functions called at any time may access and manipulate any other game element for any reason 

    HCGE comes with several built-in editor systems that are accessible (for non-"packed" games) during gameplay and from within the interface's "Utilities" menu. They are described in more detail in their own section

    Level Ripper:
    The built-in level ripper, accessible via command-line or the interface's "Utilities" menu, may be used to "rip" tiles from PCX or TGA images.  The tiles imported into the named tile file are also arranged to create a level layout layer in the same design as the image itself.  Tiles and layout sections may be imported to existing levels.  Tiles using an image that has already been copied are not duplicated.  The created level may be further manipulated within the Level Editor

    Additional Utilities:
    A few other Utilities are also available via command-line and the interface's "Utilities" menu to assist in creation of game data, such as an option to export a portion of a PCX or TGA image's palette to a "Set_Palette_Range" script command, and an option to shift a palette area in one image to another location.  Other debugging options include warping directly to a certain level, and entering the level editor directly within a gameplay level, or with other specified files 

    Below is a list of editors included with HCGE:

    Level Editor
    The built-in level editor allows for level modification outside or inside of the game.  Start it directly, or enter from gameplay to make adjustments and test them immediately.  Easily switch editing planes, display more than one at a time, overlay with tile solidity, copy/paste sections, grab tiles, draw to the level, and change tile collision properties

    Tile Editor
    The built-in Tile Editor works in conjunction with the Level Editor to allow manipulation of level graphics and layout.  This includes touching-up or drawing new tile art, setting tile solidity and collision properties, creating tile animation, modifying the palette, and creating palette animation
    Object Layout and State Editor
    The built-in Object Editor allows modification of location and state of objects that have been placed in a level.  Enter this editor from gameplay, and adjust object properties, (optionally) save, and return to gameplay.  Use this feature to test or monitor object behavior, or set up object initial states when objects of the same type may start with different behaviors
    Sprite Editor
    The built-in Sprite Editor allows visual manipulation of sprite properties.  Enter this editor from gameplay, and modify drawing offsets, collision boundaries, and hotspot locations for player or object sprites

    First-party HCGE Templates/Examples (General)
    This is a list of General HCGE Functionality examples and templates developed by Organized Chaos:

    HCGE General Game Template
    A set of very basic Script and data files that provide just enough information to get a "Game" up and running. It is meant only for use as a starting point in creating new Games, and as such, it contains no gameplay of its own, and uses very basic assets that in no way reflect HCGE's potential

    Install directly from within the HCGE main interface, or Download here for manual install (place contents in the HCGE program folder)  

    First Party HCGE Fan Games/Examples

    Check out the Headcanon Section of the site for more information!


    The HCGE is not an "opensource" project, and under no circumstances will sourcecodes be distributed. Please don't ask.

    Private and no-fee use

      Users are hereby granted license to freely create and distribute HCGE games for private and no-fee use. Generocity is accepted and encouraged; please see the contribution section for details.

      It is requested, but not required, that any game running on the HCGE be made to display a splash screen noting that fact, or that the fact be mentioned non-trivially in some accompanying documentation or credits sequence.

    Commercial use
      Any user finding the HCGE fit for commercial/for-fee use must first purchase a commercial license before engaging in any commercial/for-fee activity. For information regarding the commercial license, please send an email request titled "HCGE License" to domain "", username "stealth".

      The aforementioned email address is not for any other correspondence. For questions, comments, and support, please visit the Headcannon Discord Server, or contact us via twitter!

      License is hereby granted to perform free, no-fee public or private demonstration, explanation, tutorial, etc using the HCGE. A commercial license must be purchased before any for-fee performance of the HCGE, public or private.

      The base HCGE may be freely distrubuted under the follwing conditions-

    • Only the original, unmodified archive may be distributed.
    • Any distribution of the HCGE must be provided free of charge.
    • The HCGE may not be distributed as part of a package.

      Any game created using the HCGE may be distributed in conjunction with the HCGE as a combined, stand-alone application under the following conditions-

    • The game must be made to start automatically when the program is launched. This is accomplished by renaming its .gdf file to "default.gdf".
    • If the game is not "protected" using the game.hcg container format, then all files from the original archive must be included, unmodified.
    • The combined application must be provided free of charge unless a commercial license has been purchased.
    • The combined application may be distributed as part of a package provided that it is presented as a game using the HCGE and not as the base HCGE, and that the package is distributed free of charge, or a commercial license has been purchased.

      All files for any game created using the HCGE may be distributed without the HCGE itself under the following conditions-

    • The files must be provided free of charge unless a commercial license has been purchased.

    Game Licensing
      Content of any games created with the HCGE, including officially-developed game packages are subject to their own license terms regarding gameplay use, and use, availability, and readability of source materials.

      Users may use whatever licensing terms they like for their own games, subject to the condition that the author must purchase a commercial license if a fee is to be charged for the game or any HCGE-specific game code or data.

    Fee - Definition
      Any receipt of currency through any means during the process of developing or distributing a game using the HCGE, or any performance of HCGE usage, shall be considered a "fee" under this license, regardless of classifcation (Ex: "Donation"), source (Ex: Kickstarter), or intended use. Please contact the address in the "Commercial Use" section to discuss how any particular situation affects licensing.

      For charity events, please contact the same address.