Engineering Office Report #5 – v3.2 Release

September 28, 2024

In BFMS v3.0, we created new frontend panels for all member-facing systems and optimized BFMS’s performance and scalability. We followed this in BFMS v3.1 with the introduction of prestige and the fleet assets system. Now, sticking to our 2024 roadmap, we have turned our attention to several of our core systems, and today, I’m pleased to announce the release of BFMS v3.2, which takes a big leap forward for collaborative writing through cross-command missions, while also improving squadron writing through squadron missions and making further investments in the foundation with more backend optimizations of BFMS itself.

Cross-Command Missions

Bravo Fleet is always looking for ways to support the creativity of its members, and now BFMS supports cross-command writing where two or more members can collaborate together on a mission between their commands.

For those of you who have participated in a fleet sandbox, as a member of a roleplaying game, or as a guest writer on someone else’s command, the story writing workflow will be familiar. The difference is all upfront in mission setup. Essentially, when a member creates a mission on their command, they can now add an invite for another member’s command. Once the other member accepts the invite in their mission panel, they can then create stories within that mission, adding characters from all participating commands. You can also use BFMS’s story drafting tools to collaborate among participating members. If you save a draft, anyone who has a character assigned to that story from any command linked to that mission will be able to add to it. Go write together, and further, when any story is published for that cross-command mission, it’ll tie back to all the commands that are part of it.

To support this, we had to rebuild the writing panel using the frontend architecture we pioneered in v3.0. Further, to make cross-command missions feel natural, we had to make changes to dozens of places across BFMS to appropriately represent all participating commands.

Squadron Missions

Members who have taken the leap into the personal unit system (squadrons and divisions) have likely found themselves in a pickle as they try to get all the ships in on the action together: if your characters are spread across all your commands, how do you get them all in one place for a story that involves more than one command, and how do you get those missions represented on all the commands that were involved?

With this release, gone are the days of just shoving all your characters onto one command for writing’s sake, or creating multiple child missions on each command for the same actual mission to try to show they’re linked together. Now, similar to how you invite other members’ commands to a mission, you can also add your own additional commands directly to a mission. Once you do this, you can tag all your characters across all the commands linked to the mission, and the mission will show up on each command’s page to highlight their involvement.

Backend Optimizations

Under the hood, BFMS relies on WordPress as its foundation. While the content management system is awesome for story writing and bio crafting, the constructs it uses for posts are overly heavy for the mass of ribbons that our members earn through their activity. During this release cycle, Mamof, our Deputy Engineering Officer, took on a massive project to completely rebuild the data model for ribbons, breaking it out of the WordPress data model to make it more efficient while still ensuring it functions smoothly within BFMS.

While this won’t be super obvious to most of you today, it’s a big win for the long term sustainability of our system. In totality, these changes reduced the storage load across our entire system by 18%. Further, since the underlying architecture changes prompted the need to update all the frontend interfaces, this presented the perfect opportunity to make some improvements to the workflow that the OCS staff go through to ensure you get your ribbons issued in a timely manner.

What’s Next

While roadmaps are always subject to change, and we’re not ready to talk about timing yet, I did want to share a few other core systems that we’re looking at major enhancements to in the near future:

Competitions, including native support for several common competition types, streamlining the competition management workflow, and allowing for a showcase of competition submissions after the competition concludes.
Gaming, including improvements to gaming activity tracking to better cover our breadth of supported games, streamlining the Security Office’s administration workflow, and better highlighting the games you play.
Fleet Assets, including support for Task Force assets more natively within BFMS to make interaction with them more natural, as well as new features for personal units and some other exciting things to spend prestige on.

Additionally, as we look towards the new year, we’re also starting work on another new system, one that will allow your storytelling beyond the borders of the Federation, but more on that for another day…

Acknowledgements

The work that goes into these releases goes far beyond any one individual, and so I wanted to take a moment to offer some appreciation to the fine folks that helped make this possible:

  • Commander Mamof, our Deputy Engineering Officer, who led the ribbon re-architecture project from beginning to end, as well as contributed a number of other features and was deeply engaged throughout the entire development cycle.
  • Admiral Alexander Beckett, our Bravo Fleet Intelligence Officer, who has brainstormed with me on collaborative writing concepts for the better part of the last year, leading to the cross-command mission functionality built into this release.
  • Fleet Admiral Teylas Ramar, Admiral Liam Dahlgren, and the rest of the Bravo Fleet Senior Staff, who have contributed thoughts and feedback throughout the process, as well as aligning around changes to policy and operations based on the features brought forward within this release.
  • Commodore Alexandra Sudari-Kravchik, Fleet Captain Brodie Lewis, and Captain Ryoko Takato, who did the hard work of testing all the features baked into this release to give assurance that when we launched it, it would come out as bug free as possible.

