2011年5月4日星期三

This is not a bug but intended design feature

「This is not a bug but intended design feature.」
在欠缺上文下理時聽到這句話,你會作何想?

全盤接受?耍嘴皮?騙鬼?開玩笑?

這不能排除有這個可能,可是我會偏向負面的意思,畢竟Bug就如小強一樣,是讓人惡厭的東西,如果一項功能會讓別人以為是bug… well。

 本人某天的晚餐,聯想力高者勿看

這句子成立的情況有許多,只是大多數情況下都不成立而已,比較常出現而又成立的應該是遊戲設計上。

例如我看過這篇文章 ﹣ “这不是Bug而是个Feature”,其中提到一個叫ExtremeG的N64賽車遊戲的的bug。

本來有一個AI來讓電腦玩家決定在何時使用Turbo超車,但因為編程錯誤讓電腦玩家變得非常之侵略性,即使在灣道也不許你超車,會立即使Turbo迎擊,結果就是一團糟的車禍意外.

測試者的評價是贊賞的!



類似的故事在遊戲業界還能找到許多,基於我不是屬於那個界別,而又不是不負責任之徒,所以還真是沒有說過這番話,解釋bug與defect倒是經驗豐富,因為許多客戶都把不存在的功能視為bug,費的力氣還真不少。

雖然沒有把bug當作過feature,不過把不可預測狀況的代碼送出去倒是做過。

在ThinkGeek或一些網站可以買到一個叫做USB Stress Game的玩意:

(ThinkGeek的示範,不過那是錯誤的,請看下去 ;) )

當年我為客戶設計了這個玩具的程式,這玩意能接駁電腦,你可以拉、推及扭這個“球”,然後電腦的畫面就會被你所扭曲。
 
最初的規格裹面定義4種扭曲,然後由一種扭曲轉到另一種之前要先把畫面還原。




 
依足要求完成後,客戶說:

「效果好像不太好...」

「那要怎樣的效果呢?」

「hmmm… 最好是不用變回原狀,直接變成其他扭曲。」(規格要修改了!要加入新的過渡動畫)

「那已經不是原來的形狀了,我們有4種扭曲,如果要加入過渡的動畫,就要多6種效果,你們要設計這6種,而我們又會很辛苦,這超越了預算,我們得...」

對方明白我們的難處,所以陷入了沉思之中。

這個動畫是利用物理模擬的方法製作的,基於當初的要求,改變扭曲必須在畫面還原後進行,所以有額外的代碼確保流程,不過因為程式架構做得好,改動的難度低,所以我提出:

「不如這樣子,我把確保畫面如規格般顯示的代碼關閉,我不能保證會發生什麼事,動畫可能會變得亂七八糟,先讓你看一看效果吧。」

花了數分鐘改寫代碼,成果如下:


從14秒開始就是多出來的效果,例如翻頁、螺旋、無限拉長、局部變大等等, 那完全是規格外、不在設計之中的效果,而且多出的效果可不祇有6種,只要按鍵的次序及時機不同便會生出現許多無法預測的動畫,就算是作者本人我也不知道 XD


結果客戶飛快地接受了這個版本,後來還把幾項控制用的代碼刪掉,在保持原來四種扭曲時,其他過渡動畫的表現更加隨機。

想不到跟規格做的東西反而是多餘的 XDDD



說了些bug / defeat變成feature的實例,也說些完全相反的混帳事。

在上文<<買Motorola手機前請先考慮清楚 (包括Atrix)>>說過我對MO記震蛋的投訴,後來又收到了一個白目的回應

「This is not a bug but intended design feature.」

即是代表:「震蛋是功能,不是錯誤」

(回答者是一名MOTO Expert,說是volunteer,但如果沒有跟Motorola的聯絡,又那會說得出這是design!?)

到底為何MOTOROLA的設計師/高層那麼堅持手機必須在使用震個不停來虐待用家,我是完全沒有頭緒啦,說不定他們其實有什麼特殊的使用方法,是我們好孩子們不應該知道的。

作為消費者,我認為被愚弄了,別說其他公司的產品,剛是第一代Milestone就沒有這個bug,用feature來推卸責任,我唯一想到的解釋是:「那一定是用來懲罰用家的功能!」

我強烈建議Motorola還要加入播歌功能,唱:「你真是蠢!蠢!蠢!,蠢得真奇妙!妙!妙!」

概然他們堅稱那是功能,那可以想像到之後還是會有新成員作加入震蛋系列,祝各位用家好運。

沒有留言:

Creative Commons License
本網誌Ben Lau製作,以共享創意署名-非商業性-相同方式共享 3.0 香港 授權條款釋出。