|
|
Quick overview of Yake's features:
* cross-platform: PC/Windows, PC/Linux
* many ready-to-use components
* entity system, with pluggable scripting modules for scripting entities' state machines, dynamic events and more
* abstraction components with pluggable backends for physics, graphics, input, audio and scripting
* at least one plugin for each component, sometimes more
* loaders for graphical and physical scenes, with complex models and vehicles * construct complex vehicles using dotVehicle
* scene exporters for 3dsmax (Octopus)
* flexible design, application-independent, genre-independent
* rendering plugin: OGRE
* physics plugins: ODE and Novodex/Ageia Physx
* scripting plugin: Lua
* audio plugin: OpenAL
Overview of features organized by component:
yake::base
* cross-platform
* meta programming tools
* container wrappers & helpers
* OS independent dynamic library with common functionality
* generic/templated id-based pluggable registries/factories * timing * build configuration
* various common functionality
yake::math
* cross-platform
* curves: line, polyline, spline
* random number generator
* vectors, quaternions, matrices ...
yake::physics
* cross-platform
* API independent
* shapes: trimeshes, planes, boxes, spheres, capsules (+ API dependent)
* joints: fixed, hinge, ball, slider ...
* breakable joints
* motors, thrusters and more
* materials (per-shape)
* feedback via signals and/or event handlers for collisions, joint-breaking and stepping
* loading of XODE XML files
* XODE exporter for 3dsmax (included in Octopus for 3dsmax)
* plugins: Novodex, ODE * data-driven component for complex vehicles: see yake::vehicle for more details.
yake::graphics
* cross-platform
* API independent
* node based scene graphs
* provides objects like entities, lights, cameras etc
* serialization via dotScene and related file formats
* dotScene exporter for 3dsmax (included in Octopus for 3dsmax)
* plugins: OGRE
yake::scripting
* cross-platform
* API independent
* virtual machine (VM) and script interfaces
* abstract binder mechanism
* plugins: Lua
yake::scriptingBindings
* cross-platform
* provides common scripting binders for Yake
* plugins: Lua
yake::input
* cross-platform
* API independent
* provides management of devices (keyboard,mouse,joystick)
* freely configurable action maps
* plugins: OGRE
yake::audio
* cross-platform
* API independent
* provides audio worlds with sources and listeners etc
* plugins: OpenAL based
yake::reflection
* experimental C++ reflection, more information to come
yake::file
* information to come
yake::msg
* cross-platform
* messaging, listeners, handlers, managers, queues
yake::fsm
* cross-platform
* experimental templated finite state machine
* templated states and transitions
yake::model
* cross-platform
* high-level model system
* manages graphical, physical, audible and other kinds of submodels
* pluggable inter-model relationships and interactions
* data-driven design
* serialization via dotLink, dotModel and other file formats (e.g. dotScene, XODE, OSM)
* Extensive exporting capabilities for 3dsmax (included in Octopus for 3dsmax)
yake::modelLua
* cross-platform * Lua bindings for yake::model
yake::vehicle
* cross-platform * data-driven (easy to add exporting capabilities to modellers using the dotVehicle format) * flexible vehicle template system for all sub components * pluggable backends for certain components (like "ray wheels" and "spherical wheels" etc) * supports vehicles made of any combination of ground, air and space vehicle components * available vehicle components include: mount points, engines (thrusters, car engine), mountable thrusters, wheels, axles, steering groups and more. * basic feedback hooks (for example for controlling gfx particle systems for skidding wheels) * design allows to plugin different controllers (AI, human, networked...) * dotVehicle export for 3dsmax in preparation
yake::raf
* cross-platform
* flexible application framework
* easy configuration
* predefined application states for common use cases
* extensible design for easy integration
yake::ent
* cross-platform
* high-level entity based simulations
* feedback & scripting hooks
* static & dynamic entity events * dynamic entity properties
* dynamic entity state management
* any number of scripting / virtual machines per entity
* flexible defintion of behaviour using native C++ and/or any number of scripts per entity * pluggable scripting providers
* client/server states, events and properties (work-in-progress!)
yake::entLua
* cross-platform
* provides Lua bindings for yake::ent to enable scripting of the entity component.
yake::entCommon
* cross-platform
* implementation of entities commonly used in applications (lights, pawns, etc)
yake::object
* cross-platform * generic (template based) library for managing objects and meta class ids * extensible and configurable * is used in Yake's entity and network components, for example.
yake::net
* development in progress
yake::loader
* cross-platform * commonly used parsers (dotScene, XODE etc)
yake::gui (aka yapp::gui) (WIP)
* cross-platform
* flexible gui wrapper
* makes heavy use of meta programming techniques and reflection
* very dynamic, with serialization using Lua
* editor
* plugins: CEGUI
and more...
|
|
Last Updated ( Friday, 23 June 2006 )
|
|