《黑鏡:潘達斯奈基》︰電影故事並非完整作品,還得加上你的體驗

《黑鏡:潘達斯奈基》︰電影故事並非完整作品,還得加上你的體驗
Photo by Stuart Hendry, Image Credit: Netflix

我們想讓你知道的是

這部作品試圖觸及的問題很多,從遊戲設計到人的命運,以及你自以為自己擁有的自由意志。電影牽出好幾個線頭,試圖承載太多意義,但事實上這種多選擇電影背後可能要面臨巨大的成本問題,所以反而鉗制住了它的發展。

在一個悠閒的週末午後,我們一行十來個人,相約一齊看《黑鏡》系列最新的劇場版《潘達斯奈基》(Black Mirror: Bandersnatch),當遇到需要觀眾選擇的部分,就爭相喊出自己的答案,哪個答案呼聲多,就讓角色選擇哪一條路。

《黑鏡》是具有科幻未來感的系列英劇,連載至今已有4季。它的電影選擇投放在網路平台Netflix上線,也是因為這個電影備受關注的「交互」設計在網上比較方便完成:在影片全程中,角色會遇到很多不同的選擇,這時候觀影者需要點擊其中一個——例如在某一刻,它會在畫面下方問你,主角應該選擇進門去看醫生,還是去尾隨另一個角色?

你必須在十秒之內迅速反應,否則它就會默認選擇第一個選項。(編按︰根據測試,當抵達結局後重回相同選擇時,如沒有反應系統會改選第二個選項。)

巧的是,那天在座觀影的朋友,有好幾個來自遊戲設計產業或者做遊戲研究。在他們看來,這部電影這種交互設計,本身已經非常接近遊戲的理念。

Bandersnatch_book
Image Credit: Netflix

這種通過選擇開放結局的故事大多數人其實並不陌生:我小時候就在書上讀到過這樣的童話,作者在最開頭寫了閱讀指引,在每章的最後會留下提問,不同的選擇會指向不同的章節。那個童話會有不同的劇情走向,最後至少有6個結局。然而我小時候並不覺得那個童話太有意思:這個號稱每次閱讀都會有不同體驗的故事,其實不同選項經常會把你重複引回一樣的劇情,而主線故事事實上也差不多,大部分內容乃至結局都大同小異。

《潘達斯奈基》也面臨一樣的問題。之前不少觀眾反映觀影過程沉悶,玩出了一條路線之後,經常進入重複的套路,整個故事也相對簡單,形式大於內容。電影講述一個八、九十年代的年輕遊戲程式員,進入一個新公司,設計他心目中的遊戲,卻在創造過程中逐漸面對自己的童年陰影和心魔,並逐步感覺自己被神秘力量操縱,最終一步步走向失控的故事。有的結局很短,走了兩步故事就結束了;有的故事相對比較長。

但總的來說,大多數結局都是主角設計這款遊戲,最後在市場上得到的評價是高或者低,而未必會回應太多故事中間的懸念和發展。這實際上更接近一個遊戲,你通過不同選擇,最後獲得系統的不同評分,劇情則顯得單向、線性,不太完整。只有一兩個符合大眾觀影習慣的、情節和解釋比較完整的結局,在多次嘗試之後,你可以抵達那裡。

Bandersnatch_ending_choice
Image Credit: Netflix

因此這個電影是不太滿足觀眾對傳統電影的預期和習慣的,因為它並沒有交出一個豐富完整的故事。但當整個觀影結束之後,我們一群人還是有不少大呼過癮,並且延續了很長一段時間的討論。因為當你把這個作品視作一個試驗品而非傳統電影,一個試圖去模糊遊戲與電影邊界的嘗試,就會發現它在創作中做出了很多探索。

在觀影之前,有不少評論提及這部作品是對「浸入式體驗」觀影的嘗試,最開始以為指的是這種決定主角行動的交互,而當實際看下去之後,發現遠不止於此。電影其實利用了這種選擇權,把觀眾隱隱地變成了故事的一部分:故事情節裡面,主角逐漸發現有人在控制他,安排他的選擇,開始尋找這個幕後黑手,而電視前的我們很清楚,他尋找的這個人,就是我們自己。豆瓣網中一條評論是這樣寫的:「每次男主大喊:『是誰在控制我,是誰?』我真的發自肺腑的想要站起來大喊一句:『是我!是我!是我!』」

在故事中,主角甚至有好幾次試圖擺脫觀眾的控制:有一個可以讓他突然抓耳撓腮的選項,而當你做出這個選擇之後,主角難以置信地看著自己不受控制突然動起來的手,拼命地用另一隻手壓住自己。

Bandersnatch_hand
Image Credit: Netflix

這種創意其實是一個經典的命題:虛擬世界的人不知道自己的人生是被設計安排的,直到有一天發現了控制自己的神秘力量,從而觸及到世界的邊界。哲學小說《蘇菲的世界》就是這種類型,故事主角在哲學討論中逐漸發現自己活在一本小說裡,最後試圖逃出小說,朝現實世界撲面而來。

