Happy New Year! 🎉
- Demo in the GUI XML configuration, showing examples of all implemented GUI controls.
- A lot of control-parsing. Everything looks rather slick with the chosen game font.
- Preliminary work on a Dropdown control based on Babylon.js forum conversations since there is none currently.
- A level for the “PersonnelDb” game-state, for populating with character models during the character creation phase.
- Server-side execution of client-side FSM-state-specific functionality.
- Server-side configuration of UI control contents.
- An Entity-generation system, based on predefined Entity+Component templates, called Assemblages. Includes a form of inheritance to facilitate concise composition.
- Reintegrated the previously-developed starship subsystem discharge-thermalize-repair-recharge cycle into the current ECS engine as StarshipUpdateSystem.
- Characters stored in the database now populate to the front-end.
- Added a Status text block in the Personnel Database layout.
- Added mouse-driven tooltips in the Personnel Database (displayed in the Status text block), in order to guide the user through play/registration/retirement.
- Character creation! It’s now possible to provide basic character details in the UI, save them to database in the proper Entity format, and have them sent back to the UI in order to view details about the character.
- Continued to develop the XML-based UI builder. Learning nuances of the Babylon.js UI library is an exercise in frustration; while its auto-layout system is neat, I really just want to x,y-position controls and be done with them.
- In conjunction with the Websocket connection issue fixed below, also moved ServerWorker assignment to Websocket connections from “on connection” to “on readiness indicated”.
- Bumped Babylon.js to 4.1.0-beta.18.
- Changed some control styles to be more consistent.
- Changed the initialization steps in the game client to indicate to the server when the websocket connection is ready (previously, the server would just assume it was ready, which was causing a nagging intermittent issue, see below).
- Worked around a bug I found in the Babylon.js’ Inspector (overlay is required; otherwise a severe font bug materializes). Can’t currently reproduce in Playground, but the issue is evident in Singularity.
- Restored GUI state transitions between menu navigation events.
- Fixed bug with ClientWorker state transitions that was causing PersonnelDb._onEnter() state transition function to fire twice.
- Possibly fixed timing bug where Websocket client would be mis-assigned a ServerWorker/ClientWorker, preventing it from sending commands.
- Fixed a nagging intermittent issue where the Websocket client would occasionally fail to connect after an indeterminate period of time. Now it will wait 2s, then disconnect and attempt to reconnect. Connectivity seems 100% resilient now.