Skip to content

Commit d62753e

Browse files
authored
Merge pull request #14 from theprototype-app/docs-36-int-124
[docs] 1.24: characters, Race, Edit Mesh ops + Boolean, checkpoints, recording + gallery, community, VR HUD + VR AI (36-int-124)
2 parents b3167a8 + 515f10d commit d62753e

42 files changed

Lines changed: 589 additions & 35 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎docs/ai/assistant.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,35 @@ Once the assistant is enabled and a provider is set, a round **✨ button** appe
3636
bottom-left of the viewport (just below the **+** add button). Click it to open or close
3737
the assistant window — the same window the quick prompt bar opens into.
3838

39+
### In VR
40+
41+
Radial menu ▸ **Tools ▸ AI** opens the same conversation on a panel in the headset, where you can type or hold a button
42+
and talk — see [The AI assistant in VR](../vr.md#the-ai-assistant-in-vr).
43+
44+
## Voice typing
45+
46+
Talk to the assistant instead of typing. Set up a speech-to-text provider in **Settings ▸ AI ▸ Voice typing provider**
47+
(search *voice*, *whisper* or *dictation*):
48+
49+
| Setting | Default | Notes |
50+
|---|---|---|
51+
| **Provider** | OpenAI | **OpenAI** (`whisper-1`), **Groq** (`whisper-large-v3`), or **Self-hosted** — any OpenAI-compatible `/audio/transcriptions` server, such as faster-whisper |
52+
| **Base URL / API key / Model** | from the preset | OpenAI and Groq need a key; a self-hosted server only its URL |
53+
| **Language hint** | blank (detect) | for example `en` |
54+
| **Test connection** | — | sends half a second of silence; *Connected* means the server accepted it |
55+
56+
![Voice typing set to Groq](../img/ai/voice-typing-settings.png)
57+
58+
The assistant window then has a **mic** button next to **Send**: click to listen, click again to stop. The words land in
59+
the input, so you can fix them before sending. (In VR they are sent as soon as you let go.)
60+
61+
![The assistant window with the mic button next to Send](../img/ai/assistant-mic.png)
62+
63+
- The voice key is stored on this device only, like the AI provider key ([Where keys are stored](providers.md#where-keys-are-stored)).
64+
- If voice chat is on, the assistant uses the same microphone without opening a second one, and voice chat keeps
65+
working.
66+
- Voice needs a browser that can record audio and microphone permission. A recording stops itself after 60 seconds.
67+
3968
## What you can ask for
4069

4170
The assistant works with the building blocks the app already has:

‎docs/avatars.md‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Your Character
2+
3+
Since 1.24 everyone in a session appears as a **rigged, animated character** instead of a floating head. The body
4+
stands under the person's viewpoint, **walks, runs, strafes, jumps and idles** with the way they move, turns to face
5+
where they look, and — when they are in **VR** — reaches for their controllers with its arms. The classic floating head
6+
is still there as a choice.
7+
8+
![Another person's character, a Knight, standing where their camera is](img/avatars/peer-character.png)
9+
10+
## The characters
11+
12+
Nine characters ship with the app: **Knight**, **Mage**, **Rogue**, **Hooded rogue**, **Barbarian**, **Skeleton**,
13+
**Skeleton warrior**, **Skeleton mage** and **Skeleton rogue**, from Kay Lousberg's free CC0 KayKit packs.
14+
15+
![The nine characters](img/avatars/characters.png)
16+
17+
If you never pick one, you get **Surprise me**: a character chosen from your id, so everyone sees the same one for you.
18+
The same characters are also an Explorer pack, **Packs ▸ Adventurers**, that you can place in a scene as animated
19+
models (see [Packs](packs.md#adventurers-124)).
20+
21+
## Customize Character
22+
23+
Profile menu (your picture, top right) ▸ **Customize Character** — also **Settings ▸ Interface ▸ Avatars ▸ Customize
24+
character…**. A side panel opens and the camera moves to **your own character**, standing where you are, so you see
25+
yourself the way other people do.
26+
27+
![The Customize character panel with the camera on your own character](img/avatars/customize-panel.png)
28+
29+
| Section | What you choose |
30+
|---|---|
31+
| **Character** | one of the nine — step through them with ‹ › — or **Surprise me** or **Classic head** |
32+
| **Head** | the character's own head, a stylised **Sphere**, **Box**, **Capsule** or **Cone** in your colour, or **My photo** (your profile picture on a card; needs a profile photo) |
33+
| **Hat** | None, Cap, Top hat or Crown — it sits on whatever head you chose |
34+
| **Colours** | **Outfit** recolours the character's clothes (skin and face keep theirs; **Original** puts them back); **Head** colours a stylised head or the classic avatar |
35+
| **Show my name above me** | your name label |
36+
| **Ping** | the colour and chime of *your* [pings](notifications.md#pinging); **Preview** pings beside your character (only you see and hear it) |
37+
38+
Every change shows on your character at once; nothing reaches other people until you press **Apply**, which saves it and
39+
shows it to everyone. **Cancel**, <kbd>Esc</kbd> or ✕ throw the changes away. Either way the camera flies back to where
40+
you were.
41+
42+
## Showing everyone as classic heads
43+
44+
**Settings ▸ Interface ▸ Avatars ▸ Show everyone as classic heads** draws other people as the floating head instead of
45+
their character — on **this device only**, and lighter on a headset with many people in the room. They still see your
46+
character.
47+
48+
## In VR
49+
50+
A VR user's character follows their head, and its arms reach for their controllers; a hand held out of the arm's reach
51+
falls back to the floating controller marker. Pointing at an object puts the character's hand on it.
52+
53+
## Limits
54+
55+
- The bodies are stylised (big heads): a character is about 2.2 m tall so its eyes sit where the person's are.
56+
- In the editor, a character follows the editor camera — flying the camera makes the body float.
57+
- Characters add no network traffic: each screen works the bodies out from the position and hand data already shared.
58+
- Each character is at most about 6,000 triangles with one material, so eight people stay inside a Quest's budget.

‎docs/checkpoints.md‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Checkpoints
2+
3+
A **checkpoint** is a copy of the scene as it is right now — objects, node graphs, HUD, sky, physics, the camera — kept
4+
**on this device**, with a name, an optional note, a picture and a time. [Autosave](saving.md#autosave) only remembers
5+
the *last* state; checkpoints let you go back to *any* earlier one.
6+
7+
![The Checkpoints timeline comparing two checkpoints with the swipe slider](img/checkpoints/timeline-compare.png)
8+
9+
## Saving a checkpoint
10+
11+
**Menu** (the logo button) ▸ **Save checkpoint…**, or press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd>. Type a name and, if you like,
12+
a note ("before lighting", "try the red version next"), then press **Save checkpoint**.
13+
14+
## The timeline
15+
16+
**Menu ▸ Checkpoints** lists every checkpoint, newest first, grouped by day. In it you can:
17+
18+
| Action | How |
19+
|---|---|
20+
| **Restore** | replaces the open scene with the checkpoint. The scene you leave is kept in the timeline as **"Before restoring …"**, so a restore can itself be undone. With people connected, they are asked to accept first (the same as opening a saved session) |
21+
| **Rename** | double-click the name |
22+
| **Note** | click the note line to edit it (<kbd>Ctrl</kbd>+<kbd>Enter</kbd> saves) |
23+
| **Pin** | a pinned checkpoint is never removed to make room |
24+
| **Delete** | removes the checkpoint |
25+
| **Compare** | press **Compare**, then tick two checkpoints: their pictures sit on top of each other with a swipe slider, plus what changed (object count, size, time apart, "same content"). Tick just one to compare it with the scene as it is now |
26+
27+
Two filters narrow the list: show only **This scene**'s checkpoints, or hide the **Automatic** ones.
28+
29+
## Automatic checkpoints
30+
31+
While you work, autosave also adds an **automatic** checkpoint every few minutes — only when the scene actually changed
32+
since the last one, and never while a scene is loading or a simulation is running.
33+
34+
## Settings
35+
36+
**Settings ▸ Scene ▸ Checkpoints**:
37+
38+
| Setting | Default | What it does |
39+
|---|---|---|
40+
| Keep automatic checkpoints | on | autosave adds rows to the timeline |
41+
| Automatic checkpoint every | 10 min | 5 / 10 / 30 / 60 min — the shortest gap between two |
42+
| Checkpoint storage | 250 MB | 100 MB / 250 MB / 500 MB / 1 GB that this device may use |
43+
44+
## Limits
45+
46+
- Checkpoints stay on this device (this browser). They are not shared with other people and are not part of a project
47+
file — use **Save** and scene versions ([Saving & Sessions](saving.md)) for that.
48+
- When a new checkpoint would not fit, the **oldest unpinned** ones are removed — automatic ones before named ones. If
49+
even that is not enough (everything else is pinned), the save is refused and a message says so. At most 60 checkpoints
50+
are kept.
51+
- A scene larger than the storage limit cannot be checkpointed.

‎docs/community.md‎

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,18 @@ Publish again from the same scene and the dialog offers **Update "‹title›"
4141

4242
There is no unpublish button in the app yet.
4343

44+
When you publish or update a game, the dialog also shows a **This game: …** line with its visits — see
45+
[Your games & stats](#your-games-stats).
46+
4447
### The GitHub gallery destination
4548

46-
Choosing **GitHub gallery** downloads `‹slug›-gallery-entry.zip` (the scene, a thumbnail and an `entry.json`) and opens the gallery repository: fork it, add the folder and a row to `gallery.json`, open a pull request. Contest entries need the Community destination, and the dialog says so if you pick both.
49+
Choosing **GitHub gallery** builds the same submission zip as the **Community gallery** tab of Publish / Export, with
50+
the same two GitHub steps — see [The Community gallery tab](publish-export.md#the-community-gallery-tab). Contest entries
51+
need the Community destination, and the dialog says so if you pick both.
4752

4853
## A scene's page
4954

50-
Every published scene has a page at `/s/‹id›`: the hero shot, the title, the author's `@handle`, the license, a **♥** like button (sign in to use it), the summary, the tags, and four actions:
55+
Every published scene has a page at `/s/‹id›`: the hero shot, the title, the author's `@handle`, the license, a **♥** like button (sign in to use it; the same like as the [hearts in the app](#hearts)), the summary, the tags, and four actions:
5156

5257
- **▶ Play** — opens the app with the scene loaded and Play mode already running.
5358
- **Open in ThePrototype** — the same, in the editor.
@@ -58,7 +63,8 @@ A public scene also has an **Embed** button — see [Embedding a scene](#embeddi
5863

5964
Below that: what the scene includes, its lineage (*Remix of … by @handle*, and how many remixes it has), and comments. **Report this scene** is at the bottom — see [Reporting](#reporting).
6065

61-
`/community` is the browse page: **Featured**, **Recent** and **Top**, tag chips, and a strip for the contest that is open.
66+
`/community` is the browse page: **Featured**, **Recent** and **Top**, tag chips, a **Mine** chip while you are signed in
67+
(see [below](#mine)), and a strip for the contest that is open.
6268

6369
### Links that open the app
6470

@@ -78,14 +84,55 @@ The flag lasts for the life of the page.
7884

7985
**The editor is the player.** Play opens the real app with the full scene, not a preview: the game's HUD, its flow graph, its physics and its sound all run, and a click on the viewport takes the pointer.
8086

81-
**Remix is a local load.** Nothing is created on the server until you publish. When you do, the dialog shows a ticked *Remix of "‹title›" by @handle* line and the new scene carries that lineage on its page. Every license in the picker allows this; a remix of your own scene is simply a new scene, with no lineage line.
87+
**Remix is a local load.** Nothing is created on the server until you publish. When you do, the dialog shows a ticked *Remix of "‹title›" by @handle* line and the new scene carries that lineage on its page. Every license in the picker allows this; a remix of your own scene is simply a new scene, with no lineage line. A remix is also a **new game** with its own [game id](#one-game-one-count).
8288

8389
## The Community tab in Templates
8490

8591
**Menu ▸ Templates ▸ Community** lists published scenes inside the app — featured ones first, then the most recent — with the author's handle, the license, the size and the like count on each card. Tag chips narrow the list; **Clear** resets it. Clicking a card loads the scene through the ordinary template path: a backup of your current scene is stashed first, and connected peers are asked before anything changes. The small button in a card's corner saves the scene to your Library instead, without loading it.
8692

8793
When a contest is open a notice row says so (*Contest: Make a mirror — 9 days left*) with a **More** link to its page, and the tab's **Publish yours** link opens the Publish dialog.
8894

95+
### Hearts
96+
97+
Like a published scene without leaving the app: the **heart** button sits on every card in **Templates ▸ Community**, on
98+
the start card of a **play link** (`/p/‹id›`) and in a published game's **pause menu** (<kbd>Esc</kbd>, top right).
99+
Press it and the count updates at once (and goes back if the like could not be saved). Signed out, it asks you to sign in
100+
(profile menu, top right). It is the same like as the ♥ on the scene's page — one like per person per scene.
101+
102+
![The heart on a play link's start card, beside Play](img/community/play-link-heart.png)
103+
104+
![The heart in a published game's pause menu](img/community/pause-menu-heart.png)
105+
106+
### Mine
107+
108+
While you are signed in, the **Mine** chip in **Templates ▸ Community** (and on theprototype.app/community) shows only
109+
your own published scenes — unlisted ones too. A scene staff hid shows *Hidden by moderation: ‹reason›*, so you know why.
110+
111+
## Your games & stats
112+
113+
Profile menu ▸ **📈 Your games & stats** shows how many people arrived from the **Made with ThePrototype** badge in your
114+
play links, embeds and exported builds — for the last **7 days**, **30 days** or **all time**, split by source (play
115+
link, itch.io, static host, embed). The [Publish](#publish) dialog shows the same count for the game you are publishing
116+
or updating.
117+
118+
![Your games: visits over 30 days, one row per game, with a moderation notice](img/community/your-games.png)
119+
120+
### One game, one count
121+
122+
Every scene gets a permanent **game id** the first time you save, export or publish it. Re-exporting, a new itch.io build
123+
and the play link all count toward the **same game** — including visits from before you published it. A **copy**
124+
(Explorer ▸ Duplicate, Save to Library) or a **remix** of someone else's scene becomes a **new game**.
125+
126+
- Visits are counted per game, never per visitor: no cookies, no IP addresses.
127+
- Builds exported before 1.24 count under their own old id.
128+
- Exports made while signed out still count, but show in your stats only once the game is published or exported again
129+
while you are signed in.
130+
131+
### If a scene of yours is hidden
132+
133+
If staff hide or remove one of your scenes, **Your games** (and the Publish dialog, when you update it) says *Hidden by
134+
moderation: ‹reason›*. Press **Ask for a review** — once a day, with an optional note — and staff get it in their queue.
135+
89136
## Contests
90137

91138
A contest is a brief, a starter scene, a two-week window and a page at `/c/‹slug›`: the rules, a live countdown, the starter, the entries, and the results once it ends. The first two are **Make a mirror** and **Follow the beat**; windows overlap by a week, so there is always one open and one closing.
@@ -106,4 +153,7 @@ The site and the app share one sign-in. **Sign in** in the site header offers th
106153

107154
## Reporting
108155

109-
Every scene page ends with **Report this scene**: pick a reason — **Spam**, **Not safe for work**, **Stolen work**, **Illegal content** or **Other** — add a note if you like, and send it (this needs a sign-in, and counts once per person per scene). A scene reported by three different people is hidden from every list and page until a maintainer has looked at it. Assets an author had no right to license are exactly what *Stolen work* is for: the license picker cannot express "all rights reserved", so a report and a takedown are how that is handled.
156+
Every scene page ends with **Report this scene**: pick a reason — **Spam**, **Not safe for work**, **Stolen work**, **Illegal content** or **Other** — add a note if you like, and send it (this needs a sign-in, and counts once per person per scene). A scene reported by three different people — counting only accounts older than three days — is hidden from every list and page until a maintainer has looked at it.
157+
158+
Staff accounts have a **Staff · Insights & moderation** entry in the profile menu for the report queue and the visit
159+
totals; it is not shown to anyone else. Assets an author had no right to license are exactly what *Stolen work* is for: the license picker cannot express "all rights reserved", so a report and a takedown are how that is handled.

0 commit comments

Comments
 (0)