Skip to content

Re-implement debugger in C++ #289

Open
@bitbrain

Description

@bitbrain

read #285 for the announcement for Beehave 3.0

The current debugger in C++ is not super reliable. Re-implement its functionality in C++ and make use of C++ specific language features, as well as accessing more low-level Godot APIs for a cleaner integration.

Problems with the old design

The old design combined all concepts together as the following:

  • debugger - responsible for hooking into Godot's Debug API
  • graph_edit/graph_node/tree_node UI components with dependencies into debugger
  • frames/debugger_messages - responsible for messaging

While the design worked on the surface, it was difficult to test and to extend. The new design aims to solve this with a more modular architecture

New Design

  • BeehaveServer is a new component that allows to query status about Beehave trees and their nodes
  • BeehaveDebugControl is a new native control that can be connected to a particular behaviour tree and it is able to display the behaviour tree information in realtime. It is built in a way to allow for various visualisations of the data:
    • BeehaveDebugTree visualises the behaviour tree with its statuses
    • BeehaveDebugStats visualises statistics of the behaviour tree
    • BeehaveDebugTreeHistory displays a list of states of the behaviour tree, e.g. what status the tree was in within the past 100 frames. See Debug tree history #311 for details.
  • BeehaveEditorDebugger is the component that integrates the BeehaveDebugControl into the Godot editor itself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐝 v3Relates to work for Beehave V3🔨 debuggerIssues related to the debugger.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions