曉晨藥師 健康教室 妖師驛站 / 旅人手冊 🏠 回首頁

旅人手冊 ・ Traveler's Handbook

妖師驛站怎麼玩

這裡的東西,都是之前經過的人留下來的。你不需要完成它,留下一點就好
這一頁把整個驛站講清楚:三分鐘上手,也有給想深入的人看的細節。

1這裡是什麼

妖師驛站是一個陌生人接力創作的地方。每個世界都有一個未完成的作品:可能是一段會動的程式、一張塗鴉、一段故事。經過的旅人看一看,加上一點自己的東西,再把它留給下一位。

它不是留言板,也不是寫程式的工具。每個人只留下一棒:一筆、一句話、一行程式、一個任務。作品是大家輪流長出來的。

不用登入

第一次進來就拿到一個旅人的名字,可以直接開始。

不會弄壞別人的

每一棒都會留著。你提交的是「新的一棒」,不是改掉舊的。

程式在沙箱裡跑

作品的程式只在你的瀏覽器裡一個隔離的小房間執行,碰不到這個網站。

2三分鐘上手

  1. 進入一個世界。驛站入口接下一棒,會隨機帶你到一個正在等人的世界。想自己挑,往下捲到「旅人地圖」,可以照最活躍、最新世界、等待下一棒排序。
  2. 看看上一位旅人留下的。左邊會告訴你這個世界正在做什麼、有哪些規則,還有上一位旅人留給你的話。中間的預覽就是現在的作品。
  3. 加上一點自己的。</> 程式 改一行、在 🎨 塗鴉 畫一筆,或在 📝 文字 留一句話。按 ▶ 執行(或 Ctrl / + Enter)看結果。
  4. 提交這一棒。按右下角的 提交這一棒,寫一句你做了什麼,留一句話給下一位。可以順手留一個任務,例如「讓雨滴開始移動」。
  5. 繼續旅行,或看看自己的版本。提交後會看到「你留下了一道新的足跡」。下一位陌生人,就從你這裡開始。

用示範世界練一次:今晚,一起替小城點亮月亮

這個世界的第一棒把夜空和城鎮畫好了,但一顆星星都沒有。主線任務是「讓天空出現第一顆星星」。做法:打開 </> 程式 → 選 JavaScript → 在最下面加一行:

addStar(30, 20)

▶ 執行,天空會出現一顆星星。再按 提交這一棒,在「你這一棒做了什麼」寫「加了第一顆星星」,在「完成了哪個任務」選那個主線任務,然後留一個新任務給下一位,例如「讓星星閃一閃」。這樣就完成了一棒。

3世界頁的畫面

桌機是三欄,手機用底部的四個分頁切換:創作任務留言歷史

區塊裡面有什麼
左欄・任務「這個世界正在做什麼」是世界的提示與規則。「上一位旅人留給你」是交棒筆記。下面是任務清單,主線任務會特別標出來。
中間・創作區三個分頁(程式、塗鴉、文字)、▶ 執行、LIVE PREVIEW 預覽,以及預覽下方的小主控台:程式裡的 console.log 和錯誤訊息會顯示在這裡。
右欄・旅人筆記現在同時在這個世界的旅人,和給下一位的留言。有人提交新的一棒時,這裡也會出現一則系統紀錄。
下方・世界足跡這個世界所有的棒次畫成一條條世界線。點任何一棒可以預覽那時候的樣子、從那裡開一條新世界線,或回報。
右下角・動作列建立新世界線提交這一棒。左邊的小字會告訴你目前的狀態,例如「有還沒留下的改動」。
右上角・你的名字點一下可以改名,最多 12 個字。

正在編輯時,別人先提交了怎麼辦?

畫面上方會出現一條橫幅告訴你有新的一棒。你可以先看看對方做了什麼(預覽會切換,你編輯器裡的東西不會動),也可以載入最新版;載入前,你目前的改動會先存成草稿。

4三種創作方式

</> 程式

分成 HTML、CSS、JavaScript 三個分頁。HTML 是畫面的內容,CSS 是樣式,JavaScript 在畫面載好之後執行。三個都可以留白;很多世界只需要你在 JavaScript 最下面多加一行。右上角的字數會告訴你還有多少空間(HTML 與 CSS 各 100KB、JavaScript 150KB,一般人用不到十分之一)。

改完按 ▶ 執行 才會重新跑;提交前預覽的就是別人之後會看到的。

🎨 塗鴉

直接在畫布上畫。上一位旅人畫的會留在底下當底圖,你只能復原自己的筆畫,不能擦掉別人的。塗鴉會鋪在作品的最上面,所以可以在程式做出來的畫面上加東西。一張圖最多 4000 筆,畫滿了會提醒你先提交。

📝 文字

留一句話、一段對白、一個角色的名字。不會被當成程式,也不會被當成 HTML,寫什麼就是什麼。

一棒可以同時用三種。畫一筆、改一行、再留一句話,都算同一棒。不需要每一種都用;只留一句話也是完整的一棒。

5任務與交棒筆記

任務

任務是上一位旅人留下來的小目標,例如「讓雨滴開始移動」。主線是這個世界的方向,其他是小支線。按 接任務 會把它標成你正在做,保留 30 分鐘;30 分鐘沒提交就會自動放開,讓別人可以接。

看到「某某正在嘗試」代表有人接了,但這不是鎖:你還是可以做同一件事,先提交的先算。你也可以不接任務,就只是留下一點東西。

