zoss/Plugins

Zen :: Plugins

The top level projects such as Zen Core, Zen Engine, Zen Studio, and Zen Enterprise are all frameworks that utilize the Zen Core plugin system.

The frameworks define extension points, which are points that can be extended. Plugins implement these as extensions.

This page is dedicated to what we call the "Z" plugins, which are plugins supported and maintained by IndieZen.org developers. There may be third party plugins, and you're also welcome to write your own. Feel free to redistribute your own plugins commercially or as open source. If you'd like your plugin to become a "Z" plugin and part of IndieZen.org, please contact SgtFlame.

Zen Core Plugins

The only extension point currently supported by Zen Core is the Scripting extension point. Current plugins include:

Plugin DescriptionStatusMaintainer
ZLuaA Lua scripting plugin.StableTony
ZTamarinA Tamarin (aka ActionScript) scripting plugin.Under developmentTony
ZPythonA Python scripting plugin.Stable, missing a few features.Tony

Zen Engine Plugins

Zen Engine supports many extension points, including Physics, Rendering, Resource Management, Audio, CLI (command line interface), and others. The "Z" plugins for Zen Engine are:

Zen Engine CLI

Plugin DescriptionStatusMaintainer
ZBasicCommandLineParserA basic CLI (Command Line Interface) parser plugin.StableMatt
ZBasicConsoleA basic Console plugin.StableMatt

Zen Engine Rendering

Plugin DescriptionStatusMaintainer
ZOgreAn OGRE rendering plugin.StableMatt, Tony
ZSkyA basic Skybox plugin.StableMatt
ZTerrainA basic terrain plugin.StableMatt
ZCamA basic custom camera plugin.deprecatednone
ZCloudA cloud rendering plugin.Under developmentMatt

Zen Engine Widgets

Plugin DescriptionStatusMaintainer
ZCrazyEddieAn CEGUI widget plugin.StableMatt

Zen Engine Audio

Plugin DescriptionStatusMaintainer
ZFMODAn FMOD Sound plugin.Under developmentAz
ZOpenALAn OpenAL sound plugin.Under developmentAz

Zen Engine Input Devices

Plugin DescriptionStatusMaintainer
ZInputA basic input plugin (keyboard/mouse).StableTony
ZNavigator?A plugins for 3dConnexion devicesNot maintained (as of 0.1.0)Tony

Zen Engine Physics

Plugin DescriptionStatusMaintainer
ZNewtonA Newton physics plugin.StableAzaezel
ZPhysXA PhysX physics plugin.IncompleteNeeds a maintainer
ZODEAn Open Dynamics Engine physics plugin.IncompleteTony
ZBulletA Bullet physics plugin.IncompleteMatt

Zen Engine Misc

Plugin DescriptionStatusMaintainer
ZColladaA Collada import/export plugin.deprecated?was Matt
ZRakNetA RakNet networking plugin.Abandoned?Needs a maintainer
ZMicroPather?An A* pathfinding plugins using MicroPather? libraryStableTony

Zen Enterprise Plugins

Zen Enterprise supports extension points for protocol adapters and for application services.

Zen Enterprise Databases

Plugin DescriptionStatusMaintainer
ZMySQLA MySQL database plugin.StableMatt
ZPostgresA Postgres database plugin.IncompleteNeeds a maintainer
ZSQLiteAn SQLite database plugin.StableTony

Zen Enterprise Adapters

ZBoostNetworkingProtocol Adapter plugin using Boost ASIOStableTony

Other Zen Enterprise application services

Plugin DescriptionStatusMaintainer
ZWebServices?Sample Web Services pluginStableTony

There are a large number of other application services related to Zen Worlds and Zen Studio. I'll list them in those areas instead of creating duplicate listings.

Zen Studio Plugins

Zen Studio plugins are separated into multiple libraries. Some of the libraries are generated code, while others are manually written.

The reason these are separated is to split the functionality into client and server libraries to have common libraries which are common between both client and server.

For example, for the GameBuilder? plugin, there's:

  • GameBuilder? - All of the GUI code that uses wxWidgets.
  • GameBuilderClient? - The application service plugin that implements the client logic.
  • GameBuilderServer? - The application service plugin that implements the server logic.
  • GameBuilderProtocol? - The protocol library that implements the messages that are sent between the client and server. This library is generated using the Zen Spaces protocol code generator.
  • GameBuilderModel? - The database model library that implements the object to database mapping. This is used for reading and writing the database and converting between the database model and C++ objects.
  • GameBuilderCommon? - This is the common library, which generally has no implementation. It's used to define the interfaces that are implemented in the other libraries.
Plugin DescriptionStatusMaintainer
GameBuilder?Game Entity EditorStableTony
WorldBuilder?World / Zone Editor, which is like a scene graph editor except it uses GameBuilder? defined objects and does not directly use .mesh files.Deprecated? Possibly going to use Ogitor instead.Tony
ArtLibrary?Mesh and Audio distributed file repository.Under developmentMatt + Tony

Zen Community Plugins

Zen Community implements some application services related to making a community for games. These plugins are arranged much the same way as Zen Studio plugins, with Client, Common, Protocol and Model libraries.

Plugin DescriptionStatusMaintainer
Chat?Chat serviceUnder developmentTony
Lobby?Game Lobby serviceUnder developmentTony
Session?Game Session service, which essentially controls user accounts, authentication, etcUnder developmentMatt + Tony

Zen Worlds Plugins

Zen Worlds implements some application services related to making an online virtual world or MMO game, but it can also be used for other online games. It does not define any genre specific details so although it supports MMO games, it does not specifically support MMORPG games.

Zen Worlds libraries are also arranged in Client, Server, Protocol, Model libraries.

Plugin DescriptionStatusMaintainer
World?Main Zen Worlds service. This is the top level "server" or "shard" service.Under developmentTony
Zone?This is the zone service which implements the individual zones, maps, mission, level, etc services.Under developmentTony
ZWGameClient?Zen Worlds Game Client. This is the main game client that exposes the bulk of the rest of the services to script in order to facilitate creating games without C++.Under developmentTony