Skip to content

Conversation

@Kexanone
Copy link
Member

@Kexanone Kexanone commented Jul 5, 2025

When merged this pull request will:

  • Add basic implementation of a finite state machine with ACE_FSM_Machine
  • Add ACE_FrameJobSystem along with ACE_IFrameJob as interface for frame jobs that can be registered at it
  • Add ACE_TemplateFrameJobScheduler that manages jobs based on a template for a set of objects

@Kexanone Kexanone added this to the 1.4.0 milestone Jul 5, 2025
@Kexanone Kexanone added the kind/feature Release Notes: **ADDED:** label Jul 5, 2025
@Kexanone Kexanone changed the title Core - Implement finite state machine Core - Add finite state machine Jul 5, 2025
@Kexanone Kexanone added the branch/dev Available on dev branch for preview label Oct 20, 2025
@Kexanone Kexanone modified the milestones: 1.4.0, Backlog Oct 20, 2025
//! Interface of FSM state
//! This object should be stateless if you want to share instances between machines (e.g. shallow copies)
//! Data should be implemented in TContext instead
class ACE_FSM_IState<Managed TContext> : Managed
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BI convention for base classes (as Enforce does not have interfaces) is adding Base suffix so it would be ACE_FSM_StateBase IDK if we care/would want to follow it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, BI isn't consistent either, considering IEntity is a thing 😅

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anyway, I think IEntity is the only exception I'm aware of, so I guess Base it is, but is it ACE_FSM_StateBase or ACE_FSM_BaseState? You'll find examples of both conventions in the base game code base...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACE_FSM_StateBase would follow the most "recent" conventions.

Reforger code base is bit messy and not everything follows conventions as they possibly were not there when certain parts of the game was created.

IEntity comes from Enfusion which does not necessarily follow "Game Project" conventions :D

@Kexanone Kexanone modified the milestones: 1.4.0, Backlog Oct 29, 2025
Copy link
Member Author

@Kexanone Kexanone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

branch/dev Available on dev branch for preview kind/feature Release Notes: **ADDED:**

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants