Technical Details

This is our current feature set in full technical detail. As part of the services we offer, we will extend the feature set for the specific needs of your game – so if you need something more, just talk to us. Our features are always driven by the needs of our licensees.

Navigation - 2D and 3D

Characters

  • Fully dynamic navigation mesh
    • Based on industry-standard Recast library
    • Automatic run-time regeneration reacts to physics changes for a completely dynamic world
    • Support for large maps (tested at 8km x 8km) and fast generation
    • Local, just-in-time generation for instant turnaround and instant gameplay in procedural maps
  • Fast asynchronous pathfinding that responds to dynamic navmesh changes
  • Fast asynchronous generation of reachable points for use in character behaviour and spawning
  • Efficient, robust dynamic obstacle avoidance for animation-driven characters, based on ORCA
  • Ground-based boids system for fluid crowd and pack movement

Vehicles

  • Movement that understands flying vehicles with acceleration limits - like helicopters, planes, submarines and spaceships
  • 3D dynamic avoidance between flying vehicles and moving and static obstacles, based on RVOs
  • Sophisticated spline authoring tool for designer control over paths, optionally respecting physical constraints
  • Range of features for calculating flight paths and respecting physical constraints
  • Formation flight that seamlessly handles obstacles
  • Full 3D navigation including within complex structures

Behaviour

  • Advanced behaviour trees
    • Sophisticated implementation of the industry-standard approach to behaviour authoring
    • Simple state machines can be embedded into the tree
    • Link behaviour sub-trees at runtime, based on world state
    • Signal handling available within the behaviour tree
    • Exceptions provide flexible error handling
    • Easy to create custom nodes
    • Multithreaded execution for scalability
  • Alternative paradigms
    • Simple prioritised selection trees, driving state transitions based on blackboard values
    • Simple finite state machines, with state transitions driven by signals
  • Deep integration of a flexible blackboard architecture
  • Signalling system for behaviour and system events
  • Flexible group membership
  • Real-time on-screen debugging for all behaviour, in-editor and in-game
  • Step by step debugging of recorded behaviours available through our web inspector

Framework

  • Fully componentized architecture
    • For flexible agent capabilities, clean extensibility and performance
    • Kythera entities are made up of tens of components that can be individually enabled and disabled for each entity
    • Supports addition of game-specific components
    • Data-oriented design allows for fast batch updating of each component
    • Component updates can be parallelised to take full advantage of multi-core processors
  • Flexible blackboard implementation
    • Provides similar functionality and syntax to LUA or JS tables, giving the advantages of a scripting language in C++
    • Blackboards are integrated with core Kythera functionality and easily extended with game-specific data
  • Signalling architecture based on blackboards allows flexible and high-performance asynchronous signal delivery
  • Powerful tag system for fast spatial queries and contextual behaviours
  • Hooks for in-engine profiling tools and RAD telemetry
  • Built for performance: asynchronous, multithreaded, data-oriented, highly scalable

Debugging

  • Comprehensive on-screen debugging, browser based state inspection, and recording support
  • The Inspector is our browser-based debugging and configuration tool
    • Easy and flexible configuration of visual debug draw
    • Configure parameters on individual AI and see the results immediately
    • Directly inspect and change blackboards at run-time
    • Graphical debugging of behaviour trees with all the data available
    • Stream debug data from servers for full visual debugging from any client
  • Our Recording Server extends this with recording functionality
    • Record all AI state and play it back after the event
    • Replay AI debug draw in-engine, as many times as you want, changing displayed data freely
    • Export and share recordings to diagnose without a repro and to facilitate issue reporting
  • natvis visualisation files for blackboards and other core datastructures, for easy inspection in Visual Studio

Engine Integrations - Unreal Engine 4, CryEngine

  • Unreal 4 plugin, and CryEngine free and full SDK integrations available now
  • Core modules are engine-independent, with a thin engine integration layer, plus a game-specific module for easy customisation
  • Lumberyard integration is in progress
  • Unity - a partial integration has shipped successfully in Unity title, but we are not maintaining one currently
  • Inquiries from games with other third-party or proprietary engines are welcome

Platforms

  • Kythera is supported on Windows, Linux and OS X, building in both 32 and 64 bit configurations under MS Visual C++, gcc and clang
  • Console support available on request

 

To learn how three very different games have used Kythera, browse our case studies.
Or to talk to us about your own upcoming game, get in touch now.