header-image

Stormware Studios

ultra solem

Blog

Week of January 12

Changed

  • Say hello to the Singularity Engine! This new technology focuses on a couple of key areas:
    • Designed with a focus on performance.
    • Packed binary websocket messaging.
    • Threaded isolation of areas-of-interest.

Deprecated

  • Moving away from current application server in favour of Singularity Engine.

Security

  • Re-added node-os-tools (security vulnerability issue addressed) to status endpoint.

Week of December 29

Happy New Year! 🎉

Added

  • 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.

Changed

  • 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).

Fixed

  • 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.

Screenshots

Personnel Database – Character Creation

Week of December 22

Merry Christmas! 🎄

Added

  • Server-side state transitions for connected clients.
  • Switching Websocket client management between ServerWorkers and ClientWorkers.

Changed

  • Updated to Babylon.js 4.1.0-beta-12 for XmlLoader.
  • Switched to using Babylon.js native XML loader (from custom JSON loader) for GUI layouts.

Deprecated

  • Old JSON GUI loader.
  • Most of the useful information in GET /status is gone, due to node-os-tools security vulnerability, though the endpoint is still active.

Fixed

  • Loading the correct GUI components during state transitions.

Security

Week of December 15

Added

  • Implemented full CI/CD pipeline.
  • Configured API gateway service and routes for galactikore.com domain.
  • Manually deployed migrations and seeders on production site.
  • Custom loading screens for seamless level loading.

Changed

  • Replaced previous DNS-update bash script with custom DigitalOcean updater.
  • Renamed a significant portion of media assets according to the Asset Style Guide.