What is <harmony>?

<harmony> is our project for a free, open source game development framework. It is not a game engine.

Indeed, <harmony> provides a powerful, intuitive API that game programmers can use to write their games without worrying too much about game engines, scene-graphs and data-blocks.

This project includes two sub-projects:

1. The <harmony> specification. The specification is high level; (in it’s current form) it is not concerned with the user interface or multimedia content; instead it focuses on actors, props, items and other high level entities.

The specification is generic and designed to integrate with 2D/3D engines. Since it is high level, it may not be ideal for writing just any game:

    • Good for RPGs, action RPGs, FPS, dual shooters, 3D adventures or farm games.
    • Maybe not great for creating a flight sim, a racing game or a card game.

Currently the specification is available in Objective C. It can be ported quickly; I will consider porting <harmony> to haXe, C++, C#.

A draft is available as open source (see below).

2. Reference implementations.

The development of <harmony> is coupled with the development of our game platform. We use a custom rendering engine and integrate with Bullet Physics.

I hope to integrate with one or several game engines. Candidates may include OgreHorde3D, Unity3D, Unreal.

A cross engine implementation is quite possible; indeed I will probably do something like that if I have time, or there is enough demand for it.

I may also provide a trivial implementation, not connected to a game engine or physics engine but useful either as a starting point or to test/validate the specification.

<harmony> is not concerned with the user interface or whether your game is 2D or 3D. The API provides customizations to make it easier to implement the framework and seamlessly integrate with a game engine, a physics engine or other components.

The harmony specification

The working draft is available at the following URL:

http://xp-dev.com/svn/harmony-framework/

<harmony> is free to use. However you cannot redistribute modified or unmodified versions of the source code (see ‘License’ below).

While I cannot recommend using <harmony> until I determine that we are looking at a solid beta, developers that wish to create their own framework may find the draft inspiring. 4 years of expertise and 12 months of solid work (on our game platform, not the spec!) went into the piece.

Please note that I am in the process of normalizing and reviewing the framework. This may take another couple of months for several reasons:

  • We are using the framework to develop actual games; sometimes changes to the specification immediately reflect on game code.
  • I would like to incorporate feedback and suggestions from other game developers

History

Initially I developed <harmony> for our game studio, Anime3D SFX; in its current form, the framework is used to develop iPhone/iPad games – our next game, Spectral, as well as the coming Antistar sequel.

The <harmony> license

Full license terms are available with the source code. In short you are free to download, use and modify harmony, however – once again -you cannot redistribute the source, wether modified or unmodified.

I will consider providing more permissive license terms later on, or maybe dual licensing. Until the framework is somewhat stable, I don’t think it really matters. If for whatever reason you think otherwise, please let me know.

Contribute

I will talk about this later.