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.
How an entry is structured
Most entries follow a loose shape:
- A lede paragraph that frames the topic in one or two sentences.
- Body sections at
##, sub-sections at###(no deeper). - An optional
## See alsosection linking out via<ArticleRef>. - An optional
## Referencessection 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
codeinside 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:
- First step
- Second step
- Sub-step A
- Sub-step B
- Sub-sub-step
- Third step
Mixed nesting:
- Ordered parent
- Unordered child
- Another unordered child
- Ordered grandchild
- 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 devJSON:
{
"name": "modestduck",
"version": "0.1.0",
"private": true
}Tables
| Mechanic | Genre | Year |
|---|---|---|
| Tetrominoes | Puzzle | 1984 |
| Card draw | TCG | 1993 |
| Auto-battle | Strategy | 2019 |
Alignment test:
| Left aligned | Center aligned | Right aligned |
|---|---|---|
| a | b | c |
| longer cell | middle row | 100.00 |
| x | y | z |
Horizontal rule
Above the rule.
Below the rule.
Images
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.
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
By GGonryunUpdated