跳至主要內容

觀點 · Essay

從畫布的像素邊界到剪貼板的資料階序:用畫圖工具執行《毀滅戰士》的視覺介面重組

從 Windows 畫圖的像素色塊到剪貼板的資料傳輸,拆解微軟 Azure 技術長移植《毀滅戰士》的介面排版與視覺階序。

設計觀察 ·
從畫布的像素邊界到剪貼板的資料階序:用畫圖工具執行《毀滅戰士》的視覺介面重組

一臺電腦螢幕上,開啟著 Windows 作業系統內建的「小畫家」應用程式。純白色的虛擬畫布佔據了視覺中心,熟悉的工具列整齊排列在左側與上方。然而,這片通常用來繪製幾何圖形或標註截圖的空白區域,此刻正顯示著一款一九九三年發行的經典第一人稱射擊遊戲《毀滅戰士》的即時運算畫面。低解析度的像素怪物在螢幕中央移動,畫面下方是玩家手持武器的固定視角。這個看似違背軟體設計常理的視覺拼貼,是微軟 Azure 首席技術長馬克·魯西諾維奇近期的個人技術專案。

在當代科技圈,「讓《毀滅戰士》在各種非遊戲設備上運行」已經成為一種工程師專屬的迷因。從電子試算表的儲存格,到超市結帳條碼掃描器,甚至四十年前的印表機控制器,這些專案往往透過極端的底層代碼重寫,將硬體效能壓榨到極限。這類挑戰的核心多半圍繞著運算效能的突破。然而,魯西諾維奇打造的 DoomPaint 專案,採取了一條截然不同的路徑。這個專案並未要求「小畫家」具備三維圖形運算的能力,也沒有修改這款繪圖軟體的底層架構。它展示的是一場關於作業系統介面邊界、資料傳輸路徑,以及視覺階序重組的巧妙實驗。

要理解這個專案在設計與視覺呈現上的獨特性,必須先拆解它的運作原理。傳統的軟體移植,是將遊戲引擎的運算結果直接指向特定的圖形硬體介面。但在 DoomPaint 中,遊戲引擎 ViZDoom 是以無介面的方式在背景運作的。這意味著運算過程拋棄了所有使用者介面的包裝,只負責處理純粹的邏輯與座標數據。

每秒三十五次,運算引擎會將算好的單幀畫面數據,透過 Windows 作業系統內建的 OLE 剪貼板機制進行傳輸。緊接著,系統執行一次真實的文件編輯操作,把這張圖像貼上到「小畫家」的畫布裡。這個過程在視覺上產生了一種奇妙的錯置感:一款擁有複雜光影和三維空間邏輯的射擊遊戲,其畫面更新竟然完全依賴一個為了辦公室文書複製貼上而設計的系統服務。

「小畫家」的介面設計,本質上是為靜態圖像編輯服務的。它的視覺階序非常明確:頂部的功能區分佈著各種帶有圓角和細微漸層的按鈕,左側是剪刀、油漆桶、橡皮擦等圖示。這些介面元素的設計語言強調易用性與明確的物理隱喻。當《毀滅戰士》那充滿粗糙感、由 320 乘 200 解析度構成的像素畫面,被強行塞入這個符合現代扁平化設計規範的視窗時,產生了極大的質感落差。

遊戲畫面裡那種帶有數位雜訊的暗紅色走廊,與 Windows 視窗裡平整的灰白色工具列形成對比。作為顯示器的「小畫家」本身並不具備處理動態影格的能力,它只是一個被動接收圖像的容器。魯西諾維奇在專案說明中點出了這個視覺玩笑的核心:畫圖負責顯示遊戲,但並不負責運算。小畫家什麼都沒有計算,它從來就不會計算。

引述馬克·魯西諾維奇說明小畫家僅負責顯示畫面而不負責遊戲運算的聲明

這種將計算與顯示強制剝離的設計,打破了現代軟體介面一體化的幻覺。在一般使用者認知中,一個應用程式呈現的畫面,應該是由該程式自身處理並渲染出來的。DoomPaint 利用剪貼板這個跨越不同軟體邊界的資料暫存區,把顯示介面的工作轉移給了一個毫不相幹的繪圖工具。從介面排版的邏輯來看,這是一種資訊層級的錯位。真正的核心運算隱藏在作業系統底層的背景進程中,而浮在最前端、佔據使用者全部視野的,卻是一個只負責接收圖片的無介面繪圖板。

