Shortcuts

Syndicate

SVN and file hosting by

SourceForge.net Logo
Features

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 )