Skip to content

Game Jam Reworks; Component Structure overhaul - #100

Open
tm-nielsen wants to merge 75 commits into
mainfrom
game-jam-reworks
Open

Game Jam Reworks; Component Structure overhaul#100
tm-nielsen wants to merge 75 commits into
mainfrom
game-jam-reworks

Conversation

@tm-nielsen

Copy link
Copy Markdown
Member

Redirected version 2.0's focus on component modularity to plain C# classes which can be freely and interchangeably used by monobehaviour scripts. The return of the BCI Controller Behaviour style megalith component script in a much more concise and extensible form. I hope this approach will better serve drag-and-drop users, along with those who will want to customize behaviour in depth.

  • Migrated Unity component classes to serializable c# classes, easily included and inspector-configurable in any monobehaviour script
  • Consolidated stimulus presenter component, composed of helper classes
  • (Re)introduced "BCI Command Centre" scripts, composed of helper classes to track stimulus presenters, run training, or run stimulus trials
  • Improved stimulus presenter collections, introducing custom property drawer
  • Expanded and improved editor scripts
  • Migrated to Input System package
  • Updated package dependencies
  • Migrated stream resolution to threads
  • Migrated response provider polling to thread
  • Simplified frequency stimulus presenter
  • Added explicit mock prediction class used for debug selections, including class probabilities
  • Updated samples

I remain unsatisfied with any of the possible names I've come up with the "BCI Command Centre"/"BCI Hub"/"Composite BCI Behaviour". Suggestions welcome.

- specified tilemap as package dependency to ensure functional samples
- removed ssvep sample "manifest"
- removed monobehaviour inheritance
- adjusted communication provider to host serialized writer/reader directly
- migrated trial logic to extension methods
- extracted p300 trial marker helpers into extension methods
- reworked implementation of non-repeating parameter of single flash context aware utility method
- reintroduced stimulus presenter interface
- renamed and de-monobehavioured coroutine wrapper, stimulus presenter collection, and p300 trial conductors
- created new take on the single component megalith along with a base class, both composed of multiple helper classes that aren't unity components
- de-monobehavioured training behaviours
- reworked target indication
- adjusted target count to point to the latest presenter collection subset, counting only selectable presenters
- ensured trial conductor has correct reference to presenter collection
- renamed ssvep trial conductor and base class, adjusting them for new design
- sketched a command centre script for SSVEP
- replaced trial conductor reference used by BCI command centre to an abstract property
- implemented p300 trial conductor as a hub for various p300 flashing routines used from static methods, fit for serialization
- gutted p300 command centre, now using reworked trial conductor
- adjusted ssvep command centre
- merged stimulus presenter collection target indicator class with p300 command centre to resolve referencing issues
- added helper class with core status tracking and cancellation logic
- reworked colour flash behaviour into a serializable class
- implemented threaded duty cycle helper class
- removed time/frame cycle variants
- updated references
- adjusted base class and colour flash behaviour
- replaced component network setup with command centre + stimulus presenters
- reworked custom stimulus presenter as a separate serializable helper class
- fixed colour mask shader
const float FieldSpacing = 4f;

public static KeyCode KeyCodeField(Rect position, string label, KeyCode value)
public static Key KeyCodeField(Rect position, string label, Key value)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

If these are a key maybe change the function to KeyField?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants