名詞解釋
用簡單的話解釋這些頁面上的技術名詞。每一頁內文中的連結都會連到這裡。
遊戲
- 道具
- 遊戲中的電子裝置:要佔領的盒子、要啟動和拆除的炸彈、要駭入的終端機、要射擊的標靶。在 Atalaia 中,任何裝置都可以當道具:專門製作的盒子、一支手機或一塊小開發板。
- Field Box 與衛星盒
- Atalaia 自己設計的道具,用現成零件圍繞著 ESP32 組裝而成。Field Box 是主要的那一個,在防水外殼裡有大的街機按鈕、按鍵、螢幕、燈、喇叭和 NFC 讀卡機,零件約 70–110 歐元;衛星盒是用在次要據點的小盒子,約 30–40 歐元。Field Box 的韌體和組裝手冊已經完成;第一個工作台組裝(散線、沒有外殼)已經能玩(第 1 階段)。
- Milsim
- military simulation(軍事模擬)的簡稱:時間很長的遊戲,常常持續整個週末,有任務、指揮體系和擬真的規則。這是對 Atalaia 最大的考驗:10 到 20 個盒子和衛星盒散布在一大片區域。
- CQB
- 近距離戰鬥(close-quarters battle):在房屋、豪宅、倉庫和其他狹窄空間裡進行的遊戲,範圍通常不到約 150 m。一切都近而快,所以 Atalaia 的 CQB 設定檔使用較短的佔領和炸彈時間,並把盒子放在平面圖上,而不是使用 GPS。
- 測速與焦耳
- 測速器(chronograph)量測槍枝射出 BB 彈的速度。由速度和 BB 彈的重量可以算出以焦耳計的能量,場地會依槍枝類型設定上限:0.20 g 的 BB 彈以 100 m/s(約 328 fps)飛行,帶有 1 焦耳的能量。Atalaia 保存每把槍經裁判簽署的測速值,讓裁判可以在當天進行抽查(軟體已完成,還沒在場地上使用過);任何處罰都一定由人來決定。
硬體
- 微控制器
- 一顆晶片上的完整小電腦,專門用來執行一個程式。它一下子就能啟動、非常省電又便宜,所以通常是電子道具的大腦。ESP32 和 Arduino 開發板都是微控制器開發板。
- ESP32
- 一種很受歡迎、便宜、內建 Wi-Fi 和藍牙的微控制器;很多開發板還附有 LoRa 無線電。它是 Field Box、衛星盒和 I/O 模組的大腦,用電池應該能讓道具運作一到三天(這是估計值,還沒實測)。大家手邊已經有的開發板也能加入,即使沒有額外記憶體(PSRAM)也可以,只是有一些限制。
- Arduino 等級開發板、精簡節點
- 簡單、非常便宜的 Arduino 風格微控制器開發板,例如使用 AVR 或 RP2040 晶片的板子。它們太小,跑不了遊戲模式,所以在 Atalaia 中當作精簡節點:把自己的按鈕、燈或感測器借給附近的盒子或場地控制器,由它們替精簡節點執行規則。
- Raspberry Pi
- 一台大約信用卡大小、執行 Linux 的便宜小電腦。加上一塊 LoRa 無線電板之後,它將會是常用的場地控制器(整套約 80–150 歐元),也能執行需要大螢幕或攝影機的道具。
- Android 道具與 I/O 模組
- Atalaia App 能把一支 Android 手機或平板(全新的,或 2017 年以後的備用機)變成在螢幕上執行任何遊戲模式的道具。手機沒有 LoRa 無線電,戴著手套也很難操作觸控螢幕,所以一個小小的 ESP32 盒子,也就是 I/O(輸入/輸出)模組,會透過線材或藍牙連接,補上無線電、大按鈕、燈和警報器。兩者都已在軟體中完成(第 3 階段),並在模擬器和電腦上測試過,還沒在真正的手機或 I/O 模組上跑過。
- 韌體與燒錄
- 韌體是內建在裝置裡、一開機就會啟動的程式。燒錄就是把新版本寫進裝置,通常透過 USB 線。Atalaia 的盒子用線材燒錄,目前新的遊戲模式要隨著重新燒錄一起進來;之後模式會以腳本的形式送達。韌體更新現在由場地控制器透過 Wi-Fi 提供(軟體已完成,還沒在真實開發板上試過),如果新版本無法啟動,會自動退回舊版。
無線電與連線
- LoRa
- long range(長距離)的簡稱:一種只用很少電力就能把小訊息傳得很遠的無線電,不需要 SIM 卡、行動網路訊號或月租。在一般的場地上,它應該能傳到大約 0.5–2 km(設計時的估計,還需要實測),穿透厚牆的能力也比 Wi-Fi 好。代價是:訊息必須很短,而且每個裝置只能在一小部分時間內發射。Atalaia 預設使用 869.525 MHz,位於 EU868 中唯一允許 10% 工作週期(duty cycle)和 500 mW 的子頻段,讓每個盒子每小時最多有 6 分鐘的發射時間,足夠傳送事件、分數和時間同步信標,還綽綽有餘。場地可以選擇其他頻道,那些頻道只允許 1% 以下的時間和 25 mW。盒子只傳送有變化的內容,例如「紅隊佔領了 B」。
- 網狀網路
- 一種裝置之間互相轉傳訊息的網路,所以離基地太遠的盒子,可以透過中間的盒子被聽到。Atalaia 每則訊息只重複轉傳一兩次,讓無線電不會塞車,主辦也可以在地形困難的地方多放幾個盒子當中繼。
- Skirmesh-RF
- Atalaia 自己的無線電協定:盒子、控制器和 App 之間透過 LoRa、Wi-Fi 或藍牙交換訊息時約定好的格式。它的文件是公開的,所以任何人都能做出可以加入的裝置;每則訊息都用這場遊戲專屬的金鑰加密並簽署,所以帶著無線電的玩家沒辦法隨便偽造佔領。它已在軟體中完成並測試,還沒在場地上用過。
- Wi-Fi、BLE、NFC 與 QR code
- 日常的短距離連線,各有各的用途。Wi-Fi(約 50–150 m)負責傳送大量資料:主辦的控制台、玩家 App、新模式和更新;BLE,也就是低功耗藍牙(10–30 m),把手機連到它的 I/O 模組並讓裝置配對。NFC 是一碰就讀,像感應式卡片一樣,用在隊伍標籤、手環和加入卡;QR code 則用手機相機掃描,來加入遊戲或輸入代碼。
- API:MQTT、REST 與 WebSocket
- API 是一種有文件說明的方式,讓其他程式可以讀取遊戲狀態,並在獲得許可後控制遊戲。有了它,社團就能驅動大型 LED 記分板、直播上的即時分數疊加畫面、Discord 或 Telegram 通知,或是一個在炸彈爆炸時觸發煙霧和警報器的繼電器。MQTT、REST 和 WebSocket 是三種標準的接入方式,所以一般的工具都能和它搭配。場地控制器從第 2 階段起就有 API,附一個現成的記分板頁面;已在電腦上測試過,還沒在場地上用過。
- ATAK
- Android Team Awareness Kit:為軍方製作的地圖 App,有免費的民用版本,很多 milsim 隊伍用它在共享地圖上看到隊友的位置。Atalaia 的場地控制器將能把盒子顯示在這些地圖上,以及每個盒子由哪一隊佔領(第 4 階段)。
軟體
- 在地優先
- 遊戲需要的一切都在場地本身運作,在盒子和場地控制器上,所以完全沒有網路或行動訊號也能玩。有網路的時候,它只是加上額外功能,例如帳號和遊戲歷史。失去聯繫的盒子會繼續運作和計分,連線恢復後再補上進度。
- 共用核心(C11)
- Atalaia 的心臟:一個用 C 程式語言(2011 年的版本,所以叫 C11)寫成的程式,每一個執行遊戲模式的裝置都使用它。它處理事件、分數和無線電訊息,並安全地執行遊戲模式;每種硬體只要加上一層薄薄的驅動程式,操作它的按鈕、螢幕和無線電。它現在已經存在。
- Lua 與遊戲模式腳本
- 遊戲模式就是一個腳本:一個寫著規則的簡短文字檔,例如「按住 5 秒佔領」,用 Lua 寫成,這是一種在電玩 mod 圈很有名的小型程式語言。腳本在沙箱中執行,也就是一個封閉的空間,不能存取檔案或網路,所以分享出去的模式傷害不了裝置。主辦永遠不需要碰 Lua:他們只要選一個模式、填好設定,第 5 階段還會有一個用積木操作的視覺化編輯器。
- 模擬器
- 一個在你的網頁瀏覽器中用虛擬盒子玩遊戲模式的程式:你在螢幕上按隊伍按鈕,看每個盒子的畫面和事件紀錄。它在一般電腦上就能執行,現在就有,所以任何人在硬體做出來之前就能試玩佔點和炸彈模式。
- 場地控制器
- 一場遊戲的基地台:一台小電腦,通常是 Raspberry Pi 或 Android 裝置,透過無線電聽取每個盒子,執行跨多個盒子的規則,保存正式分數,並把主辦的控制台提供給他們的手機。如果它故障了,盒子會繼續運作,由另一台有能力的裝置接手;單一盒子也能在沒有它的情況下進行遊戲。它已經完成(第 2 階段),並在電腦上測試過,還沒在場地上用過;在 Android 裝置上執行還在開發中。
- 場地伺服器
- 一台選用的電腦,放在場地或在網路上租用,保存超過一場遊戲的資料:玩家帳號、遊戲歷史、測速登記冊,以及玩家 App 背後的服務。遊戲永遠不必等它。它在第 4 階段推出,社群中心也規劃為沒有 IT 支援的社團提供成本價的託管伺服器。
授權條款
- 開放原始碼與自由軟體
- 原始碼,也就是人看得懂的程式配方,是公開的,任何人都可以使用、研究、修改和分享,商業用途也可以。這裡的「自由」指的是自由,不是免費:場地可以收入場費,創客也可以販售盒子。
- Copyleft:GPL 與 AGPL
- 讓 Atalaia 保持開放的規則:照原樣使用它,你不需要做任何事;但要散布修改過的版本,就必須以同樣的授權條款分享它的原始碼。GPL 用於核心、韌體、App 和模式,在你提供或販售副本時適用;AGPL 用於場地控制器和場地伺服器,在你透過網路為他人執行修改過的版本時也適用。硬體設計(CERN-OHL-S)和文件(CC BY-SA)也是一樣的道理。