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>" MUGSNOTE: 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_DEBUGinto a UInt to allow tuning of debug verbositySend debug output to $*ERR only and require higher
MUGS_DEBUGlevels 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!