HFSM2
  • HFSM2
  • Quick Tutorial
  • General Information
    • History
    • Goals
    • Development Principles
    • Future Plans
  • User Guide
    • Getting Started
    • Configuration
      • Feature Macros
      • Type Configuration
      • Context
    • Basic Features
      • Hierarchy
        • Root
        • Region
        • State
      • State Methods
        • Control
      • Transitions
        • Events
      • Update Cycle
    • Advanced Features
      • Transitions into Regions
      • Guards
        • Entry Guards
        • Exit Guards
      • State Injections
      • State Data Access
      • Dynamic States
      • Plans
    • Debugging and Tools
      • Activity Report
      • Structure Report
      • Transition History
      • Serialization *
      • Logging Support
  • Practical Topics
    • How-To
      • Designing Hierarchy
      • Reducing State Coupling
      • Reusing State Code
    • Common Patterns
      • Delayed Teardown
  • Users
Powered by GitBook
On this page
  • High Performance
  • Small Footprint
  • Powerful Feature Set
  • No Artificial Limitations

Was this helpful?

  1. General Information

Development Principles

PreviousGoalsNextFuture Plans

Last updated 5 years ago

Was this helpful?

High Performance

uses template meta-programming to generate optimal code for a given FSM topology.

It does not use performance-prohibitive dynamic allocation, virtual methods, complex algorithms.

The structural information is statically encoded into the FSM instance type, which removes the need for complex lookups, and internal bookkeeping logic can always access the required information directly.

Small Footprint

With memory access being the performance bottleneck on modern architectures, small data structures fit better in memory caches, not only resulting in better performance for the FSM instance itself, and also leaving more resources available to be used by the other parts of the host application.

Additionally, low memory requirements make a good fit for the memory-constrained environments including embedded systems and robotics.

Powerful Feature Set

evolution is driven by the development experience rather than dry mathematical theory.

The tools provided by the library are not restricted to conform to an external standard, and the ideas for the new features come from from both the solutions to the typical problems encountered in development, and competing decision making methodologies, including behavior trees, utility theory and AI planners.

No Artificial Limitations

will not hold you back following questionable conventions. It's goal is to empower the developer instead.

It does not support any artificial standards (including UML), but rather provides tools that make sense in a given setting.

There are no superfluous transition tables, beyond the one defined implicitly in your client code.

HFSM2
HFSM2
HFSM2
HFSM2