顯示包含「Development」標籤的文章。顯示所有文章
顯示包含「Development」標籤的文章。顯示所有文章

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還要加入播歌功能,唱:「你真是蠢!蠢!蠢!,蠢得真奇妙!妙!妙!」

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

2008年9月11日星期四

使用SVG當程式介面 - 更多的開源項目

在 使用SVG作程式介面 一文提過由Andre Schmidt所做的實驗性程式 - 使用SVG圖案作為程式介面,雖然在這之後就沒有再聽到作者發表跟進的消息,但這個概念卻激發起了另一位人兄 Jayesh Salvi 的創作欲,寫了另一個相同理念的程式出來:


除此以外還有一個叫wxSVG的項目也是做同樣的事情:
http://www.wxsvg.org/

2008年7月2日星期三

使用SVG作程式介面

在mailing list裏看到了一個相當之有趣的概念性程式,由一位叫Andre Schmidt的人兄所開發,該程式可以使用SVG圖像格式的圖檔作為程式的介面。換言之,本來為設計師所用,繪畫向量圖像的Inkscape,也可以搖身一變成為設計程式介面的工具,像是Glade那樣。

這樣的好處是能減低設計師與編程師之間合作的難度,像是一般的程式還好,但若當介面為追求美觀而以像圖為主,二者之間的合作往往會出現困難,缺乏編程知識的設計師未必能夠做出合編程之用的圖像,編程式很可能需要自行修改圖檔。

這個過程若只發生一次,當然問題不大,但在諸多要求的上層及不懂自己所需的客戶面前,修改要求是家常便飯,不斷重複的工驟就會變得相當之煩嫌。

而若能直接使用SVG檔作程式介面,設計師所需的技術知識就只是怎樣把若干物件組成一個群組,並加上正確的屬性,例如說名稱,然後編程師就可以負責編寫各物件的功用及反應,大大減輕各人的工作量,包括每次修改一來一往所花費的時間。

計劃網頁:http://osku.de/simsui/
影像示範: http://osku.de/simsui/simsui-PROTOTYPE1_video_tutorial.ogg

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