Introduction

From the Modest Duck Compendium

This is an attempt at a public, slowly growing encyclopedia of video game mechanics, systems, and concepts. The goal is a single place where ideas can be jotted down as they come, without worrying about chronology — each entry is a standalone node that can be lifted, remixed, or argued with.

Anyone can contribute. If you have an idea for a mechanic, system, or design pattern worth describing, open a pull request against the content repo. The richer the graph, the more useful the whole thing becomes.

How to read an entry

Each entry assumes you've already played something adjacent. The body explains what's different, not what a card game is. Flavor and worldbuilding live in italics; hard mechanics live in mono; everything else is prose.

Inline keywords for in-universe terminology look like this: Rock, Paper, Scissors. They are not links — they signal "this word has a defined meaning inside this article."

Conventions

  • Headings use sentence case unless the term is a proper noun. "Resolving a round," not "Resolving A Round."
  • Cross-references between entries use <ArticleRef slug="..." />, which resolves to the target entry's title at build time.
  • Block quotes with the > syntax are reserved for real-world citations. In-universe flavor uses <FlavorQuote>:

The whole game collapsed into a single trick on turn three. Nobody saw it coming. Everyone wanted to play again.

—an early playtest note

How an entry is structured

Most entries follow a loose shape:

  1. A lede paragraph that frames the topic in one or two sentences.
  2. Body sections at ##, sub-sections at ### (no deeper).
  3. An optional ## See also section linking out via <ArticleRef>.
  4. An optional ## References section for real-world citations.

There is no fixed length. Some entries are a paragraph; some are essays. The shape follows what the idea needs.

About authorship

Authorship is read straight from this repository's git history. The first committer of a file is its original author; everyone who has touched the file shows up on the page and on the /contributors listing. There is no author field in metadata, no date, no id — the slug is the identity, and time and credit come from commits.

Markdown rendering test

The remainder of this entry is a kitchen-sink exercise of every markdown and MDX element the site supports. It exists so that visual regressions and rendering bugs can be spotted at a glance.

Heading level 1

Heading level 2

Heading level 3

Heading level 4

Heading level 5
Heading level 6

Nested heading example

A fourth-level child

A fifth-level grandchild
A sixth-level great-grandchild

Inline text formatting

This paragraph contains bold text, italic text, bold italic text, strikethrough text, inline code, a regular link, and a link with a title. Trailing punctuation should not be swallowed by the link.

Hard line breaks appear after two trailing spaces.
This sentence follows a hard line break.
This one too.

A soft line break sits between these two clauses without producing a <br>.

Special characters: & < > © — "smart quotes" 'and apostrophes' — em dash – en dash … ellipsis.

Block quotes

A single-level block quote. Real-world citations use this syntax.

A block quote with bold, italic, and code inside it.

A second paragraph inside the same block quote.

Nested block quotes work too.

This is one level deeper.

And this is three levels in.

Lists

Unordered list:

  • First item
  • Second item with bold content
  • Third item with a link
    • Nested item
    • Another nested item
      • Deeply nested item
  • Fourth item

Ordered list:

  1. First step
  2. Second step
    1. Sub-step A
    2. Sub-step B
      1. Sub-sub-step
  3. Third step

Mixed nesting:

  1. Ordered parent
    • Unordered child
    • Another unordered child
      1. Ordered grandchild
      2. Another ordered grandchild

Task list:

  • Completed task
  • Another completed task
  • Incomplete task
  • Another incomplete task

Definition list (if supported):

Term : Definition of the term.

Another term : Another definition, possibly longer and wrapping across several lines to test how the renderer handles flow inside a <dd>.

Code

Inline code: const answer = 42;

Fenced code block without a language:

plain text
no syntax highlighting

JavaScript:

function greet(name) {
  const message = `Hello, ${name}!`;
  console.log(message);
  return message;
}
 
greet("world");

TypeScript with longer lines to test horizontal scroll:

interface Article {
  slug: string;
  title: string;
  description: string;
  draft: boolean;
}
 
const articles: Article[] = [
  { slug: "introduction", title: "Introduction", description: "A working notebook of gameplay concepts.", draft: false },
];

Shell:

git clone https://github.com/example/repo.git
cd repo
npm install && npm run dev

JSON:

{
  "name": "modestduck",
  "version": "0.1.0",
  "private": true
}

Tables

MechanicGenreYear
TetrominoesPuzzle1984
Card drawTCG1993
Auto-battleStrategy2019

Alignment test:

Left alignedCenter alignedRight aligned
abc
longer cellmiddle row100.00
xyz

Horizontal rule

Above the rule.


Below the rule.

Images

A placeholder image with alt text

Footnotes

Here is a sentence with a footnote reference.1 And another one.2

MDX components in use

Inline keyword: Example rendered mid-sentence.

Every element on this page should render. If one does not, something has drifted between the parser and the renderer.

—the test harness

Edge cases

An empty block quote:

A list item containing a code block:

  • Item with code:

    const x = 1;
  • Item with a block quote:

    Quoted text inside a list item.

  • Item with a nested list:

    • Nested
    • Items

Escaped characters: *not italic*, `not code`, # not a heading.

See also

Footnotes

  1. The first footnote.

  2. A footnote with multiple paragraphs.

    Indented content belongs to the same footnote.


By Updated

View revision history on GitHub →