提交時會問你四件事

  1. 你這一棒做了什麼?一句話,最多 300 字。必填,因為世界足跡上會顯示它。
  2. 留給下一位旅人的話。最多 500 字。這會出現在下一位旅人的「上一位旅人留給你」,是驛站最重要的東西:告訴他你卡在哪、想往哪走。
  3. 這一棒完成了哪個任務?可以不選。
  4. 留一個任務給下一位。最多 80 字,可以不留。留了,下一位就有方向。

好的交棒筆記長這樣:「我讓雨開始下了,但雨滴會穿過屋頂。下一位可以試著讓雨滴碰到屋頂就消失;屋頂在 .roof 這個元素。」具體、短、指出下一步。

6世界線與衝突

每個世界一開始只有一條「主線」。你可以從任何一棒開一條新的世界線:從那個時間點分岔出去,走自己的方向,主線不受影響。做法有兩種:動作列的 建立新世界線(從你目前站的那一棒開始,你的改動會跟著過去),或在世界足跡點某一棒,選 從這裡開世界線

衝突是什麼

你在編輯的時候,另一位旅人先提交了一棒。這時你提交會看到「另一位旅人在你之前留下了一棒」。他的不會覆蓋你的,你的也不會覆蓋他的。你有兩個選擇:

這件事由伺服器判斷,不是畫面上猜的:只有「你出發的那一棒」還是這條線的最後一棒時,提交才會接上去。所以永遠不會有人的作品被默默蓋掉。

7沙箱:能做與不能做

作品的程式永遠在一個隔離的 iframe 裡執行,跟這個網站不同來源,碰不到頁面、cookie 或你的任何資料。這是為了讓陌生人的程式可以放心地在你的瀏覽器裡跑。代價是有些事做不到:

想做的事可以嗎怎麼辦
畫圖、動畫、CSS、Canvas、SVG可以這是驛站的主場。
console.log、錯誤訊息可以顯示在預覽下方的主控台。
載入網路上的圖片、字型、影片不行外部網址載不進來。用 emoji、CSS 畫、SVG,或塗鴉分頁。
fetchXMLHttpRequest、WebSocket不行沙箱沒有網路。作品只能用自己帶著的資料。
存東西(localStorage、cookie)不行每次執行都是乾淨的。要留下東西,就提交一棒。
無限迴圈、跑太久的程式會被停下畫面會出現「這段魔法跑太久,妖師已經把它停下來了」。改一下再按重新執行。
碰這個網站的頁面、跳轉、彈出視窗不行沙箱刻意擋掉,這是保護每一位旅人。

迴圈防護的原理:提交的程式在執行前,每個迴圈的條件式會被加上一個計數器,超過三百萬次就停下來。所以 while (true) 這種寫法會被攔住,但一般的動畫、requestAnimationFramesetInterval 都正常。

8旅人、名字與隱私

9規矩、留言與回報

每個世界自己的規則

世界頁左上角會列出來,例如示範世界的三條:不要刪掉別人的主要角色、每次只增加一點東西、留下一個提示給下一個人。這些是約定,不是程式擋的。請照著做,這是接力能一直走下去的原因。

留言

右欄的旅人筆記是純文字,最多 1000 字,不會解析任何標記。自己的留言可以刪,別人的可以回報。

每一棒都會留著

提交過的棒次不能改、不能刪,這樣世界足跡才是真的。留錯了,就再提交一棒把它修掉,或開一條新世界線。真的有問題的內容,請用回報。

回報

世界足跡的每一棒、每一則留言旁邊都有 回報。原因有垃圾內容、騷擾、成人內容、危險或違法、惡意程式碼、侵權、其他。站主會看過,違規的那一棒會被隱藏,世界退回前一棒;歷史不會被刪掉。

為了讓大家都好過的限制:每 10 分鐘最多提交 5 棒、留言 10 則、開 5 條世界線;每小時最多回報 10 次。超過會看到「太快了」,等一下就好。

10常見問題

我不會寫程式,也可以玩嗎?

可以。畫一筆、留一句話,都是完整的一棒。很多任務也不需要程式,例如「幫怪物取個名字」。想試程式的話,從示範世界的 addStar(30, 20) 開始,一行就好。

提交時說「另一位旅人在你之前留下了一棒」,我的東西不見了嗎?

沒有。你的改動還在編輯器裡。看看對方的版本後再提交一次,或把你的作品開成新世界線。詳見世界線與衝突

畫面說「這段魔法跑太久」,是我寫壞了嗎?

通常是迴圈沒有出口,例如 while (true) 裡沒有 break。沙箱會把它停下來保護你的瀏覽器。改完按重新執行就好。

我放了圖片網址,為什麼載不出來?

沙箱沒有網路,外部圖片、字型、影片都載不進來。改用 emoji、CSS 或 SVG 畫,或直接用塗鴉分頁畫上去。

可以刪掉我提交的那一棒嗎?

不能,每一棒都會留著。可以再提交一棒把它改掉,或從前一棒開一條新世界線。如果內容有問題,用回報讓站主處理。

換手機還會是同一個旅人嗎?

不會,旅人跟著瀏覽器走。目前沒有帳號功能。

接了任務一定要做完嗎?

不用。30 分鐘沒提交會自動放開,別人可以接。接任務只是告訴大家「我在試」。

我想開一個新世界,怎麼做?

目前世界由站主建立。有想法的話,透過 LINE 小助理告訴曉晨藥師:世界的標題、一句話的提示、幾條規則,還有第一棒想長什麼樣子。

沒有東西可以接怎麼辦?

旅人地圖切到「等待下一棒」看看還有哪些世界在等人。都沒有的話,隨便進一個世界留一句話,也是一棒。

準備好了嗎?

留下一點就好。不需要完成它,幫下一位旅人多走一步。

還想看別的?藥學專欄常見問題關於藥師