這也直接影響了使用者體驗中的時間感知。專案最高可以達到每秒三十五幀的更新率,但由於剪貼板傳輸與貼上操作需要消耗系統資源,幀率經常會出現劇烈波動,有時甚至會跌落到所謂的「電子表格級別」。當使用者盯著「小畫家」視窗時,畫面的更新不再是顯示卡渲染那樣的平滑過渡,而是伴隨著剪貼板寫入週期的卡頓與撕裂。這種不連續的視覺更新,反而凸顯了畫面生成的物理過程。玩家看到的每一個動作,都是系統完成了一次跨應用程式資料搬運的結果。這也與我們先前分析過的脫口秀演員致歉影片的介面排版與階序設計有異曲同工之妙,兩者同樣利用了介面本身的既定框架,藉由畫面元素的違背常理來達到特定的傳播效果。

將一個擁有數十年歷史的辦公室繪圖工具,轉變為復古遊戲的顯示器,這背後也牽涉到微軟 Windows 作業系統長期以來的介面演變與品牌設計脈絡。

「小畫家」最初是作為一個簡單的點陣圖編輯器而誕生的。它的介面設計伴隨著 Windows 作業系統的更新,經歷了從經典灰底浮動工具列,到現代化扁平化 Ribbon 介面的轉變。微軟在設計這款軟體時,賦予了它明確的邊界:這是一個用來畫圖的工具。它的功能區按鈕、色彩選擇器以及畫布的留白比例,都是為了靜態圖像的創作而配置的。

DoomPaint 專案的趣味性,正是建立在打破這種介面與功能的既定契約上。在這個專案中,「小畫家」的工具列與色彩面板完全失去了作用,它們退化成了單純的視覺裝飾。真正主導畫面內容的,是隱藏在後臺的遊戲引擎。這種工具與功能的剝離,讓人們重新審視軟體介面的本質。我們每天面對的各種應用程式視窗,究竟是由其介面元素定義的,還是由它所處理的數據定義的。

統計圖卡呈現 DoomPaint 專案透過剪貼板機制傳輸單幀畫面達到的每秒三十五幀最高數值

作為微軟 Azure 的首席技術長,魯西諾維奇負責的是龐大雲端平臺的架構與安全。他的日常工作與分散式系統、伺服器叢集以及企業級資安防護緊密相關。然而,在這個個人專案中,他選擇回歸到個人電腦最基礎的單機架構,玩弄起作業系統中最古老的資料交換機制。這種反差,也反映了科技巨頭在品牌形象上的一種微妙縱容。

微軟並未對這類破壞軟體正常使用邊界的駭客專案進行嚴格的限制,反而呈現出一種技術開放的品牌姿態。對於一家以作業系統和雲端服務為核心的企業來說,允許高階主管公開展示如何利用系統底層的剪貼板機制來玩遊戲,本身就是一種對 Windows 平臺開放性與兼容性的另類展示。這表明作業系統不僅僅是一個封閉的消費級產品,它依然保留了供開發者深入探索底層架構的空間。這也與微軟 XBOX PC 戰略轉向的介面階序有著相似的邏輯,兩者都展現了微軟在跨平臺硬體與軟體邊界重組上的策略演進。

從一九九零年代的點陣圖顯示,到當今的即時光線追蹤技術,遊戲畫面的視覺精度已經達到了驚人的擬真度。現代遊戲引擎的設計語言,追求的是消除畫面生成的痕跡,讓玩家忘記自己正在看著螢幕上的像素。在這種追求極致視覺沉浸感的趨勢下,DoomPaint 的出現顯得格外引人深思。

這個專案刻意保留了資料傳輸的痕跡。當畫面因為剪貼板讀寫延遲而產生卡頓時,它實際上是在向使用者展示電腦內部的資料流動過程。這種對介面粗糙感的暴露,與近年來在網頁設計和應用程式開發中出現的某些懷舊美學形成了呼應。設計師與開發者開始懷念早期數位介面中那種未經修飾的像素邊緣、有限的色彩深度,以及機械般的回饋感。在這些追求平滑無縫體驗的現代作業系統中,保留一點運算上的物理限制,反而成為一種獨特的視覺趣味。

最終,DoomPaint 將遊戲畫面的視覺重量,完全轉移到了剪貼板這個看不見的系統元件上。畫布上的像素不再有輕重之分,它們全都是平等的數據片段。這個看似荒誕的技術實驗,實際上提供了一個重新檢視數位介面設計的機會。它提醒我們,在精美的視覺排版與流暢的動態效果背後,支撐一切運作的始終是作業系統冷酷而精確的資料階序。