Welcome to IndieZen.org

IndieZen.org provides support for Open Source Game Development projects. We are more than just a group of projects sharing a server. We are a community of developers and users collaborating on game development software with an open, unrestrictive software license. First and foremost is our desire to create high quality extensible software that leads the way in the field of game development.

Background

IndieZen was founded by Tony Richards in October, 2006 with the goal of creating a community of artists, game designer and programmers that collaborate and create games more effectively.

The software developed through this collaboration has been designed as a framework with a versatile plugin system. This allows game developers to choose among a wide variety of components and piece together a game engine tailored specifically for their game.

All IndieZen.org projects are free, come with the source code, and are licensed with the ZLib license. This allows you to use the software free of charge, commercially or in open source projects. Unlike other Open Source or Free Software licenses, you are not required to re-distribute the source code.

Projects

The top level IndieZen projects are well designed object oriented libraries and frameworks. The design and implementation is kept very clean and robust without being cumbersome. In many respects we follow the "less is more" attitude in order to avoid the pitfalls of over-designed software.

Simply put, all of the IndieZen projects are appropriately designed and gracefully implemented.

Zen Core

Zen Core is a ISO C++ Object Oriented library, with the intention of enhancing the C++ language to include high-level threading, event management, memory management, plugins and scripting.

It's used to augment existing libraries with little redundancy. The threading is at a higher level than TBB / Boost, the scripting is at a higher level than boost.python, the memory management fills some gaps that boost and std smart pointers leave.

The plugin system is an extremely versatile C++ plugin system inspired by the Eclipse plugin system. It uses an extensible design allowing for the creation of any type of plugin for any type of component or extension points.

Although the library is fairly lightweight, it provides some very robust functionality that are useful for most applications.

Zen Engine game engine framework

The Zen Engine game engine framework consists of all of the abstract interfaces that define components that are used in a game engine.

Zen Engine is a game engine framework, not a game engine. The only dependency is Zen Core and Boost.

It provides an abstraction layer for many game engine components and ties them together using the scripting framework.

There is very little code in the Zen Engine Framework library. Mostly it is the pure abstract C++ classes, plus the glue code necessary for loading the plugins that implement these abstract classes.

It's meant to be a starting point for game developers to use to create their own custom game engines. You don't have to learn any more to use Zen Engine than you would have to learn in order to make a game engine using third party libraries.

Zen Studio

Zen Studio is a integrated development environment shell modeled after Eclipse.

You can package plugins with Zen Studio to make a standalone application, your you can create plugins to integrate with other game development tools in support of a full game development IDE.

Although the focus of Zen Studio for IndieZen.org is for creating game development tools, it's also useful for create any kind of tool, utility or enterprise application.

Zen Enterprise

Zen Enterprise contains the bulk of the implementation of IndieZen's Enterprise Service Bus as part of their Service Oriented Architecture solution. It contains a high performance C++ application server and defines extension points for application services and protocol adapters.

With Zen Enterprise, you can write a C++ plugin that implements a simple message handler. The Zen application server takes care of message routing.

Protocol adapters handle all of the networking.

TCP, UDP and HTTP (server) protocols have already been implemented in the Boost.ASIO networking plugin, and so if that implementation suits your needs then you do not have to directly interface to any network API's.

Zen Worlds

Zen Worlds is virtual worlds / MMO middleware. It augments Zen Engine and Zen Enterprise to provide robust middleware in support of MMO games.

Plugins

In addition to the frameworks, IndieZen.org also hosts a large number of plugins.

These plugins integrate 3rd party libraries with Zen Engine, Zen Studio, Zen Worlds and Zen Enterprise.

For a full list of plugins, see the Zen Plugins page.

Contributing

There are several ways you can contribute to IndieZen.org.

  • Use the IndieZen.org software and provide feedback, feature requests and bug reports
  • Contribute patches and fix some of the reported defects
  • Become a core developer and volunteer to take responsibility for one or more plugins.
  • Implement one or more of the requested features and submit them to be included in the main software repository.
  • If you have a tool or a component useful for game engines or game development, consider creating a plugin so that it will work with the rest of the Zen software.

If you're interested in contributing, please sign up on the forums and/or PM Tony Richards.