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 Ogre, Horde3D, 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:
<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
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.
I will talk about this later.