repo-layout

% MUGS Repository Layout

Reviewed 2021-03-04 by japhb

Raku-MUGS Repos

MUGS-Core : Core modules

MUGS-Games : Free-as-in-speech game implementations

MUGS-UI-CLI : CLI UI, including App and game UIs

MUGS-UI-WebSimple : WebSimple UI, including HTTP gateway and game UIs

MUGS : Root repo; includes docs and depends on all other released repos

General Layout of All Repos

Not all repos will contain all directories listed below, but what directories they do have will match the following general layout:

.
ā”œā”€ bin             # Small launch wrappers for MUGS::App::* apps
ā”œā”€ doc
│  ā”œā”€ design       # Design docs
│  └─ todo         # Open todos
ā”œā”€ lib
│  └─ MUGS
│     ā”œā”€ App       # Launchable apps (client, server, or admin/util/tool)
│     ā”œā”€ Client    # *Non-UI* portions of client code
│     ā”œā”€ Server    # Server code
│     ā”œā”€ UI        # User interfaces (sharing common Client code above)
│     └─ Util      # Utility modules
│
ā”œā”€ resources       # Read-only (non-code) resources
└─ t               # Tests

Detailed Views

MUGS-Core

.
ā”œā”€ā”€ bin                        # mugs-admin, mugs-tool, mugs-ws-server
│
ā”œā”€ā”€ docs                       # CONTRIBUTING.md (see MUGS repo for others)
│
ā”œā”€ā”€ lib
│   └── MUGS                   # Common base modules
│       │
│       ā”œā”€ā”€ App                # App modules for bin/ + LocalUI base for UI Apps
│       │
│       ā”œā”€ā”€ Client             # *Non-UI* portions of client code
│       │   ā”œā”€ā”€ Connection     # Communication channels to servers
│       │   ā”œā”€ā”€ Game           # Client-side logic for Echo and Lobby
│       │   └── Genre          # Shared client code for Test genre
│       │
│       ā”œā”€ā”€ Server             # Server code
│       │   ā”œā”€ā”€ Connection     # Communication channels with clients
│       │   ā”œā”€ā”€ Game           # Server-side logic for Echo and Lobby
│       │   ā”œā”€ā”€ Genre          # Shared server code for Test genre
│       │   └── Storage        # Server-side persistent storage
│       │       └── Driver     # Storage drivers: Red::SQLite + Fake (in-memory)
│       │
│       └── Util               # Utility modules
│
ā”œā”€ā”€ resources                  # Read-only (non-code) resources
│   ā”œā”€ā”€ conf                   # Configuration defaults
│   └── fake-tls               # Fake TLS certs for local testing
│
└── t                          # Tests

MUGS-Games

.
ā”œā”€ā”€ docs                       # CONTRIBUTING.md (see MUGS repo for others)
│
ā”œā”€ā”€ lib
│   └── MUGS
│       ā”œā”€ā”€ Client
│       │   ā”œā”€ā”€ Game           # Client-side per-game-type logic
│       │   └── Genre          # Shared client code for common game genres
│       └── Server
│           ā”œā”€ā”€ Game           # Server-side per-game-type logic
│           │   └── Adventure  # Extra support modules for Adventure game
│           └── Genre          # Shared server code for common game genres
│
ā”œā”€ā”€ resources
│   └── game                   # Game-specific resource files
│       └── adventure          # Adventure scenarios
│           └── new-path       # 'new-path' scenario
│
└── t                          # Tests

MUGS-UI-CLI

.
ā”œā”€ā”€ bin                        # mugs-cli
│
ā”œā”€ā”€ docs                       # CONTRIBUTING.md (see MUGS repo for others)
│
ā”œā”€ā”€ lib
│   └── MUGS
│       ā”œā”€ā”€ App                # App module for mugs-cli
│       └── UI                 # MUGS::UI::CLI plain text interface base module
│           └── CLI            # Line-editing input driver
│               ā”œā”€ā”€ Game       # Game type specific CLI interfaces
│               └── Genre      # Shared CLI code for common game genres
│
└── t                          # Tests

MUGS-UI-WebSimple

.
ā”œā”€ā”€ bin                        # mugs-web-simple
│
ā”œā”€ā”€ css                        # Common CSS files
│
ā”œā”€ā”€ docs                       # CONTRIBUTING.md (see MUGS repo for others)
│
ā”œā”€ā”€ lib
│   └── MUGS
│       ā”œā”€ā”€ App                # App modules for mugs-web-simple
│       │   └── WebSimple
│       └── UI
│           └── WebSimple
│               ā”œā”€ā”€ Game       # Game type specific WebSimple interfaces
│               └── Genre      # Shared WebSimple code for common game genres
│
ā”œā”€ā”€ resources
│   └── fake-tls               # Fake TLS certs for local testing
│
ā”œā”€ā”€ t                          # Tests
│
└── templates                  # HTML templates

MUGS

.
ā”œā”€ā”€ docs                       # CONTRIBUTING.md
│   ā”œā”€ā”€ design                 # Design docs, diagrams, and ruminations
│   └── todo                   # Open todos
│
ā”œā”€ā”€ lib                        # MUGS module (used to build README)
│
└── t                          # Tests

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.