v0

% 0.1.4 Release

MUGS 0.1.4 Released!

The Raku-MUGS org is proud to present our fourth development release on the way to our next major milestone. This release includes many accumulated changes since 0.1.3, but the majority of the milestone work is yet to be done. :-)

Packaging

MUGS is available in both source and package form, via these methods:

zef

To simply play with what's already there, use zef to install all of MUGS from the zef/fez ecosystem. To prevent failure due to an unneeded transitive dependency that does not exist on all systems, use the following command:

zef install --exclude="pq:ver<5>:from<native>" MUGS

NOTE: If you're having trouble with installing via zef, please take a look at our installation guide, which has additional troubleshooting hints.

Source Repos

The source for all released MUGS repos can be found in the Raku-MUGS org on GitHub. Note that if you are working on a UI repo, you will probably want to install MUGS with zef as described above to satisfy dependencies, or at least install both MUGS-Core and MUGS-Games.

Docker

MUGS does not yet have prebuilt Docker packages, but each source repo includes two Dockerfile scripts. The main Dockerfile simply installs the relevant MUGS libraries, scripts, and resources on top of a rakudo-star official image and creates a default MUGS identity universe. Dockerfile.test builds on that by also installing test identities into the default universe.

Primary Improvements

Major TUI work

Just as with the previous MUGS release, much of the development effort benefiting MUGS this time was actually focused on Terminal::Widgets and its new Terminal::Capabilities dependency.

Terminal::Capabilities provides a standard container for describing modern terminal capabilities at a feature level (such as symbol set support, color depth support, and so on). Both MUGS::UI::CLI and MUGS::UI::TUI were updated to rely on Terminal::Capabilities rather than using custom code.

Terminal::Widgets gained over a dozen releases (0.0.6 through 0.1.4), fixing bugs, refactoring, and adding large swathes of functionality. Many of these improvements were directly in support of work on MUGS::UI::TUI, which made significant progress towards being a full frontend (rather than just acting as a container for a particular game, as was the case in previous releases).

There is still quite a bit of work to be done on MUGS::UI::TUI, but already it has a full menu system that scales with terminal capabilities, configurable UI elements, standardized screen layouts, translated UI text, color theme support, and more.

Other Improvements

Bug Fixes

  • Move WebSimple page templates to resources tree so that they will render correctly when installed by zef (PR by codesections)

  • Work around deprecations and API changes in dependencies, including Rakudo itself

  • Allow intentionally empty text input in CLI (either to trigger default behavior or to poll asynchronous inputs)

  • Improve duospace handling for CLI tables

Configuration

  • Improve API for config defaults and ui-type-specific configuration

  • Add new config defaults for CLI and TUI tunables

  • Support --safe option to set most compatible UI configuration

Debugging

  • Convert MUGS_DEBUG into a UInt to allow tuning of debug verbosity

  • Send debug output to $*ERR only and require higher MUGS_DEBUG levels for many high-volume debug outputs

Performance

  • Smooth out loading process (and provide progress updates in the TUI), despite increasing required components/dependencies

  • Optionally record TUI startup and loading screen performance info

Refactoring

  • Several cross-repo refactorings to put things where they belong and simplify mental model

  • Several internal refactorings to improve APIs and to correctly handle behavior that had been stubbed or hacked together before

Security

  • Minor improvements to user and username handling in Server

Contributions

This development release is largely the work of Geoffrey Broadwell (japhb on Libera.Chat and GitHub), and includes improvements to terminal capabilities based on generous contributions of (sometimes very) confused terminal emulator screenshots from the community to Terminal::Tests. The fix allowing WebSimple's templates to work correctly when installed with zef was provided in a generous PR from codesections.

If you'd like to contribute to future releases, please take a look at our CONTRIBUTING doc; we'd love to have you!

Contacting Us

We are on the #mugs channel on Libera.Chat IRC; please come and ask questions or offer suggestions! Please note that we do not yet have 24-hour round-the-clock coverage, so please stick around and allow some time for response if you don't get one immediately.

If you are interested in the more general world of game development on Raku, we are also on the #raku-gamedev channel, also on Libera.Chat IRC.

Future

The next few milestones have been sketched out in our release roadmap. Future releases are of course subject to change, but the most likely changes are deferral of iffy changes or incomplete features that are holding up release of finished work.

Thank You

THANK YOU to the ever-helpful #mugs crew, to everyone who worked on the many projects on which MUGS is built, to the awesome and supportive Raku community, and of course to Larry, Damian, Jonathan, Liz, and all the other Raku designers for creating a language that brings joy day after day!

MUGS v0.1.4

Multi-User Gaming Services - A Raku-based platform for game service development

Authors

  • Geoffrey Broadwell

License

Artistic-2.0

Dependencies

MUGS::Core:ver<0.1.4>MUGS::Games:ver<0.1.4>MUGS::UI::CLI:ver<0.1.4>MUGS::UI::TUI:ver<0.1.4>MUGS::UI::WebSimple:ver<0.1.4>

Test Dependencies

Provides

  • MUGS

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.

Built with Podlite — the markup and publishing tools behind this site.