這種命題背後是人類面對自己命運的一種亙古的幻想和恐懼:我的人生是否其實早就被人設計?我有沒有可能只是巨大棋盤上一顆棋子?而當我意識到這種力量時,我的自由意志有沒有就此覺醒?倘若這個故事能夠在這個層面上深入下去,敢於讓主角在至少一條支線上直面觀眾,直接與觀眾對話甚至試圖跳出屏幕,這個故事的意義不會一樣。可惜的是,這種互動在彩蛋層面淺嘗輒止,觀眾在劇情的作用沒有被徹底探討,而這個點子在用了這一次之後沒有發展下去,失去了創新的機會。

除了虛擬角色覺醒的想象之外,作品還試圖去探討浸入式遊戲的意義。故事中主角要設計的遊戲,就是一個通過玩家選擇,決定遊戲角色命運的遊戲,事實上跟我們觀眾在做的事情一模一樣,而主角設計的遊戲,又是基於電影裡的一本這種形式的流行小說。而在每個遊戲結局最後,其中一個角色會出來談一點遊戲的意義。

Bandersnatch_game_review
Image Credit: Netflix

這部作品試圖觸及的問題很多,從遊戲設計到人的命運,以及你自以為自己擁有的自由意志。電影牽出好幾個線頭,試圖承載太多意義,但事實上這種多選擇電影背後可能要面臨巨大的成本問題,所以反而鉗制住了它的發展:我們看到的90分鐘故事,因為涉及到各種可能性,實際上可能拍攝大量各類平行世界的發展素材,所需要的資源遠比我們看到的更多。這種局限使得它只能拘泥於較為簡單、單向的故事線,提供不了差異更大的多重結局,但新嘗試的野心又使得它試圖在一個簡單作品中塞進不少關於命運的終極命題。而恰恰因為如此,無論以傳統電影觀眾、還是傳統遊戲用戶的眼光來看,這個電影都難以令他們滿意。


猜你喜歡


挖掘雲端開放架構優勢!Amazon EKS高可用性叢集快速部署容器

挖掘雲端開放架構優勢!Amazon EKS高可用性叢集快速部署容器

我們想讓你知道的是

企業如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署,減輕人力負擔,提升專案服務運作效率?

所謂現代化智慧 IT,所有工程師最希望的境界,莫過於只要輕鬆點幾下設定,系統就會自動跑起來,管理者再也不用隨時待命在機台旁邊,從此工作悠哉又快樂!儘管這樣情境還沒到來,但隨著敏捷式開發的流行,除了 DevOps 人員,有越來越多開發者將 CI/CD 概念融入到工作流程當中,例如從 build code、執行 unit test、到部署應用程式。

透過 AWS 增加雲端技能 在組織發揮影響力

上述種種反覆步驟自動化執行,也就能提昇服務品質、主動通知開發人員以減輕人力負擔,讓專案服務能持續運作。

其中,GitLab 是執行 CI/CD 常用的工具之一,也是開發者使用程式碼儲存庫的地方。為了讓 GitLab Runner 在雲端快速實踐 CI/CD,《AWS 開發者系列》透過影片分享,如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署。

以下節錄工作坊影音內容,幫助開發者快速理解如何運用 Amazon EKS 的高可用性且安全的叢集,將修補、部署節點、更新等關鍵任務,全部做到自動化設定。同時影片也會示範 Amazon EKS 搭配 GitLab 如何展開自動部署,幫助工程團隊實踐 CI/CD 價值。

Amazon EKS 對容器管理輕鬆簡單、維運省時省力

容器化服務越來越興盛,當容器(Container)越來越多,在複雜的微服務(Microservice)系統環境之下,運維團隊的管理成本可能相對會增加不少,為了有效調度容器部署, 導入Kubernetes 無疑是近年企業熱門的話題之一。

建構 Kubernetes Cluster 流主要可區分兩大塊,一是安排容器調度的Control Plane、另一則是容器運行時需要用到的 Worker Node。

Control Plane 裡面涵蓋有儲存狀態的 ETCD、CoController manager 、Scheduler 的調度管理、甚至是操作時進行互動的 APIServer,若是自己創建 的 Kubernetes Cluster ,需要自己安裝這些元件,後續仍需要對 Control Plane 進行相關管理、維護、升級工作。為了減少上述 Components 的繁複維護,在透過 AWS EKS 代管的 Kubernete Control Plane 部可以獲得以下三大好處。

Amazon EKS 一鍵式部署,展現三大優勢

第一,Amazon EKS代管的 Control Plane實踐了跨AZ的高可用部署,使用者不需要擔心單一節點故障的風險。

第二,Amazon EKS 支持至少四個 Kubernetes版本,持續跟進每季 CNCF 的發佈,同時 EKS 也完全符合上游 CNCF 規範。

第三,部署 Amazon EKS 之後,可直接使用 AWS 平台上現成的服務工具,在安全性管理、網路設定方面,可以做到無縫整合。

