Quantcast
Viewing latest article 3
Browse Latest Browse All 4

About Minko’s plugin system

Building a flexible and extensible 3D framework has always been our priority. This goal has a huge influence on the way we work and what we provide as a final result. This is also a main difference with other 3D engine/frameworks that tends to provide everything in a single monolithic library. One of the side effects of such politics is Minko’s plugin system. Here is how it works:
  • Every core APIs are in the actual Minko project
  • Any additional feature will be implemented as a “plugin”

About the core APIs

Those APIs are the foundations of the framework. It will be released as an open-source project. They are very loose coupled so that even Minko’s core can be splitted into distinct entities. There are two main APIs:
  • The Scene Graph API: it provides interfaces and base classes to build a scene using a data structure called a “graph”. In the end, building a Minko 3D scene is just as simple as building a 2D scene with the good old Flash display list API.
  • The Rendering API: it provides everything you need to perform rendering operations using the Molehill API and shaders.
We define a simple mechanism to pass data from the Scene Graph API to the Rendering API. We also provide basic scene and rendering algorithm to make it possible to start building a simple 3D application from scratch.

About the additional features

Image may be NSFW.
Clik here to view.
So what are additional features? They are features that will rely on the core APIs but that are not essentials or required in every project. Those features are (the following list is not exhaustive):
  • Dynamic lights
  • Dynamic shadows
  • Animations
  • Skinning
  • Dynamic reflections
  • File formats parsers (3DS, Collada …)
  • Physics
  • Particles
  • Mouse interactivity
Every new feature will be implemented as a “plugin” in a separate project. If you don’t want it, don’t use it! If you want to provide a different/better way to do it, feel free to do so! Does Minko lack a feature you need? You can create your own plugin and share it as you like. Those plugins also make it possible to create bindings between Minko and thrid party projects such as jiglibflash or Stardust. Why ? The main goal is to ensure the core project exposes the right APIs. This way, it will be extensible enough and anyone should be able to work and build against it to provide more and more plugins… We also want people to be able to pick what they need and build a community around the project they like the most. And clearly, some plugins will be a lot more technical than others. Finally, every plugin can be distributed under a different license…

Viewing latest article 3
Browse Latest Browse All 4

Trending Articles