itch.io is community of indie game creators and players

Devlogs

UI and Options

BLaTTiX
A downloadable trippy experience for Windows and macOS

Finally implemented a basic UI with persistent game options. This took longer than expected as I went down a rabbit-hole of starting to wire up Nuklear before realising that I could simply create a new Selectable component to complement the existing Text component.

typedef struct Selectable
{
  bool focused;
  bool toggle;
  bool value;
  Rectangle region;
  void (*callback)(GameOptions *options, bool value);
} Selectable;

The system that renders the Text component updates the region of the Selectable component (if it exists), and this is used to detect whether the cursor is hovering over the text. A new UI system simply iterates over Selectable components to decide which is active, and the relevant callback is triggered when a selection is made.

I also created a simple Options component, which is a singleton (similar to Input), and which is passed to relevant systems (for example, updating the player requires Options to determine whether the y-axis should be inverted or not). This component is serialised to allow it to persist between game sessions.

Altogether not much fun, but it is functional, and didn’t take too much time (thanks to Flecs). Now on to polishing the controls and fixing a few niggly bugs before moving on to greater things!

Files

  • blattix-mac-alpha.zip 28 MB
    Version 0.3.1-alpha+cf6a644
  • blattix-linux-alpha.zip 28 MB
    Version 0.3.1-alpha+1305a5d
  • blattix-win-alpha.zip 27 MB
    Version 0.3.1-alpha+cf6a644
Download BLaTTiX
Leave a comment