And now, without further ado, the patch notes in their entirety…

BFMS v3.2 Patch Notes

Missions

  1. While editing a mission, one may send invites to other member’s commands.
  2. While editing a mission, one may attach their own additional commands directly to the mission.
  3. Within the mission panel, if a command is invited to a mission hosted on another member’s commands, the ability to accept the invite has been added.
  4. While editing a mission, one may detach commands that accepted an invite.
  5. While editing a mission, one may cancel invites to other member’s commands
  6. The mission show page has been updated to show additional commands attached to a mission.

Stories

  1. The writing panel has been replaced by a new stories panel using the BFMS v3 frontend architecture.
  2. When creating a story, the characters list now includes both the characters on the manifest of the command hosting the mission, as well as the characters on the manifests of any additional commands that have been attached to the mission.
  3. When creating and working with story drafts, the draft system has now been updated to allow all members with a character attached to the story, including from an additional attached command, to now be able to collaborate on the story post.
  4. The member that owns the command hosting a mission will see all draft stories on that mission, regardless of whether they have a character participating in that particular story.
  5. Story lists throughout the system, such as on the dashboard, have been updated to show all commands that are participating in a mission.
  6. A new word counting algorithm was introduced to the story writing frontend to give a better approximation of the number of words in the post for which a member will receive credit in ribbons.
  7. Ribbon calculation functions have been updated to support cross-command missions. All authors included on a post will be considered in the determination of duty ribbons, while a post with characters only for one author will continue to generate service ribbons.
  8. Email notifications have been updated to support cross-command missions. The email settings of the command hosting the mission will determine whether or not all members are notified, and now the members that are notified are all members on any command that is part of the mission.
  9. A bug was resolved that could cause, through user input or browser behavior, stories to occasionally post two or more (up to eight being the record) times upon submission.
  10. A bug was resolved with stories where characters were later removed from the manifest so now, even if a character is later removed from the command’s manifest, they will still show on the story.
  11. A bug was resolved with story editing where, when editing a story attached to a mission that was since closed, it would move upon saving to an open mission.
  12. A bug was resolved with story editing where, when editing a story that included a character no longer attached to the command, it would remove the character from the story upon saving.

Commands

  1. The command stories list has been updated to show stories where the command was an additional command attached to the mission.
  2. The command missions list has been updated to show missions where the command was an additional command attached to the mission.

Members

  1. The member stories list has been updated to show stories involving their characters when their command was an additional command attached to the mission.
  2. A bug has been fixed with the member stories list not showing stories that were posted on other commands where their character was a participant in the story, such as when guest writing on another member’s command.
  3. A bug has been fixed with the member stories list to show stories that were posted when a character was on their manifest, even if that character has since been removed from the manifest.
  4. Members with dedication ribbons exceeding their BFMS registration date due to verifiable activity from the before BFMS have had their registration date adjusted to the year linked to their dedication ribbon total.

Awards

  1. The data model for Service Ribbons, Duty Ribbons, Combat Action Ribbons and Joint Action Ribbons has been rearchitected to reduce the load it places on the system.
  2. Pages where ribbons are shown, such as the member dossier, have been updated to use the new data model.
  3. The OCS staff tools for Service Ribbons, Duty Ribbons, Combat Action Ribbons and Joint Action Ribbons have been updated to streamline the process for administration.
  4. The Security Office tools for reviewing Gaming Activity and submitting Combat Action Ribbons and Joint Action Ribbons have been updated to streamline the process for administration.
  5. Staff badges have been removed as they are redundant with the staff history tab on member profiles.

Miscellaneous

  1. The order of competitions on the competition page has been updated to be more intuitive.
  2. The prestige ledger has been updated to separate prestige earned from activity ribbons and competitions versus prestige earned from promotions, merit awards, and stipends.
  3. Updates were made to support the addition of Task Force 21.
  4. Updates were made to support the role of a BFLO that was not also the BFXO.
  5. A backend administration tool was updated to reduce the load it places on the system.
  6. A bug was resolved that was causing issues with RPG Proposals being submitted.
  7. A bug was resolved with transfer requests showing invalid options.
  8. A bug was resolved with inconsistent headers between different sections of content in character bios.
  9. A bug was resolved with a situation that could cause erroneous leave dates to show for staff records on member dossiers.
  10. Podcast links were added in relevant places, and FAQ links were updated to use the FAQ article on the wiki.
  11. Regular housekeeping activities were performed to improve the storage footprint of BFMS uploads by 20%.