Features

Quick Overview

  • cross-platform: PC/Windows, PC/Linux
  • many ready-to-use libraries
  • entity system, accessible from C++ and scripting languages like Lua, with state machines, dynamic events and more
  • abstract components with pluggable backends for physics, graphics, input, audio and scripting
  • loaders for graphics and physical scenes, with complex models and vehicles
  • create complex vehicles using the dotVehicle format
  • flexible design, application-independent, genre-independent
  • rendering plugin: OGRE
  • physics plugin: ODE, Novodex/Ageia Physx (deprecated)
  • scripting plugin: Lua
  • audio plugin: OpenAL, FMOD
  • input plugin: OIS, OGRE

By Library

yake::base

  • container helpers & wrappers
  • OS specific wrappers for timers, dynamic library loading and other common functionality
  • generic id-based pluggable registries/factories
  • build configuration
  • configuration files
  • other common functionality

yake::log

  • logging library with pluggable backends (console, file, …)

yake::math

  • basic functionality for curves: line, polyline, spline
  • random number generator
  • vectors, quaternions, matrices

yake::physics

  • 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: ODE, Novodex/Ageia Physx (deprecated)
  • data-driven component for complex vehicles: see yake::vehicle for more details.

yake::graphics

  • API independent
  • node based scene graphs
  • 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

  • API independent
  • virtual machine (VM) and script interfaces
  • abstract binder hook mechanism
  • plugins: Lua

yake::bindingsLua

  • provides Lua bindings for Yake libraries

yake::input

  • API independent
  • provides management of devices (keyboard, mouse, joystick)
  • flexible configurable action maps
  • plugins: OGRE, OIS

yake::audio

  • API independent
  • provides audio worlds with sources and listeners etc
  • plugins: OpenAL, FMOD

yake::msg

  • id based messaging framework
  • listeners, handlers, managers, queues, …

yake::fsm

  • experimental templated finite state machine
  • templated states and transitions

yake::model

  • 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::vehicle

  • 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…)

yake::raf

  • application framework
  • easy configuration
  • predefined application states for common use cases
  • extensible design for integration into other applications

yake::ent

  • 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 (partly work-in-progress!)

yake::object

  • 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::loader

  • commonly used parsers (dotScene, XODE etc)

yake::gui2

  • basic gui implementation using yake::graphics and OGRE

yake::qt

  • Qt support library
  • multi-edit capable widgets (line edit, check boxes, etc.)
  • property browser
  • a Yake-themed Qt style

yake::qtogre

  • library for enabling Qt and OGRE to render within the same window
  • switch dynamically from fullscreen to windowed mode

Experimental

yake::net

  • development in progress

yake::dbi

Deprecated

yake::gui

yake::reflection

  • Bookmark "Features" at del.icio.us
  • Bookmark "Features" at Digg
  • Bookmark "Features" at Reddit
  • Bookmark "Features" at Google
  • Bookmark "Features" at StumbleUpon
  • Bookmark "Features" at Technorati
  • Bookmark "Features" at Facebook
  • Bookmark "Features" at Twitter
  • Bookmark "Features" at Slashdot
features.txt · Last modified: 2010/03/30 16:43 by psyclonist
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Valid XHTML 1.0