最後 AWS 台灣解決方案架構師也提到,若想在容器環境進行 CI/CD 及應用程式的管理,可以進一步透過 IaC 整合部署 Amazon EKS 叢集,透過使用 Console、把 EKS 變成 Cloudformation 的模板、使用 AWS 所開發出來的 eksctl.io、或指令是採用 AWS CDK 可以讓開發者用自身熟悉的語言,在 AWS 平台整合 CI/CD 工具進行維運及部署 EKS。

打造第一個在 AWS 上的應用程式

了解 Amazon EKS 整合 GitLab ,獲得三面向價值

對開發者而言,想把 Amazon EKS 整合到 CI/CD 工具之一的 GitLab 平台上,可以看到那些實際的優勢?

在 DevOps 開發者示範工作坊當中,GitLab 資深解決方案架構師指出,GitLab 使用到 Kubernetes 技術,主要有三種搭配方法,包含 GitLab Server、GitLab Runner、以及創建 Deployment Environment。

本次示範教學會主要聚焦在 GitLab Runner 如何採取 Auto-scaled 方式進行 Build、Test、Package Apps;以及在 Deployment Environment 運用 Kubernetes 技術,做到 Auto Deploy、Review App。

正因為 Amazon EKS 能夠在 DevOps 過程提供所需要的彈性計算資源,幫助開發者在 GitLab 平台上面獲得以下三個層次的優勢:

  • 在 GitLab 內建的部署工作流程當中,自動生成整套 CI/CD 最佳實踐腳本。
  • Review App 過程,從 Merge Request 中可直接訪問應用程式 /App 的 UI 介面,並且根據 Git branch 名稱、專案名稱,自動生成 Review App 的 URL,以及在 Merge 前的最後防線進行 Approval 檢查。
  • 加速 CI/CD 流水線,GitLab Runner 運行時候還可藉由 Amazon EKS Cluster 進行 Auto-scaled 的支援。

Amazon EKS 整合 GitLab ,需要兩大流程

影片最後,GitLab 資深解決方案架構師示範如何把 Amazon EKS 整合至 GitLab 執行 Auto Deploy,主要可分為兩大區塊流程,第一部分聚焦在 Amazon EKS cluster 的設置,第二部分則執行 Auto Deploy 設置。

第一塊可拆分為四個階段,首先教學怎麼創建 EC2 節點的 EKS cluster,第二階段示範把 EKS Cluster 連接到開發者的 GitLab Instance、Group 或 Project,下一步則使用 Cluster Management Project Template 創建一個 Cluster Management Project,以及最後一階段透過 Cluster Management Project 自帶的 Helm Chart,安裝在 Cluster 所需要的內建 App。

第二塊執行 Auto Deploy 設置,針對需要部署的 App 創建一個 GitLab Project,接著再把 gitlab-ci.yml 添加到 Project,並從 Web IDE 選擇及導入 Auto Deploy 的 CI 模版,讓 GitLab 自動生成最佳實踐的整套流水線。

幫助開發者更了解 Amazon EKS 整合 GitLab 的 QA 系列

Q:使用 Amazon EKS 之後,如何更有效率或優化資源去配置 Worker Node 的機器數量,以及如何有效空管開發維運的成本?

A:Kubernetes 除了本身有 HPA(Horizontal Pod Autoscaling)可根據使用程度自動調整資源流量,另外也能延伸使用 AWS Auto Scaling 方案,針對可擴展資源去設定自動擴展管理。另外在成本管控,雖然 Amazon EKS 會收取額外管理費用,但可透過 AWS 平台的 Calculato r計算每個 EKS 的價格,你會發現自動化部署及管理的費用,相對工程師人力的成本更加便宜。

Q:越來越多客戶考慮把現有 Application 變成容器部署,大多是爲了加快部署的效率,那麼變成容器模式之後,對 CI/CD 的工作流程有什麽影響嗎?

A:運用容器技術最直接的效果,可以讓應用程式的環境更一致化,例如 testing 環節、stage production,讓容器避開一些差異問題。至於 CD 部分要 delivery 一些 usage 不太一樣的時候,容器會幫忙做配置,所以 CI/CD 對容器的效益是相輔相成的。

Q: 客戶在開發流程漸漸會把 Infrastructure 變成代碼或文檔,是不是可以把程式碼跟現有的應用程式的 CI/CD 流水線整合在一起,達到一套完整的 CI/CD 部署流程?

A:觀察目前市場作法,主要分成兩個階段去做整體部署。如果規模比較小的團隊,會把 Infrastructure 代碼跟 App 代碼分開,在管理上會比較靈活;如果企業規模比較大,會有另外一個 Infrastructure 團隊來控制部署事情,這種情况之下,APP 的項目會生成一個 APP package,主要做到 delivery 這個階段爲止。而 Infrastructure 的項目會指定把需要版本的文檔,部署到他們的 Kubernetes Cluster。

填寫表單 找到適合的快速上雲服務與工具!


猜你喜歡